Severity by source
CVSS:4.0/AV:L/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 Vendor (VulDB) · only source for this CVE.
CVSS VectorVendor: VulDB
CVSS:4.0/AV:L/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
Lifecycle Timeline
3DescriptionCVE.org
A security flaw has been discovered in Squirrel up to 3.2. Impacted is the function ReadObject of the file squirrel/sqobject.cpp of the component Cnut File Handler. Performing a manipulation results in heap-based buffer overflow. The attack is only possible with local access. The exploit has been released to the public and may be used for attacks. The project was informed of the problem early through an issue report but has not responded yet.
AnalysisAI
Heap-based buffer overflow in Squirrel versions 3.0 through 3.2 allows a locally authenticated low-privilege attacker to corrupt heap memory by supplying a malicious Cnut file to the ReadObject function in sqobject.cpp. The impact is limited to partial confidentiality, integrity, and availability effects with no scope change, as confirmed by the CVSS 4.0 score of 1.9. A public proof-of-concept exploit exists on GitHub, but this vulnerability has not been confirmed actively exploited by CISA KEV, and EPSS places exploitation probability at just 0.01% (2nd percentile), indicating very low real-world exploitation activity.
Technical ContextAI
Squirrel is a lightweight, embedded scripting language implemented in C++ and commonly integrated into games and applications. The vulnerable component is the ReadObject function within squirrel/sqobject.cpp, part of the Cnut File Handler subsystem responsible for deserializing compiled Squirrel bytecode files (.cnut). CWE-122 (Heap-based Buffer Overflow) identifies the root cause as improper bounds checking during object deserialization - a negative or crafted length value can cause the function to write beyond the boundaries of a heap-allocated buffer, corrupting adjacent memory. The CPE identifier cpe:2.3:a:n/a:squirrel:*:*:*:*:*:*:*:* indicates Squirrel is not formally registered under a recognized vendor in the NVD CPE dictionary, which may limit automated detection coverage in vulnerability management tooling.
RemediationAI
No vendor-released patch has been identified at time of analysis. The project was notified via GitHub issue (https://github.com/albertodemichelis/squirrel/issues/327) but has not responded. Organizations should actively monitor the upstream repository at https://github.com/albertodemichelis/squirrel for a fix release. As compensating controls, restrict local user permissions to prevent untrusted users from supplying arbitrary Cnut files to Squirrel-based applications - this directly addresses the required attack vector. Where feasible, disable or sandbox Cnut file ingestion from external or user-controlled sources; note this may break legitimate scripting workflows and should be tested in staging. Run applications embedding Squirrel in least-privilege OS contexts (e.g., dedicated service accounts, containers with restricted capabilities) to limit heap corruption impact. Input validation at the application layer on Cnut file headers and length fields can reduce exposure without requiring Squirrel engine changes.
sqclass.cpp in Squirrel through 2.2.5 and 3.x through 3.1 allows an out-of-bounds read (in the core interpreter) that ca
Heap-based buffer overflow in sqbaselib.cpp in SQUIRREL 3.2 due to lack of a certain sq_reservestack call. Rated critica
A security flaw has been discovered in Squirrel up to 3.2. This affects the function SQObjectPtr::operator in the librar
A vulnerability was determined in Squirrel up to 3.2. Affected by this vulnerability is the function SQFuncState::PopTar
A vulnerability was determined in Squirrel up to 3.2. This vulnerability affects the function sqstd_rex_newnode in the l
A vulnerability was found in Squirrel up to 3.2. This affects the function SQCompiler::Factor/SQCompiler::UnaryOP of the
Stack-based buffer overflow in Squirrel up to version 3.2 within the validate_format function of sqstdlib/sqstdstring.cp
Same weakness CWE-122 – Heap-based Buffer Overflow
View allSame technique Heap Overflow
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-31813
GHSA-w3m6-w27h-v4g9