CVE-2026-100177: Ail Framework Crawler: Missing Cookiejar Authorization Check Allows Cross-Organization Cookiejar Attachment
The AIL Framework crawler task creation API (apiaddcrawlertask) contained an insufficient authorization check when a user supplied a cookiejar UUID to attach to a one-shot or scheduled crawler task. The original code only verified that the cookiejar existed and, if its access level was 0, compared the cookiejar's owning user ID to the requesting user ID. It did not validate organizational boundaries, did not account for the requesting user's role. When the cookiejar level was not 0, no access check was performed at all. An authenticated user could therefore reference another organization's cookiejar by UUID and have the crawler use that organization's stored cookies (session tokens, authentication credentials) when performing web crawls, effectively leaking or exfiltrating the victim organization's session data.
The vulnerability requires an authenticated user with the ability to create crawler tasks. The attacker must know or guess a valid cookiejar UUID belonging to another organization. The impact is unauthorized access to another organization's stored cookies and session data through the crawler infrastructure.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Compensating control
In api_add_crawler_task, validate any referenced cookiejar UUID through api_check_cookiejar_access_acl() for the 'view' action, enforcing organization, user, and role-based access control; propagate user_role from api_rest.py and crawler_splash.py into the ACL check.
Event History
Frequently Asked Questions
Who can exploit this issue?
An attacker must be authenticated and have permission to create one-shot or scheduled crawler tasks. They must also know or successfully guess the UUID of a cookiejar owned by another organization.
Are cookiejars with nonzero access levels affected?
Yes. The affected logic performed no access check when the referenced cookiejar's access level was not 0, allowing it to be attached to a crawler task regardless of organizational ownership.
What data could be exposed through successful exploitation?
The crawler can use the victim organization's stored cookies, including session tokens and authentication credentials, while performing web crawls. This can provide unauthorized access to session data through the crawler infrastructure.
How can defenders identify potential exploitation?
Review crawler task creation records for cookiejar UUIDs associated with a different organization than the user creating the task. Investigate one-shot and scheduled tasks that reference cross-organization cookiejars, especially those created by users with crawler-task permissions.