Quantum Secular Labs / Blog / Advisories
CVE-2017-20205: Valve's Source SDK (source-sdk-2013)'s ragdoll model parsing logic contains a stack-based buffer overflow…
CVE-2017-20205 is rated critical with a CVSS v4.0 base score of 9.2. Per its scoring, it can be exploited over the network, without authentication, without any user interaction. The scored impact on confidentiality, integrity and availability is the highest available.
Vulnerability description
Valve's Source SDK (source-sdk-2013)'s ragdoll model parsing logic contains a stack-based buffer overflow vulnerability.The tokenizer function `nexttoken` copies characters from an input string into a fixed-size stack buffer without performing bounds checks. When `ParseKeyValue` processes a collisionpair rule longer than the destination buffer (256 bytes), an overflow of the stack buffer `szToken` can occur and overwrite the function return address. A remote attacker can trigger the vulnerable code by supplying a specially crafted ragdoll model which causes the oversized collisionpair rule to be parsed, resulting in remote code execution on affected clients or servers. Valve has addressed this issue in many of their Source games, but independently-developed games must manually apply patch.
Severity breakdown
CVSS v4.0 9.2: CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/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
- Attack vector: Network. Exploitable remotely over the network.
- Attack complexity: Low. No special conditions; the attack can be repeated reliably.
- Attack requirements: Present. A specific deployment or execution condition must exist.
- Privileges required: None. No account or prior access is needed.
- User interaction: None. No action from any user is needed.
- Confidentiality impact (vulnerable system): High. Total loss of confidentiality.
- Integrity impact (vulnerable system): High. Total loss of integrity.
- Availability impact (vulnerable system): High. Total loss of availability.
- Confidentiality impact (subsequent systems): None. No confidentiality impact beyond the vulnerable system.
- Integrity impact (subsequent systems): None. No integrity impact beyond the vulnerable system.
- Availability impact (subsequent systems): None. No availability impact beyond the vulnerable system.
Underlying weakness
CWE-121: Stack-based Buffer Overflow
The product writes past the end of a buffer that was allocated on the stack.