CVE-2025-63848CVE-2025-63848是SWISH Prolog中一个存储型跨站脚本(XSS)漏洞,影响版本至2.2.0。SWISH Prolog是一个基于Web的Prolog编程环境集成开发环境(IDE),广泛应用于学术研究、教学和逻辑编程领域。该漏洞允许未经认证的攻击者通过精心构造的Web IDE笔记本(Notebook)内容注入恶意JavaScript代码。当其他用户查看或交互这些受污染的笔记本时,恶意脚本将在其浏览器上下文中执行,从而窃取会话Cookie、劫持用户账户、进行钓鱼攻击或执行其他恶意操作。由于该漏洞为存储型XSS,恶意载荷会持久保存在服务器端,影响所有访问该笔记本的用户。攻击者无需任何特殊权限即可利用此漏洞,只需创建一个包含XSS payload的笔记本即可。
该漏洞源于SWISH Prolog的Web IDE笔记本功能对用户输入内容缺乏充分的输入验证和输出编码。攻击者可以在笔记本单元格中注入包含<script>标签或事件处理器(如onerror、onload)的JavaScript代码。由于应用程序未对这些特殊字符和HTML标签进行适当过滤或转义,恶意代码会被直接存储在服务器端。当其他用户浏览该笔记本时,受污染的内容会被渲染到页面中,导致XSS payload在用户浏览器中执行。攻击者可以利用此漏洞绕过同源策略限制,访问用户的认证令牌、会话信息,并代表用户执行操作。漏洞利用的关键在于SWISH Prolog的笔记本渲染机制未能正确处理用户可控的输入数据。