---
id: CVE-2026-85730
title: 'smol-toml is a small, fast, and correct TOML parser and serializer'
summary: >-
  smol-toml is a small, fast, and correct TOML parser and serializer. Prior to
  1.7.1, parse() can enter an infinite loop when a value inside an array or
  inline table is followed by a comment with no trailing newline. In
  src/util.ts, skipUn…
severity: high
cvss: 8.2
cvssVector: 'CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N'
cwe:
  - CWE-606
  - CWE-835
vendor: squirrelchat
product: smol-toml
affected:
  - smol-toml < 1.7.1
published: '2026-09-04'
updated: '2026-09-09'
sourceUpdated: '2026-09-09T21:09:13.080'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2026-85730'
references:
  - url: >-
      https://github.com/squirrelchat/smol-toml/commit/30f5c367d946b695f379b5d4f0946b2f0a0a8c2f
    label: security-advisories@github.com
  - url: 'https://github.com/squirrelchat/smol-toml/releases/tag/v1.7.1'
    label: security-advisories@github.com
  - url: >-
      https://github.com/squirrelchat/smol-toml/security/advisories/GHSA-7w5x-hrqm-74c2
    label: security-advisories@github.com
  - url: >-
      https://medium.com/@ravindu.lakmina1/seven-bytes-that-freeze-a-node-js-server-forever-the-story-of-cve-2026-85730-3213328b38f0
    label: security-advisories@github.com
  - url: >-
      https://github.com/squirrelchat/smol-toml/security/advisories/GHSA-7w5x-hrqm-74c2
    label: 134c704f-9b21-4f2e-91b3-4a467353bcc0
tags:
  - nvd
  - cve.org
  - exploit-available
exploitAvailable: true
ssvc:
  exploitation: poc
  automatable: 'no'
  technicalImpact: partial
  timestamp: '2026-09-04T17:40:28.815540Z'
cvssSource: cna
ingestedAt: '2026-09-14T14:10:36.966Z'
epss: 0.00524
epssPercentile: 0.42002
---

## Overview

smol-toml is a small, fast, and correct TOML parser and serializer. Prior to 1.7.1, parse() can enter an infinite loop when a value inside an array or inline table is followed by a comment with no trailing newline. In src/util.ts, skipUntil() calls indexOfNewline(), receives -1 at the end of input, and resets the cursor to the beginning of the string instead of leaving the structure scan. The parser then hangs indefinitely and can consume a service's processing capacity when an application parses attacker-controlled TOML. This issue is fixed in version 1.7.1.

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
