Skip to main content

N3.js EUVDEUVD-2026-97886

| CVE-2026-109563 HIGH
Inefficient Regular Expression Complexity (ReDoS) (CWE-1333)
2026-10-12 disclosure@vulncheck.com GHSA-xf53-x4jg-3wwc
8.7
CVSS 4.0 · Vendor: vulncheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Submit untrusted Turtle/N3 input
  2. Delivery
    Embed long non-terminating digit run
  3. Exploit
    Trigger quadratic backtracking in N3Lexer number regex
  4. Execution
    Block single-threaded Node.js event loop
  5. Impact
    Deny service to all clients

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V2 - Validation and Business Logic Regex complexity limits
MITRE ATT&CK

1 technique across 1 tactic: Impact

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

The affected application must use N3.js before 2.11.1 to parse Turtle or N3 input that is attacker-controlled (e.g. an endpoint, upload, or background job that feeds untrusted RDF documents into the N3 parser/lexer). The specific trigger is input containing a long run of digits that does not form a complete numeric literal, which drives the N3Lexer number pattern into quadratic backtracking. CVSS is AV:N/AC:L/PR:N/UI:N, so no authentication, special configuration, or user interaction is required - exploitation is limited only by whether the deployment actually exposes N3.js parsing to untrusted input. Deployments that parse only trusted/internal RDF are not practically at risk. Impact is confined to denial of service via event-loop blocking; there is no data or integrity impact.

Impact

This is a genuine but bounded availability risk. The provided CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H, base 8.7) is internally consistent with the description: a remote, unauthenticated attacker with low complexity can cause a high availability impact and zero confidentiality or integrity impact. The high 8.7 score is driven entirely by the VA:H availability metric - there is NO data exposure or code execution, so this should not be triaged at the same urgency as a critical RCE despite the 'High' rating. No EPSS score was provided in the input, so exploitation probability cannot be quantified. The CVE is NOT listed in CISA KEV and NO public proof-of-concept is referenced, so there is no public exploit identified at time of analysis; the only intelligence sources are the VulnCheck advisory and the vendor's own GitHub commit/PR. The signals are non-conflicting: a config-independent ReDoS in a widely-used parser, remotely reachable wherever the library parses untrusted input, but with impact limited to denial of service and no confirmed in-the-wild activity. Real priority is moderate - patch promptly for any service that parses attacker-controlled Turtle/N3, but this is not an emergency on the level of an exploited RCE.

Exploit ScenarioDerived

An application uses N3.js (before 2.11.1) to parse Turtle or N3 documents supplied by untrusted users - for example an RDF ingestion endpoint or a SPARQL/linked-data upload feature. An attacker submits a document containing a long run of digits that does not terminate as a valid number, causing the N3Lexer numeric-literal regex to backtrack quadratically and block the single-threaded Node.js event loop, rendering the service unresponsive to all clients. No public exploit code is identified, but the trigger is trivial to construct from the public patch diff.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.4% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 12, 2026

Denial of service in N3.js before 2.11.1 lets unauthenticated remote attackers stall Node.js applications that parse untrusted Turtle or N3 by supplying long runs of digits that never terminate a valid numeric literal, driving the N3Lexer number regular expression into quadratic backtracking that blocks the event loop. The flaw (CWE-1333) is reachable with AV:N/AC:L/PR:N/UI:N and results only in availability loss (VC:N/VI:N/VA:H in the vendor CVSS 4.0 vector; CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H in independent assessment), with no confidentiality or integrity impact. It is not listed in CISA KEV and no public exploit identified at time of analysis, so real-world exposure is governed by whether the deployment actually feeds attacker-controlled RDF documents into N3.js parsing paths.

RemediationAI

Vendor-released patch: N3.js 2.11.1 - upgrade to n3 2.11.1 or later (npm install n3@^2.11.1) and regenerate lockfiles, then rebuild and redeploy every container or bundle that embeds the dependency, since transitive consumers will otherwise keep the vulnerable lexer; the fix is implemented by commit b1c497f and PR #760, with details in the VulnCheck advisory at https://www.vulncheck.com/advisories/n3-js-before-2.11.1-redos-via-n3lexer-numeric-literal-regex. If an immediate upgrade is not possible, compensating controls are: cap the size of any RDF payload accepted from untrusted sources (for example a hard request-body or upload limit well below the megabyte range) and reject or truncate documents containing unusually long uninterrupted digit runs before they reach the lexer - trading the ability to parse legitimately large literals for protection; and move all parsing of untrusted RDF into an isolated worker thread or child process with a strict wall-clock and CPU timeout so an event-loop stall kills only that worker rather than the whole HTTP process, accepting added architectural complexity and memory overhead. Additionally, restrict who can submit RDF to ingestion endpoints (authentication, per-client rate limiting, and queuing of background parsing jobs) to reduce the number of concurrent attacker-controlled documents, and monitor for worker timeouts or sustained CPU saturation on parsing services as a detection signal. Deployments that only parse trusted, internally generated RDF are not practically at risk and can treat the upgrade as routine dependency hygiene.

Affected VersionsENISA

N3.js 0 <2.11.1

Affected Packages

euvd n3_js fix: 2.11.1

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

N3.js (npm package published from the rdfjs/N3.js repository) is a Node.js RDF library whose lexer, N3Lexer, tokenizes Turtle, N3, TriG and N-Quads documents using compiled regular expressions for each token class. The vulnerable numeric-literal pattern was ^[\-+]?(?:(\d+\.\d*|\.?\d+)[eE][\-+]?|\d*(\.)?)\d+(?=\.?[,;:!^\s#()\[\]\{\}"'<>]), in which the \d*(\.)? branch immediately followed by \d+ gives the engine many equivalent ways to partition the same run of digits; when the trailing lookahead never matches, the matcher backtracks over those partitionings, producing roughly quadratic blow-up on long digit runs (CWE-1333, Inefficient Regular Expression Complexity). Because Node.js executes JavaScript on a single-threaded event loop, the resulting CPU burn halts all request handling in the process rather than degrading a single request. The fix commit b1c497f (PR #760) rewrites the pattern as ^[\-+]?(?:(\d+\.\d*|\.?\d+)[eE][\-+]?\d+|(?=\.?\d)\d*(?:(\\.)\d+)?)(?=\.?[,;:!^\s#()\[\]\{\}"'<>]), removing ambiguity with a lookahead, and additionally hardens BaseIRI.js suffix handling and N3Parser.js base-IRI/format resolution in the same patch, indicating the release also cleaned up related regex and string-parsing behaviour.

Know when Node.js gets its next vulnerability

  • 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

Vendor (vulncheck) PRIMARY 8.7 HIGH
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
vuln.today AI 7.5 HIGH

Remote unauthenticated attacker sends untrusted parser input (AV:N/AC:L/PR:N/UI:N); ReDoS blocks the event loop for availability-only impact (A:H, C:N/I:N), no scope change.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (vulncheck).

CVSS VectorVendor: vulncheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

2
Patch available
Oct 12, 2026 - 22:03 EUVD
CVE Published
Oct 12, 2026 - 21:17 cve.org
HIGH 8.7

DescriptionCVE.org

N3.js before 2.11.1 contains a regular expression denial of service vulnerability in the N3Lexer number pattern that backtracks quadratically on long digit runs. Attackers can supply untrusted Turtle or N3 input containing long runs of digits that do not end a number, blocking the Node.js event loop and causing denial of service.

Executive ViewAI

Why It Matters

Node.js services that use the N3.js library to parse RDF documents supplied by outside parties can be frozen for extended periods by a single malformed input, and the weakness sits in the library itself rather than in any customer or operator misconfiguration. The trigger requires no credentials and no user interaction, so any internet-facing or partner-facing service that ingests Turtle or N3 data - knowledge graphs, linked-data APIs, catalogue and metadata platforms - is a candidate, and the outcome is loss of availability rather than exposure of data. Leadership attention should focus on downtime risk, request backlogs, and SLA erosion in those specific ingestion paths, while noting that no public exploit or active exploitation has been reported and exposure depends entirely on whether attacker-controlled RDF reaches N3.js parsing code.

Business Impact: Medium
Compensating Controls

No vendor-released patch identified at time of analysis in the provided data; the advisory's affected-version boundary points to N3.js 2.11.1 as the fixed release, so upgrading is the primary remediation. Until that upgrade is verified, interim mitigations are: enforce strict maximum document and token sizes on all RDF input before it reaches N3.js; reject or pre-truncate long runs of digits and other malformed numeric literals; run parsing in worker threads or isolated child processes with enforced CPU/wall-clock kill timeouts; apply per-client rate limiting and concurrency caps on ingestion endpoints; deploy edge/WAF rules to block oversized or anomalous RDF payloads; and use circuit breakers plus container CPU quotas so a stalled parse cannot starve the Node.js event loop or cascade to dependent services.

Threat Intelligence Overview

EPSS Score
0.4%
Top 73% exploitable
Prevalence
Medium
leading RDF/Turtle parser for JavaScript, but semantic-web parsing is a niche use case
Social Media
1
Sightings
Data Quality
5 sources
Confidence: Medium

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.4%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
Yes
Human Impact
Medium

Priority Score

44
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +44
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

CVE-2025-68613 HIGH POC
8.8 Dec 19

Remote code execution in n8n's workflow expression evaluation system allows an authenticated user with workflow creation

CVE-2024-41713 CRITICAL POC
9.1 Oct 21

A vulnerability in the NuPoint Unified Messaging (NPM) component of Mitel MiCollab through 9.8 SP1 FP2 (9.8.1.201) could

CVE-2024-55591 CRITICAL POC
9.8 Jan 14

FortiOS and FortiProxy contain an authentication bypass via the Node.js websocket module allowing unauthenticated remote

CVE-2023-44487 HIGH POC
7.5 Oct 10

Denial of service against HTTP/2 server implementations allows remote unauthenticated attackers to exhaust server resour

CVE-2014-7205 CRITICAL POC
10.0 Oct 08

Eval injection vulnerability in the internals.batch function in lib/batch.js in the bassmaster plugin before 1.5.2 for t

CVE-2025-59528 CRITICAL POC
10.0 Sep 22

Flowise version 3.0.5 contains a remote code execution vulnerability in the CustomMCP node. The mcpServerConfig paramete

CVE-2017-14849 HIGH POC
7.5 Sep 28

Node.js 8.5.0 before 8.6.0 allows remote attackers to access unintended files, because a change to ".." handling was inc

CVE-2017-5941 CRITICAL POC
9.8 Feb 09

An issue was discovered in the node-serialize package 0.0.4 for Node.js. Rated critical severity (CVSS 9.8), this vulner

CVE-2014-0224 HIGH POC
7.4 Jun 05

OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.0.1h does not properly restrict processing of ChangeCiph

CVE-2014-3744 HIGH POC
7.5 Oct 23

Directory traversal vulnerability in the st module before 0.2.5 for Node.js allows remote attackers to read arbitrary fi

CVE-2014-9566 HIGH POC
7.5 Mar 10

Multiple SQL injection vulnerabilities in the Manage Accounts page in the AccountManagement.asmx service in the Solarwin

CVE-2013-4660 MEDIUM POC
6.8 Jun 28

The JS-YAML module before 2.0.5 for Node.js parses input without properly considering the unsafe !!js/function tag, whic

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy