Cyber Resilience

CVE-2026-2659

MediumPublic PoC

Published: 18 February 2026

Published
18 February 2026
Modified
20 February 2026
KEV Added
Patch
CVSS Score v4 4.8 CVSS:4.0/AV:L/AC:L/AT:N/PR:L/UI:N/VC:N/VI:N/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
EPSS Score 0.0001 1.4th percentile
Risk Priority 10 60% EPSS · 20% KEV · 20% CVSS

Summary

CVE-2026-2659 is a medium-severity Improper Restriction of Operations within the Bounds of a Memory Buffer (CWE-119) vulnerability in Squirrel-Lang Squirrel. Its CVSS base score is 4.8 (Medium).

Operationally, exploitation aligns with the MITRE ATT&CK technique Application or System Exploitation (T1499.004); ranked at the 1.4th percentile by exploit likelihood (below the median); it is not currently listed in the CISA KEV catalog; a public proof-of-concept is referenced.

The strongest mitigations our analysis identified are NIST 800-53 SI-16 (Memory Protection) and AC-6 (Least Privilege).

Deeper analysis

CVE-2026-2659 is a vulnerability in Squirrel scripting language versions up to 3.2, specifically affecting the SQFuncState::PopTarget function in the file src/squirrel/squirrel/sqfuncstate.cpp. The flaw is triggered by manipulation of the _target_stack argument, resulting in an out-of-bounds read. It is classified under CWE-119 (improper restriction of operations within the bounds of a memory buffer) and CWE-125 (out-of-bounds read), with a CVSS v3.1 base score of 3.3.

The attack requires local access (AV:L) with low privileges (PR:L), low complexity (AC:L), and no user interaction (UI:N), with unchanged scope (S:U). A local attacker can exploit it to cause a low-impact availability disruption (A:L), such as a denial of service, with no impact on confidentiality or integrity (C:N/I:N).

References indicate the issue was reported early to the project via GitHub issue #311 (https://github.com/albertodemichelis/squirrel/issues/311), but no response has been received and no patches are available. A public proof-of-concept exploit is disclosed at https://github.com/oneafter/0122/blob/main/i311/repro, with further details on VulDB (https://vuldb.com/?ctiid.346457, https://vuldb.com/?id.346457, https://vuldb.com/?submit.753163).

EU & UK References

Vulnerability details

A vulnerability was determined in Squirrel up to 3.2. Affected by this vulnerability is the function SQFuncState::PopTarget of the file src/squirrel/squirrel/sqfuncstate.cpp. Executing a manipulation of the argument _target_stack can lead to out-of-bounds read. It is possible to launch the attack…

more

on the local host. The exploit has been publicly disclosed and may be utilized. The project was informed of the problem early through an issue report but has not responded yet.

CWE(s)

Related Threats

MITRE ATT&CK Enterprise TechniquesAI

T1499.004 Application or System Exploitation Impact
Adversaries may exploit software vulnerabilities that can cause an application or system to crash and deny availability to users.
Why these techniques?

OOB read in Squirrel scripting engine enables local low-priv adversary to trigger application crash (A:L only), directly mapping to application/system exploitation for endpoint DoS.

Confidence: MEDIUM · MITRE ATT&CK Enterprise v18.1

CVEs Like This One

CVE-2026-2661Same product: Squirrel-Lang Squirrel
CVE-2026-3386Shared CWE-119, CWE-125
CVE-2026-2858Shared CWE-119, CWE-125
CVE-2026-3731Shared CWE-119, CWE-125
CVE-2026-3663Shared CWE-119, CWE-125
CVE-2026-5315Shared CWE-119, CWE-125
CVE-2026-5314Shared CWE-119, CWE-125
CVE-2026-2662Shared CWE-119, CWE-125
CVE-2026-2644Shared CWE-119, CWE-125
CVE-2025-24265Shared CWE-125

Affected Assets

squirrel-lang
squirrel
≤ 3.2

Mitigating Controls

Mitigating Controls (NIST 800-53 r5) AI

prevent

Directly enforces hardware or software memory protection mechanisms that would block the out-of-bounds read in SQFuncState::PopTarget.

prevent

Requires validation of untrusted inputs such as the _target_stack argument before it reaches the vulnerable PopTarget function.

prevent

Limits process privileges so a local attacker cannot easily reach or exploit the Squirrel interpreter code path.

References