OfflineIMAP STARTTLS降级漏洞CVE-2020-37248
OfflineIMAP 是一款开源、跨平台 IMAP 邮件双向同步工具,采用 Python 编写,GPLv2许可,实现离线读信、多设备一致、本地备份。
一、基本情况
OfflineIMAP 是开源 Python 邮件客户端,用于同步本地邮件目录与 IMAP 服务器,可以把远程 IMAP 邮箱同步到本地(Maildir 格式)。

OfflineIMAP 用于终端用户搭配 Mutt 等轻量客户端,是 IMAP 邮箱的本地镜像与同步器,让邮件随时随地可用、多端一致、安全备份。
栋科技漏洞库关注到在 OfflineIMAP 在8.0.2及之前版本中存在的STARTTLS降级漏洞,追踪为CVE-2020-37248,CVSS 3.X评分6.5。
二、漏洞分析
CVE-2020-37248漏洞是 OfflineIMAP 相关版本中的安全漏洞,漏洞使得OfflineIMAP3(Python3 重构版) 所有当前发行版均受影响。
该安全漏洞源于当配置 starttls = yes 时,imapserver.py 的 __start_tls 方法在服务器能力列表中未广告 STARTTLS 的情况下直接返回,
而这一做法跳过了 TLS 协商,使连接以明文传输。
攻击者可通过 STRIPTLS 攻击(中间人攻击)从服务器能力列表中移除 STARTTLS,迫使用户以明文传输账户凭据。
通过修改 __start_tls 方法的行为可以解决该问题:
当 STARTTLS 未被广告但已配置时,先记录警告再尝试发起 STARTTLS,
若服务器实际不支持则抛出 OfflineImapError 断开连接,而非静默降级为明文传输。
三、影响范围
OfflineIMAP ≤ 8.0.2
四、修复建议
OfflineIMAP ≥ 8.0.3
五、参考链接
管理员已设置登录后刷新可查看