{"id":"CVE-2026-120203","published":"2026-10-31T18:17:08.237","lastModified":"2026-10-31T18:17:08.237","description":"ShowDoc 2.8.14 before 3.9.6 contains a code injection vulnerability in its Mock feature that allows authenticated users to execute shell commands through mockjs templates. Attackers can store a template via MockController::add with escaped parentheses that mockjs evaluates with eval(), then trigger it through MockController::infoByKey to run commands, as root in the official Docker image.","cvssScore":8.8,"cvssSeverity":"HIGH","cvssVector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","cwes":["CWE-94"],"vendors":[],"products":[],"references":[{"url":"https://gist.github.com/LioTree/028af150fd991cf9924dd2c7d5912e54","tags":[]},{"url":"https://github.com/star7th/showdoc","tags":[]},{"url":"https://github.com/star7th/showdoc/blob/v3.9.5/mock/index.js#L42","tags":[]},{"url":"https://github.com/star7th/showdoc/commit/5a2087a3f408f5266f61e9e2fb98845ef4788288","tags":[]},{"url":"https://www.vulncheck.com/advisories/showdoc-2.8.14-before-3.9.6-code-injection-via-mock-templates","tags":[]}],"exploitRefs":[{"url":"https://gist.github.com/LioTree/028af150fd991cf9924dd2c7d5912e54","tags":[]},{"url":"https://github.com/star7th/showdoc","tags":[]},{"url":"https://github.com/star7th/showdoc/blob/v3.9.5/mock/index.js#L42","tags":[]},{"url":"https://github.com/star7th/showdoc/commit/5a2087a3f408f5266f61e9e2fb98845ef4788288","tags":[]}],"hasPoc":true,"ai":{"summary":"ShowDoc 2.8.14 before 3.9.6 contains a code injection vulnerability in its Mock feature where authenticated users can inject and execute arbitrary shell commands via mockjs templates that use eval() on user-controlled input containing escaped parentheses.","exploitability":"Exploitation requires valid authentication and the ability to submit a malicious mockjs template through the MockController::add endpoint, but is otherwise straightforward due to lack of input sanitization.","blast_radius":"In the official Docker image, exploitation allows full system compromise as root, enabling data exfiltration, lateral movement, or persistence.","remediation":"Upgrade to ShowDoc version 3.9.6 or later, which patches the vulnerability by sanitizing mockjs template inputs before evaluation.","detection":"Defenders should monitor for HTTP POST requests to /index.php/mock/add containing suspicious patterns such as escaped parentheses (e.g., \\(\\)) in the template body, followed by subsequent GET requests to /index.php/mock/infoByKey referencing the same mock key; these logs may indicate attempted exploitation.","tags":["rce","webapp","auth-bypass","template-injection","docker"],"model":"garnet-coder","analyzedAt":"2026-11-01T09:57:58.855Z"}}