CVE-2026-42857Open edX Platform存在一处安全漏洞,其用于讨论通知邮件的HTML清理器`clean_thread_html_body()`未能有效过滤用户生成内容中的`<style>`标签。由于系统在邮件模板中使用了Django的`|safe`过滤器直接渲染这些内容,导致任何已注册的学生都可以向发送给其他用户的邮件通知中注入任意CSS代码。攻击者利用该漏洞可实现邮件跟踪(如获取接收者IP地址)、内容伪造以及钓鱼攻击,对用户隐私和安全构成威胁。
该漏洞的根源在于Open edX处理讨论帖内容时的安全过滤机制不完善。具体来说,当用户发布包含HTML标签的讨论内容时,系统调用的`clean_thread_html_body()`函数本应清理危险标签,但它错误地保留了`<style>`标签。随后,在生成通知邮件时,Django模板引擎使用了`|safe`过滤器,这告诉Django不要对变量进行HTML转义。因此,恶意的CSS代码被直接嵌入到邮件HTML中。当其他用户查看邮件时,浏览器会解析这些CSS。攻击者可以利用CSS的特性(如`@import`或`background-image`)加载外部资源,从而记录邮件阅读行为并获取受害者的IP地址,或者通过CSS重写页面布局进行钓鱼和内容欺骗。