CVE-2026-88389

Published Sep 25, 2026 CVSS 3.1 · 6.2 Medium EPSS < 1% KEV · Not listed
Description
Espruino 2v29 (commit bffc6d0) contains a NULL pointer dereference vulnerability in jslGetRawString() in src/jslex.c. Crafted raw/binary string input can cause the lexer to pass a NULL iterator target to jsvLockAgain(). In RELEASE/NO_ASSERT builds, the missing assertion guard allows a write through the NULL pointer, resulting in memory corruption and application termination or denial of service.

Analysis

AI-generated

Technical impact

The Espruino JavaScript interpreter contains a NULL pointer dereference flaw in the function jslGetRawString in src/jslex.c. Crafted raw or binary string data can cause the lexer to pass a NULL iterator to jsvLockAgain, leading to a write through a NULL pointer. In builds without assertions enabled, this memory corruption can crash the interpreter, resulting in application termination or denial of service. The vulnerability does not explicitly grant remote code execution, but the memory corruption could potentially be leveraged to execute arbitrary code in environments where the interpreter runs with elevated privileges.

Affected Systems

Any installation of Espruino based on commit bffc6d0 (v2.29) is affected. The issue manifests in RELEASE/NO_ASSERT builds where the missing assertion guard is present. Upgrades or patches that remove the vulnerable code path protect against this flaw.

Risk and Exploitability

Because the flaw requires crafted string input to the lexer, exploitation would typically require an attacker able to supply such input to the Espruino interpreter. The CVSS score of 6.2 indicates moderate severity. The EPSS score of less than 1% suggests a low probability of exploitation, and the vulnerability is not listed in the CISA KEV catalog. The vulnerability can cause denial of service without additional privilege escalation, and if the interpreter runs with privileged access, memory corruption could elevate to remote code execution. Therefore the risk assessment relies on the potential impact of a denial of service in mission‑critical devices.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade Espruino to a version that includes the fix for the NULL pointer dereference in jslGetRawString.
  • Rebuild Espruino without the NO_ASSERT flag or enable assertions to preserve the guard that prevents the write through a NULL pointer.
  • If an upgrade is not immediately possible, disable or remove raw/binary string support in the interpreter to prevent the vulnerable code path.

Generated by OpenCVE AI on September 29, 2026 at 05:53 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories available
History
Type Values Removed Values Added
Title NULL Pointer Dereference in Espruino Lexer Leading to Memory Corruption
Type Values Removed Values Added
Metrics cvssV3_1

{'score': 6.2, 'vector': 'CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H'}

ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'poc', 'Technical Impact': 'partial'}, 'version': '2.0.3'}

Type Values Removed Values Added
First Time appeared Espruino
Espruino espruino
Vendors & Products Espruino
Espruino espruino
Type Values Removed Values Added
Title NULL Pointer Dereference in Espruino Lexer Leading to Memory Corruption
Weaknesses CWE-476
Type Values Removed Values Added
Description Espruino 2v29 (commit bffc6d0) contains a NULL pointer dereference vulnerability in jslGetRawString() in src/jslex.c. Crafted raw/binary string input can cause the lexer to pass a NULL iterator target to jsvLockAgain(). In RELEASE/NO_ASSERT builds, the missing assertion guard allows a write through the NULL pointer, resulting in memory corruption and application termination or denial of service.
References
Weaknesses

Sources

Status
PUBLISHED
Assigner
mitre
Published
Updated
Sep 29, 2026, 3:21 AM
Reserved
Sep 10, 2026, 12:00 AM
Status
Deferred
Published
Sep 25, 2026, 3:17 PM
Modified
Sep 30, 2026, 5:32 PM