Intel

AIKIDO-2026-435802

ox is vulnerable to Uncontrolled Recursion

Uncontrolled Recursion Pre-CVE
Found by Aikido Intel before public disclosure or CVE publication.
Published Today

50

Medium Risk

This Affects:

RUBYox
1.0.0 - 2.14.26
Fixed in 2.14.27
Are you affected? Scan for Free

TL;DR

The ox XML parser recursively reads nested elements with read_element and applies no depth limit, so a deeply nested document drives the native C call stack until it overflows and the host process crashes. The parser also mishandles the end-of-buffer boundary when decoding special character (entity) sequences in read_coded_chars, so an unterminated & sequence at the 31-byte scan limit is treated as a valid entity and read past the intended boundary. An attacker who can supply XML to be parsed can crash the process with a small nested payload, causing denial of service. The fix caps element nesting at a maximum depth of 1000, threads a depth counter through the recursive parsing, and corrects the coded-character boundary check.

Who does this affect?

You are affected if you are using a version that falls within the vulnerable range and if you parse untrusted XML with ox (e.g. public XML/SOAP endpoints, webhooks, uploaded files).

Background info

ox is vulnerable to Uncontrolled Recursion in versions 1.0.0 - 2.14.26.

How to fix this

Upgrade the ox library to the patch version.