CVE Catalog

CVE-2026-41146

High
Published: Translated: NVD NIST

Summary

facil.io prior to commit 5128747363055201d3ecf0e29bf0a961703c9fa0 has an infinite loop vulnerability in `fio_json_parse` when encountering a nested JSON value starting with 'i' or 'I'. The process spins in user space and pegs one CPU core at ~100% instead of returning a parse error. Because `iodine` vendors the same parser code, it is also affected.

Risk Assessment

The risk includes a DoS attack via CPU exhaustion, potentially leading to service unavailability for other users.

Recommendation

Upgrade facil.io to a version containing the fix (commit 5128747363055201d3ecf0e29bf0a961703c9fa0) and update `iodine` if used. Also restrict processing of untrusted JSON data.

Other vulnerabilities in facil.io

See all
Original NVD description (English source)

facil.io is a C micro-framework for web applications. Prior to commit 5128747363055201d3ecf0e29bf0a961703c9fa0, `fio_json_parse` can enter an infinite loop when it encounters a nested JSON value starting with `i` or `I`. The process spins in user space and pegs one CPU core at ~100% instead of returning a parse error. Because `iodine` vendors the same parser code, the issue also affects `iodine` when it parses attacker-controlled JSON. The smallest reproducer I found is `[i`. The quoted-value form that originally exposed the issue, `[""i`, reaches the same bug because the parser tolerates missing commas and then treats the trailing `i` as the start of another value. Commit 5128747363055201d3ecf0e29bf0a961703c9fa0 fixes the issue.

Vulnerability data from NVD (NIST) · CISA KEV · EPSS