漏洞概要
PKP Web应用库(PKP-WAL)版本3.4.0-10及更早版本,以及版本3.5.0-3及更早版本中存在一个LESS代码注入漏洞。该漏洞位于PKPTemplateManager::compileLess()方法中,可能影响基于PKP-Lib构建的Open Journal Systems (OJS)、Open Monograph Press (OMP)和Open Preprint Systems (OPS)等学术出版系统。
受影响的软件
-
软件链接:
- 官方网站:https://pkp.sfu.ca
- GitHub仓库:https://github.com/pkp/pkp-lib
-
受影响版本:
- PKP-WAL 3.4.0-10及之前版本
- PKP-WAL 3.5.0-3及之前版本
技术细节分析
漏洞原理
该漏洞存在于PKPTemplateManager::compileLess()方法中,该方法调用Less_Parser::parse()时传递了一个"baseUrl"变量。此变量通过$request->getBaseUrl()方法构造,但未经身份验证的攻击者可以通过X-Forwarded-Host HTTP头部操控此变量。
攻击向量
攻击者可以操纵X-Forwarded-Host头部,将恶意LESS代码注入到样式表解析过程中。成功利用此漏洞需要满足特定配置条件:config.inc.php脚本中的allowed_hosts设置必须为空字符串。
潜在影响
- LESS代码注入:攻击者可以在服务器端执行任意LESS代码
- 服务器端请求伪造(SSRF):通过注入的代码发起对内网服务的请求
- 本地文件读取:可能读取服务器上的敏感文件内容
解决方案状态
截至目前,官方尚未提供针对此漏洞的解决方案。
漏洞披露时间线
| 日期 | 事件 |
|---|---|
| 2025年10月21日 | 向供应商发送漏洞通知 |
| 2025年10月24日 | 供应商回复称GitHub问题#7649已解决此问题 |
| 2025年10月25日 | 向供应商说明这应被视为新的独立问题 |
| 2025年11月12日 | 申请CVE标识符 |
| 2025年12月12日 | CVE-2025-67891分配完成 |
| 2025年12月23日 | 发布本安全公告 |
参考信息
- CVE编号:CVE-2025-67891
- 漏洞发现者:Egidio Romano
- 原始公告:http://karmainsecurity.com/KIS-2025-13
安全建议
- 检查您的PKP-WAL版本是否在受影响范围内
- 审查
config.inc.php中的allowed_hosts配置,确保其包含明确的允许主机列表 - 监控官方更新,及时应用安全补丁
- 考虑对输入HTTP头部进行严格验证和过滤
- 实施网络层防护,限制对管理界面的访问
注意:本漏洞的完整利用需要特定配置条件,但建议所有使用受影响版本的用户采取预防措施,等待官方修复方案发布。