漏洞概览
-
编号:CVE-2025-8266
-
产品:ChanCMS
-
版本:V3.1.3
-
源码地址:https://gitee.com/chancms/ChanCMS
背景 随着 Node.js 在服务端的广泛应用,JavaScript 安全问题已从浏览器端延伸至服务端。由于服务端缺乏类似浏览器的沙盒环境,一旦存在漏洞,攻击者往往能获取更高的系统权限。在此背景下,高效、精准的代码审计工具显得尤为重要。
今天我就使用一款AI代码审计工具–棋士来测试AI代码审计的能力。
审计流程
项目导入:直接上传源码压缩包至“棋士”平台。
扫描检测:系统自动完成代码扫描,并标记出潜在风险点。
结果查看:扫描报告清晰列出两处高危代码位置,并附有详细的漏洞说明与风险评级。
漏洞深度解析 通过“棋士”内置的 AI 专家系统,即便对 JavaScript 审计经验较少的用户也能快速理解漏洞本质:
-
零防护机制:系统未对用户输入的 parseData 参数进行任何过滤或白名单校验,导致攻击者可完全控制其内容。
-
核心风险:在 getArticle 方法中,直接将 parseData 作为 new Function() 的函数体执行,造成任意代码执行。
-
攻击危害:攻击者可借此执行系统命令、读取敏感文件(如 /etc/passwd),甚至获取反弹 Shell,直接控制服务器。

实战验证与 PoC 辅助
“棋士”不仅定位漏洞,还提供验证脚本(PoC)辅助测试。在本地环境中验证如下:
敏感信息泄露
http://localhost:3000/cms/gather/getArticle?targetUrl=test&parseData=return process.env
成功获取服务器完整环境变量。
拒绝服务攻击
http://localhost:3000/cms/gather/getArticle?targetUrl=test&parseData=process.exit(1)
服务进程立即终止,证实漏洞可导致服务瘫痪。
修复建议 “棋士”针对该漏洞提供了多层次修复方案:
-
立即措施:移除或禁用动态代码执行逻辑。
-
长期建议:使用安全的 DSL 解析器(如 jmespath)或实施严格的输入白名单机制。
-
加固推荐:对所有用户输入进行校验与转义,避免直接拼接或执行。
总结 “棋士”是一款集代码审计、AI 智能分析、PoC 辅助生成与修复建议于一体的综合安全工具。其能够显著提升漏洞发现、验证与修复的整体效率,可以一试。



