Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N/E:P/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Primary rating from NVD · only source for this CVE.
CVSS VectorNVD
Lifecycle Timeline
8DescriptionCVE.org
A vulnerability was determined in liangliangyy DjangoBlog up to 2.1.0.0. The affected element is the function CommandHandler of the file servermanager/api/commonapi.py of the component WeChat Bot Interface. Executing a manipulation of the argument Source can lead to command injection. It is possible to launch the attack remotely. The exploit has been publicly disclosed and may be utilized. The vendor was contacted early about this disclosure but did not respond in any way.
AnalysisAI
Command injection in DjangoBlog WeChat Bot Interface allows authenticated remote attackers to execute arbitrary system commands by manipulating the Source argument in the CommandHandler function. Affected versions up to 2.1.0.0 are vulnerable. The exploit has been publicly disclosed on GitHub, and the vendor has not responded to early disclosure attempts. CVSS score of 6.3 reflects moderate severity with network-accessible attack vector requiring authentication.
Technical ContextAI
DjangoBlog is a Django-based blog platform that includes a WeChat Bot integration component located in servermanager/api/commonapi.py. The CommandHandler function is responsible for processing commands from the WeChat Bot Interface. The vulnerability exists in the Source argument parameter, which is processed without proper sanitization or escaping before being passed to system command execution routines. This is a classic command injection vulnerability (CWE-77) where user-controlled input is concatenated into shell commands without proper neutralization of special characters. The CPE cpe:2.3:a:liangliangyy:djangoblog:*:*:*:*:*:*:*:* indicates all versions up to 2.1.0.0 are affected by this vulnerability in the WeChat Bot interface component.
RemediationAI
No vendor-released patched version is available at this time due to vendor non-response. Immediate mitigation requires restricting network access to the WeChat Bot Interface component in servermanager/api/commonapi.py - disable or remove this component if not actively used, or implement strict network access controls (WAF rules, IP allowlisting) to permit only trusted WeChat servers to reach the endpoint. Apply input validation and sanitization to the Source parameter by implementing a whitelist of allowed characters and values before any processing - reject requests containing shell metacharacters (|, &, ;, `, $, etc.). Consider forking DjangoBlog or applying a custom patch that escapes the Source parameter using Python's shlex.quote() function or subprocess module with list-based arguments instead of shell strings. Implement strict authentication controls on the WeChat Bot interface, restricting access to a minimal set of trusted accounts. Monitor logs for exploitation attempts (unusual command sequences in Source parameter, error messages indicating command injection). As a temporary measure, disable the WeChat Bot functionality entirely until a secure update becomes available. Organizations should monitor the upstream DjangoBlog repository for community-provided patches or consider migrating to alternative blog platforms with active security maintenance.
More in Djangoblog
View allDjangoBlog up to version 2.1.0.0 contains an authentication bypass vulnerability in the blog/views.py Clean Endpoint tha
Missing authentication in DjangoBlog 2.1.0.0 and prior allows remote unauthenticated attackers to inject GPS tracking da
Hard-coded Amap API key exposure in DjangoBlog allows remote attackers to abuse geolocation services without authenticat
Cross-site Scripting (XSS) - Stored in GitHub repository liangliangyy/djangoblog prior to master. Rated medium severity
DjangoBlog up to version 2.1.0.0 contains hard-coded credentials in djangoblog/settings.py that can be exploited remotel
Liangliangyy DjangoBlog up to version 2.1.0.0 contains hard-coded credentials in the SECRET_KEY parameter within djangob
Improper authorization in liangliangyy DjangoBlog versions up to 2.1.0.0 allows authenticated remote attackers to manipu
DjangoBlog versions up to 2.1.0.0 use a hard-coded cryptographic key in djangoblog/settings.py when the SECRET_KEY argum
Same weakness CWE-77 – Command Injection
View allSame technique Command Injection
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-23707
GHSA-fmjq-qmw7-vfrv