Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessSend crafted deeply-nested JSON to service
-
ExploitOverflow LEJP path/stack index past array bounds
-
ImpactTrigger out-of-bounds read and crash (denial of service)
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Bounds checking, read limits
MITRE ATT&CK
1 technique across 1 tactic: Collection The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires that the target application use libwebsockets' LEJP incremental JSON parser (lejp_parse) on attacker-controlled input, and that the attacker can supply JSON whose nesting depth or path-element count exceeds the fixed-size ctx->i (path index) and ctx->st (stack) arrays - the vulnerable off-by-one checks (ctx->ipos > vs >= LWS_ARRAY_SIZE, and ++ctx->sp == LWS_ARRAY_SIZE) allow writing/indexing one element past the bounds before the limit is enforced. No authentication or user interaction is needed (PR:N/UI:N). The key limiting factor is deployment-dependent: libwebsockets must actually be parsing untrusted JSON via LEJP on a reachable interface; applications that only parse trusted/local configuration JSON, or that do not expose LEJP to remote input, are not remotely exploitable. Impact is limited to a process crash (availability), not disclosure or code execution. |
| Impact | The signals are consistent but point to a moderate, availability-only issue rather than a top-tier emergency. The CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H, base 7.5) shows the flaw is remotely reachable with low complexity and no privileges or user interaction, but impact is confined to availability (C:N/I:N) - a classic out-of-bounds-read denial of service (CWE-125), not code execution. SSVC reinforces this: Exploitation=poc (not active), Automatable=yes (the parser bug can be triggered reliably/at scale), and Technical Impact=partial (crash, not full system compromise). A public gist and a filed GitHub issue indicate exploit/proof-of-concept material exists, so this qualifies as 'publicly available exploit code exists' - but there is NO CISA KEV listing and NO EPSS score in the input, so claims of widespread active exploitation cannot be made. One conflict to flag explicitly: the input Tags include 'Information Disclosure' and 'Buffer Overflow', yet the CVSS vector sets C:N and the CWE is an OOB READ (125), not a write/overflow - an OOB read could in principle leak adjacent memory, but NVD rated no confidentiality impact, so treat info-disclosure as unconfirmed and the real, rated consequence as denial of service only. Net: a genuine patch-worthy bug for anyone exposing LEJP to untrusted JSON, but the ceiling is service crash, not RCE. |
| Exploit ScenarioDerived | An attacker sends a crafted JSON payload with excessive object/array nesting (or an over-long path) to an application that feeds attacker-controlled input into libwebsockets' LEJP incremental parser. The off-by-one bounds checks on ctx->ipos and ctx->sp let the index exceed the fixed-size ctx->i/ctx->st arrays, causing an out-of-bounds read that crashes the process. Proof-of-concept material is referenced in a public gist and the upstream issue, and because the trigger is a single network-delivered message with no authentication, it is easily automatable. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 13, 2026
Out-of-bounds access in libwebsockets' LEJP incremental JSON parser allows unauthenticated remote attackers to crash the process via crafted JSON that exceeds the parser's fixed-size path index or stack arrays. Affected are applications that call lejp_parse on untrusted input; publicly available exploit code exists, though exploitation is deployment-dependent and impact is limited to denial of service (no code execution or data disclosure). The root cause is an off-by-one error in lib/misc/lejp.c, where boundary checks are performed after incrementing the index.
RemediationAI
Apply the upstream fixes by updating libwebsockets to a version that includes commits 736a4a26fce344766bc6618df87bf32193829dd0 and c404a205a98323a7f60e69fae532c5d26bf4a62a (see the GitHub issue https://github.com/warmcat/libwebsockets/issues/3664). Since no tagged release version is specified, verify your dependency version or integrate the patches manually. As a workaround, avoid using the LEJP parser on untrusted JSON input, or enforce a maximum JSON nesting depth and path length at an upstream proxy or validation layer to prevent the arrays from overflowing. Note that limiting nesting depth may reject legitimate deeply nested JSON, so tune thresholds carefully. Disabling LEJP entirely is not always feasible, but if the application does not require incremental JSON parsing, consider using a different parser. No public advisory with a fixed version was found beyond the upstream commits.
Affected VersionsENISA
Affects your stack
Find out whether the stacks and servers you run are on an affected version.
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
libwebsockets is a lightweight C library providing WebSocket and HTTP server/client functionality. Its LEJP (Lightweight Embedded JSON Parser) parser processes JSON incrementally, maintaining a path index array (ctx->i) and a stack array (ctx->st) of fixed sizes. The vulnerability is a classic off-by-one error: the code increments the index or stack pointer (ctx->ipos++ or ++ctx->sp) before checking against LWS_ARRAY_SIZE, permitting one element beyond the array boundary to be accessed. The upstream fix (commits 736a4a26 and c404a205) reorders the check to use >= and tests before incrementing. Although classified as CWE-125 (out-of-bounds read), the flaw also involves an out-of-bounds write preceding the read. The CVSS vector (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H) confirms remote, unauthenticated exploitation with high availability impact only; no integrity or confidentiality impact.
Know when the next one hits your stack
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Remote unauthenticated JSON input triggers the parser with no interaction (AV:N/AC:L/PR:N/UI:N); an OOB read yields only a crash, so C:N/I:N/A:H.
Primary rating from Vendor (mitre).
CVSS VectorVendor: mitre
Lifecycle Timeline
3DescriptionCVE.org
libwebsockets contains an out-of-bounds read vulnerability in the LEJP incremental parser in lib/misc/lejp.c. This allows a remote attacker to cause a denial of service
Executive ViewAI
A high-severity out-of-bounds flaw in libwebsockets' LEJP incremental JSON parser (CVE-2026-95114) lets crafted JSON crash any process that parses untrusted input through the library, producing a denial-of-service condition. The exposure is concentrated in internet-facing and embedded products that bundle libwebsockets rather than in systems we deploy directly, so ownership is spread across product, firmware, and third-party supplier teams. No code execution or data disclosure is involved, but sustained crashes of API, authentication, or device-management services can interrupt customer-facing operations and, in embedded contexts, require physical recovery.
No vendor patch available. Interim mitigations: enforce strict inbound JSON payload size and nesting-depth limits at reverse proxies, API gateways, and WAFs; disable or replace the LEJP parser for any untrusted input path in favor of a hardened JSON parser; run JSON parsing in an isolated, resource-capped process with automatic restart so crashes do not cascade; apply rate limiting and per-client connection caps to make repeated triggering impractical; restrict network exposure of affected services; and log and alert on abnormal process termination to detect attempted exploitation.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
A buffer overflow occurs when a program writes more data to a memory buffer than it was allocated to hold, causing the excess data to spill into adjacent memory regions.
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
EUVD-2026-98808
GHSA-cf7h-w57m-f768
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB