CVE-2026-100187: AIL Framework Onion Module: Non-Onion URL Accepted as Crawler Task Due to Bypassed Domain Validation
The Onion module in AIL Framework contained a performance shortcut in its URL extraction logic that accepted URLs as valid .onion targets based solely on a length check (exactly 69 characters) and a suffix check (ending in ".onion"), without performing proper hostname parsing or onion-domain validation. An unauthenticated attacker who could publish or control web content crawled by the framework could embed a crafted URL containing an IP address or non-onion hostname with a path ending in ".onion" that satisfied the length and suffix conditions. Such a URL would be extracted, its domain naively sliced from the string, and queued as a legitimate onion crawler task. This allowed unauthenticated content publishers to inject arbitrary non-onion targets into the crawler's task queue, influencing crawler behavior and potentially directing it toward unintended network resources. The vulnerability required no authentication, no user interaction, and only the ability to place crafted content in a location the framework would crawl. The security impact is a loss of integrity in the crawler's target selection: the framework processes and acts upon URLs that do not correspond to legitimate .onion services.
Affected Software
Event History
Frequently Asked Questions
Which deployments are realistically exposed?
Deployments are exposed if the Onion module crawls web content that an unauthenticated party can publish or control. The attacker’s content must be in a location that the framework will crawl.
What does an attacker need to exploit this issue?
No authentication or user interaction is required. An attacker only needs to embed a crafted URL in crawled content so that it is exactly 69 characters long and ends in ".onion", while using a non-onion hostname or an IP address earlier in the URL.
What is the practical impact of successful exploitation?
The crafted URL can be accepted and queued as an Onion crawler task despite not identifying a legitimate onion service. This lets an attacker influence crawler target selection and potentially direct the crawler toward unintended network resources.
How can I determine whether the crawler may have been affected?
Review Onion crawler task queues and crawl records for targets whose parsed hostname is an IP address or a non-onion hostname, particularly where the full URL merely ends with ".onion" in its path or other trailing component. Such entries indicate that URL acceptance was based on the length and suffix checks rather than valid onion-hostname parsing.