highCVSS 7.5Vulnerability

CVE-2026-49293

## Summary `js-toml` versions up to and including **1.1.0** parse hexadecimal / octal / binary integer literals via a hand-written `parseBigInt` loop that multiplies a `BigInt` accumulator by the radix once per input digit. Each iteration performs a `BigInt * BigInt` operation on an accumulator that grows linearly with the number of digits already consumed, so the whole loop is **O(n²)** in the literal length. The lexer regex places **no upper bound on the literal length**, so a single TOML document containing one ~500 kB hex literal pins one CPU core for **~40 seconds** on a modern laptop (Apple M-series, Node v22). Memory amplification is bounded but CPU amplification is severe and grows quadratically: doubling the literal length quadruples the work. A caller that invokes `load()` on attacker-controlled TOML (configuration upload endpoints, CI/CD systems ingesting third-party `*.toml`, IDE plugins, build tools) is exposed to a single-request CPU exhaustion DoS. CWE-1333 (Inefficient Regular Expression Complexity → here, inefficient parser complexity), CWE-400 (Uncontrolled Resource Consumption), CWE-407 (Inefficient Algorithmic Complexity). CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H = **7.5 (HIGH)** when the parser is invoked on attacker-controllable input; LOW when the calling application restricts TOML input size to small documents (< 1 kB). ## Affected - Package: `js-toml` (npm) - Versions: `>= 0.0.0, <= 1.1.0` (all released versions up to and including the current `1.1.0`) - Affected entry point: `load()` exported from the package root ## Vulnerable code `src/load/tokens/NonDecimalInteger.ts` lines 54-84 at SHA-pinned [`2470ebf2e9009096aa4cbd1a15e574c54cc36b1a`](https://github.com/sunnyadn/js-toml/blob/2470ebf2e9009096aa4cbd1a15e574c54cc36b1a/src/load/tokens/NonDecimalInteger.ts#L54-L84): ```ts const parseBigInt = (string: string, radix: number): bigint => { let result = BigInt(0); for (let i = 0; i < string.length; i++) { const char = strin

Properties

summary
js-toml vulnerable to CPU exhaustion via O(n^2) BigInt construction on radix-prefixed integer literals
severity
high
epss_score
0.0041
cvss_score
7.5
ghsa_published
2026-06-26T22:21:43Z
source_url
https://github.com/advisories/GHSA-wp3c-266w-4qfq
ghsa_updated
2026-06-26T22:21:44Z
ghsa_id
GHSA-wp3c-266w-4qfq
cve_id
CVE-2026-49293
cvss_vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
is_ghsa_only
false
epss_percentile
0.33721

Related Entities (7)

ENRICHED_BY (1)

[Source]FIRST EPSS

HAS_WEAKNESS (3)

[Weakness]Uncontrolled Resource Consumption
[Weakness]Inefficient Regular Expression Complexity
[Weakness]Inefficient Algorithmic Complexity

REPORTED_BY (1)

[Source]GitHub Advisory Database

VULNERABLE_TO (1)

[Software]npm/js-toml

AFFECTS (1)

[Software]npm/js-toml

Explore deeper with Ninja Signal's threat intelligence graph

CVE-2026-49293 (CVSS 7.5) — Ninja Signal Threat Intelligence | Ninja Signal