CVE-2026-41146 PUBLISHED

facil.io and downstream iodine ruby gem vulnerable to uncontrolled resource consumption and loop with unreachable exit condition

Assigner: GitHub_M
Reserved: 17.04.2026 Published: 22.04.2026 Updated: 22.04.2026

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.

Metrics

CVSS Vector: CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
CVSS Score: 8.7

Product Status

Vendor boazsegev
Product facil.io
Versions
  • Version < 5128747363055201d3ecf0e29bf0a961703c9fa0 is affected
Vendor boazsegev
Product iodine
Versions
  • Version < 0.7.59 is affected

References

Problem Types

  • CWE-400: Uncontrolled Resource Consumption CWE
  • CWE-835: Loop with Unreachable Exit Condition ('Infinite Loop') CWE