{"id":"CVE-2026-49293","summary":"CPU exhaustion via O(n^2) BigInt construction on radix-prefixed integer literals","details":"js-toml is a TOML parser for JavaScript, fully compliant with the TOML 1.0.0 Spec. 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. Version 1.1.1 fixes the issue.","aliases":["GHSA-wp3c-266w-4qfq"],"modified":"2026-07-15T01:49:15.656785839Z","published":"2026-06-19T18:14:20.150Z","database_specific":{"cwe_ids":["CWE-1333","CWE-400","CWE-407"],"osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/49xxx/CVE-2026-49293.json","cna_assigner":"GitHub_M"},"references":[{"type":"WEB","url":"https://github.com/sunnyadn/js-toml/releases/tag/v1.1.1"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/49xxx/CVE-2026-49293.json"},{"type":"ADVISORY","url":"https://github.com/sunnyadn/js-toml/security/advisories/GHSA-wp3c-266w-4qfq"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-49293"},{"type":"FIX","url":"https://github.com/sunnyadn/js-toml/commit/1abcb31dc7b1fa88e4c848a8d108891cfbb96fa2"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/sunnyadn/js-toml","events":[{"introduced":"0"},{"fixed":"60d0741b59f8ae0699c0e0f04ca004f04302bcac"},{"fixed":"1abcb31dc7b1fa88e4c848a8d108891cfbb96fa2"}],"database_specific":{"cpe":"cpe:2.3:a:sunnyadn:js-toml:*:*:*:*:*:node.js:*:*","extracted_events":[{"introduced":"0"},{"fixed":"1.1.1"}],"source":["CPE_RANGE","REFERENCES"]}}],"versions":["v1.1.0","v1.0.3","v1.0.2","v1.0.1","v1.0.0","v0.1.1","v0.1.0"],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-49293.json"}}],"schema_version":"1.7.5","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"}]}