CVE-2025-60448CVE-2025-60448是Emlog Pro 2.5.19版本中存在的一个存储型跨站脚本(Stored XSS)漏洞。该漏洞于2025年10月3日由MITRE组织披露,CVSS 3.1评分为6.1分,属于中危级别漏洞。
Emlog Pro是一款基于PHP和MySQL的轻量级个人博客系统,在国内拥有广泛的用户群体。该漏洞存在于系统的/admin/media.php媒体管理组件中,具体问题出在SVG文件上传功能的安全验证机制上。SVG(Scalable Vector Graphics)是一种基于XML的矢量图形格式,由于其本质上是一个XML文档,因此可以包含JavaScript脚本代码。当用户上传恶意构造的SVG文件时,如果服务器端未对文件内容进行充分的安全过滤和验证,攻击者便可以将恶意JavaScript代码嵌入到SVG文件中。
该漏洞的危害在于其存储型特性——恶意SVG文件被上传后会被持久化保存在服务器上,任何后续访问该文件的用户(包括管理员)都会自动执行其中的恶意脚本。攻击者可以利用此漏洞窃取用户会话Cookie、进行钓鱼攻击、篡改页面内容或执行其他恶意操作。由于漏洞位于管理后台的媒体管理组件,攻击成功后可能对整个博客系统造成进一步的安全威胁。
该漏洞的技术原理在于Emlog Pro 2.5.19的/admin/media.php组件在处理用户上传的SVG文件时,未对SVG文件内容进行充分的安全验证和过滤。
SVG文件本质上是一个XML文档,其根元素为<svg>,可以包含<script>标签或事件处理器属性(如onload、onclick等)。当浏览器渲染SVG文件时,会执行其中包含的JavaScript代码。由于/admin/media.php组件仅对上传文件的扩展名进行了简单的检查,未对文件内容进行MIME类型验证或恶意代码过滤,攻击者可以上传包含恶意JavaScript代码的SVG文件。
漏洞利用方式如下:
1. 攻击者构造一个包含恶意JavaScript代码的SVG文件,例如在SVG标签中添加onload事件处理器或嵌入<script>标签;
2. 通过/admin/media.php组件上传该恶意SVG文件到服务器;
3. 服务器将SVG文件存储在媒体库中,并生成对应的访问URL;
4. 当其他用户(尤其是管理员)通过浏览器访问该SVG文件的URL时,浏览器会渲染SVG并自动执行其中的恶意JavaScript代码;
5. 恶意代码可以在受害者的浏览器上下文中执行任意操作,如窃取Cookie、会话令牌,或执行进一步的攻击。
该漏洞的CVSS向量为CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N,表示该漏洞通过网络即可利用,攻击复杂度低,无需特殊权限,但需要用户交互(如点击链接或访问页面)。漏洞的影响范围为Changed(范围已变更),因为XSS攻击影响了受害者的浏览器安全上下文。