CVE-2025-11905
📋 TL;DR
This vulnerability allows remote attackers to execute arbitrary code through code injection in the getArticle function of ChanCMS. It affects all ChanCMS installations up to version 3.3.2 that have the vulnerable component exposed. Attackers can exploit this without authentication to compromise the CMS server.
💻 Affected Systems
- ChanCMS
📦 What is this software?
Chancms by Chancms
⚠️ Risk & Real-World Impact
Worst Case
Complete server compromise allowing attackers to execute arbitrary commands, steal data, install malware, or pivot to other systems.
Likely Case
Remote code execution leading to website defacement, data theft, or installation of backdoors for persistent access.
If Mitigated
Limited impact if proper input validation and output encoding are implemented, though the vulnerability still exists.
🎯 Exploit Status
Exploit details are publicly available in GitHub repositories, making this easily exploitable.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: Not available
Vendor Advisory: Not available
Restart Required: No
Instructions:
No official patch is available as the vendor did not respond to disclosure. Consider migrating to alternative CMS solutions.
🔧 Temporary Workarounds
Disable vulnerable endpoint
allRemove or disable access to the app/modules/cms/controller/gather.js file
mv app/modules/cms/controller/gather.js app/modules/cms/controller/gather.js.disabled
Implement input validation
allAdd strict input validation and sanitization for all parameters passed to getArticle function
🧯 If You Can't Patch
- Implement web application firewall (WAF) rules to block suspicious requests to gather.js endpoints
- Isolate the ChanCMS instance in a restricted network segment with minimal access
🔍 How to Verify
Check if Vulnerable:
Check if ChanCMS version is 3.3.2 or earlier and if app/modules/cms/controller/gather.js exists
Check Version:
Check package.json or version files in ChanCMS installation directory
Verify Fix Applied:
Verify the gather.js file has been disabled or removed, or that input validation has been implemented
📡 Detection & Monitoring
Log Indicators:
- Unusual requests to /cms/gather/getArticle endpoint
- Suspicious JavaScript or code patterns in request parameters
Network Indicators:
- HTTP requests with malicious payloads targeting the vulnerable endpoint
- Unusual outbound connections from the ChanCMS server
SIEM Query:
source="chan_cms_logs" AND (uri="/cms/gather/getArticle" OR uri LIKE "%gather%") AND (payload CONTAINS "eval" OR payload CONTAINS "require" OR payload CONTAINS "Function")
🔗 References
- https://github.com/NarcherAlter/Security_Note/blob/main/Vulnerability_Discovery/ChanCMSv3.3.2.md#555
- https://github.com/NarcherAlter/Security_Note/blob/main/Vulnerability_Discovery/ChanCMSv3.3.2.md#cmsgathergetarticle
- https://vuldb.com/?ctiid.328915
- https://vuldb.com/?id.328915
- https://vuldb.com/?submit.671338