CVE-2026-49293
WysokieCVSS 7.5Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 26 — wyżej niż 26% wszystkich znanych CVE
Streszczenie
Podatność w parserze TOML dla JavaScript (js-toml) w wersjach do 1.1.0 włącznie powoduje, że parsowanie literałów szesnastkowych, ósemkowych lub binarnych o dużej długości prowadzi do kwadratowego wzrostu czasu obliczeń (O(n²)). Atakujący może wysłać dokument TOML zawierający jeden ~500 kB literał szesnastkowy, co na nowoczesnym laptopie (Apple M-series, Node v22) obciąża jeden rdzeń CPU przez około 40 sekund, powodując wyczerpanie zasobów CPU (DoS).
Ocena ryzyka
Organizacje korzystające z js-toml do przetwarzania danych TOML pochodzących od zewnętrznych źródeł (np. endpointy konfiguracyjne, systemy CI/CD, wtyczki IDE) są narażone na atak DoS pojedynczym żądaniem, który może znacząco obciążyć serwer i zakłócić działanie usług.
Rekomendacja
Należy natychmiast zaktualizować bibliotekę js-toml do wersji 1.1.1 lub nowszej, która usuwa tę podatność. W przypadku braku możliwości aktualizacji, należy ograniczyć rozmiar przesyłanych dokumentów TOML oraz zastosować limit czasu na operacje parsowania.
Oryginalny opis (angielski, źródło NVD)
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.

