Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as low-privileged AIL user
-
DeliveryObtain/guess victim org's cookiejar UUID
-
ExploitSubmit crawler task referencing that UUID
-
ExecutionCrawler crawls using victim's stored cookies
-
ImpactVictim org session tokens exfiltrated
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Object-level authorization, IDOR prevention
|
| Exploitation Conditions | Requires an authenticated AIL Framework user who holds the ability to create crawler tasks (one-shot or scheduled) via the api_add_crawler_task API. The attacker must additionally know or obtain a valid cookiejar UUID belonging to another organization, since cookiejar UUIDs are random and not enumerable - this is the primary practical limiter beyond authentication. No user interaction from a victim is needed. Exploitation is possible against default configurations of affected AIL Framework versions (before the fix in commit 3773ca36) specifically in multi-organization/multi-tenant deployments where more than one organization stores cookiejars; single-org installations have no cross-tenant boundary to violate. |
| Impact | This is a genuine but moderate cross-tenant authorization flaw (CWE-639 IDOR), not a critical drive-by. The provided CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N, VC:N/VI:N/VA:N, SC:H) scores 6.3 and correctly captures the essence: no impact to the AIL system itself, but a HIGH confidentiality impact to a subsequent system - the victim organization's web sessions, since the leaked cookiejar contains their session tokens/auth credentials. Authentication is confirmed required (PR:L) - an attacker must already be a valid AIL user with crawler-task-creation rights. The description's own limiting factor undercuts the AC:L rating: the attacker 'must know or guess a valid cookiejar UUID belonging to another organization.' Cookiejar UUIDs are effectively unguessable random identifiers, so successful exploitation realistically depends on the attacker already knowing or otherwise obtaining a target UUID - a meaningful barrier that argues for AC:H rather than AC:L. No EPSS score, no CISA KEV listing, and no public exploit code were provided, so there is no public exploit identified at time of analysis and no evidence of active exploitation. Net: a real multi-tenant isolation bug worth patching in shared AIL deployments, but the authenticated precondition plus the UUID-knowledge requirement keep real-world risk in the medium band rather than urgent. |
| Exploit ScenarioDerived | An authenticated AIL user belonging to organization A creates a one-shot or scheduled crawler task and supplies a cookiejar UUID that actually belongs to organization B. Because the API only checked existence (and, for level-0 jars, owner match, with no check at all for non-zero levels), the crawler performs the web crawl using organization B's stored cookies, sending B's session tokens and credentials to the crawled target and exposing them to the attacker. No public exploit code was provided, so this is a manual, insider-style abuse requiring knowledge of a victim cookiejar UUID. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 25, 2026
Cross-tenant authorization bypass in the AIL Framework crawler task API (api_add_crawler_task) lets an authenticated user who can create one-shot or scheduled crawler tasks attach another organization's cookiejar by UUID and have the crawler reuse that organization's stored cookies and session tokens during web crawls, leaking the victim tenant's session data. Cookiejar UUIDs are random and not enumerable, so the attacker must already know or obtain a valid victim UUID, and the flaw only has security consequence in multi-organization (multi-tenant) deployments - single-organization installs have no tenant boundary to cross. Rated CVSS 6.3 by the vendor (4.0 vector with PR:L and SC:H) and assessed here as CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:N/A:N - a genuine but moderate CWE-639 IDOR rather than a critical drive-by; no public exploit code was identified at time of analysis.
RemediationAI
Apply the upstream fix for this issue - GitHub commit 3773ca36658c57ce592aebe74e27c855eb64f58a (https://github.com/ail-project/ail-framework/commit/3773ca36658c57ce592aebe74e27c855eb64f58a), which replaces the flawed inline check with api_check_cookiejar_access_acl(cookiejar_uuid, user_org, user_id, user_role, action='view') and passes the caller's role from the REST and crawler_splash blueprints; note this is an upstream fix available as a commit, and a tagged release containing it was not independently confirmed, so verify your deployment includes it rather than assuming a version bump. Because exploitation hinges on knowing a valid victim cookiejar UUID and on being able to create crawler tasks at all, meaningful compensating controls are: restrict the crawler-task-creation permission to a minimal set of trusted users/roles (this directly removes the attack prerequisite but reduces who can launch legitimate crawls), and rotate or purge existing cookiejars so previously harvested UUIDs and their stored session tokens lose value (side effect: legitimate automated crawls must re-authenticate and re-populate cookies). For stronger isolation, run each tenant/organization in a separate AIL instance or database rather than sharing one, since the vulnerable design assumes a shared cookiejar store; this is operationally heavier but eliminates the cross-tenant boundary entirely. Finally, audit crawler task creation logs and cookiejar access for UUIDs referenced by users outside the owning organization, as a detective control for any exploitation that occurred before the fix was applied.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
AIL (Analysis Information Leak) Framework is CIRCL's open-source platform for collecting and analyzing potential information leaks, and its crawler subsystem performs web captures driven by per-organization cookiejars that hold cookies and authentication material for authenticated crawling. The vulnerable handler api_add_crawler_task(data, user_org, user_id=None) accepted a caller-supplied cookiejar_uuid and performed only two weak checks: it verified that the cookiejar existed (returning 404 'unknown cookiejar uuid' otherwise) and, only when the cookiejar's level was 0, compared cookiejar.get_user() to the requesting user_id. When the cookiejar's level was anything other than 0, no authorization check ran at all, and in no case was the requesting user's organization (user_org) or role consulted - the classic CWE-639 pattern of an authorization decision keyed on an attacker-controllable identifier (the UUID) rather than on ownership or tenancy. Because the crawler then executes with the referenced cookiejar's stored credentials, a cross-organization UUID reference converts a task-creation call into exfiltration of the victim tenant's session tokens. The upstream fix in commit 3773ca36658c57ce592aebe74e27c855eb64f58a replaces the ad-hoc logic with api_check_cookiejar_access_acl(cookiejar_uuid, user_org, user_id, user_role, action='view') and threads the caller's role through the REST blueprint var/www/blueprints/api_rest.py (get_basic_user_meta now returns user_role) and the crawler_splash blueprints; the same commit also hardens related URL handling by rejecting schemes other than HTTP/HTTPS and normalizing scheme-less URLs in the crawler creation path.
Know when Ail Framework gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:N/VA:N/SC:H/SI:N/SA:N
Authenticated user (PR:L); AC:H because the attacker must know an unguessable random cookiejar UUID; scope change (S:C) and C:H as another org's session tokens/credentials are disclosed; no integrity or availability impact.
Primary rating from Vendor (CIRCL).
CVSS VectorVendor: CIRCL
DescriptionCVE.org
The AIL Framework crawler task creation API (api_add_crawler_task) 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.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
More in Ail Framework
View allStored cross-site scripting in AIL Framework <6.8 allows authenticated high-privilege attackers to inject malicious Java
Stored cross-site scripting in the AIL Framework's username timeline lets a remote, unauthenticated attacker execute arb
Stored cross-site scripting in AIL Framework allows an authenticated attacker who can influence matched, tracked, or tag
Authenticated path traversal in AIL Framework (CIRCL's Analysis Information Leak threat-intel platform) lets a low-privi
Global.py in AIL framework 2.8 allows path traversal. Rated high severity (CVSS 7.5), this vulnerability is remotely exp
Path traversal in AIL Framework's PDF object handling lets an authenticated user read files outside the intended PDF sto
Non-blind SSRF in AIL Framework's crawler submission interface allows low-privileged authenticated users to pivot throug
Crafted URL injection in the Onion module of the AIL Framework lets unauthenticated content publishers push arbitrary no
Stored cross-site scripting (XSS) in the AIL Framework crawler splash domain page allows an authenticated user-role API
Path traversal in AIL Framework's `/objects/item/diff` endpoint exposes gzip-compressed server-side files to authenticat
Stored cross-site scripting (XSS) in the AIL Framework tag selector (var/www/static/js/tags.js) allows an authenticated
Unlimited OTP brute-force against AIL Framework's two-factor authentication endpoint allows an attacker who already poss
EUVD-2026-87091
GHSA-7p6q-w6xc-4m6h
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB