Skip to main content

AIL Framework CVE-2026-100177

| EUVDEUVD-2026-87091 MEDIUM
Authorization Bypass Through User-Controlled Key (CWE-639)
2026-09-25 CIRCL GHSA-7p6q-w6xc-4m6h
6.3
CVSS 4.0 · Vendor: CIRCL
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate as low-privileged AIL user
  2. Delivery
    Obtain/guess victim org's cookiejar UUID
  3. Exploit
    Submit crawler task referencing that UUID
  4. Execution
    Crawler crawls using victim's stored cookies
  5. Impact
    Victim 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.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

ail framework unspecified <7.1

Affected Packages

euvd ail_framework_unspecified fix: 7.1

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

Vendor (CIRCL) PRIMARY 6.3 MEDIUM
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
vuln.today AI 6.3 MEDIUM

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.

3.1 AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:N/A:N
4.0 AV:N/AC:H/AT:N/PR:L/UI:N/VC:N/VI:N/VA:N/SC:H/SI:N/SA:N

Primary rating from Vendor (CIRCL).

CVSS VectorVendor: CIRCL

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
Low
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
None
Subsequent system: Confidentiality
High
Subsequent system: Integrity
None
Subsequent system: Availability
None

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

EPSS Score
0.3%
Top 75% exploitable
Prevalence
Low
niche open-source CIRCL threat-intel leak-analysis framework, CERT/SOC use only
Data Quality
4 sources
Confidence: Medium

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.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

32
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +32
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

CVE-2026-39416 HIGH
8.5 Apr 08

Stored cross-site scripting in AIL Framework <6.8 allows authenticated high-privilege attackers to inject malicious Java

CVE-2026-100176 HIGH
8.5 Sep 25

Stored cross-site scripting in the AIL Framework's username timeline lets a remote, unauthenticated attacker execute arb

CVE-2026-100172 HIGH
8.5 Sep 25

Stored cross-site scripting in AIL Framework allows an authenticated attacker who can influence matched, tracked, or tag

CVE-2026-56448 HIGH
8.3 Jun 22

Authenticated path traversal in AIL Framework (CIRCL's Analysis Information Leak threat-intel platform) lets a low-privi

CVE-2020-8545 HIGH
7.5 Feb 03

Global.py in AIL framework 2.8 allows path traversal. Rated high severity (CVSS 7.5), this vulnerability is remotely exp

CVE-2026-59510 HIGH
7.1 Jul 05

Path traversal in AIL Framework's PDF object handling lets an authenticated user read files outside the intended PDF sto

CVE-2026-76164 HIGH
7.1 Aug 19

Non-blind SSRF in AIL Framework's crawler submission interface allows low-privileged authenticated users to pivot throug

CVE-2026-100187 MEDIUM
6.9 Sep 25

Crafted URL injection in the Onion module of the AIL Framework lets unauthenticated content publishers push arbitrary no

CVE-2026-100190 MEDIUM
6.3 Sep 25

Stored cross-site scripting (XSS) in the AIL Framework crawler splash domain page allows an authenticated user-role API

CVE-2026-56138 MEDIUM
5.3 Jun 19

Path traversal in AIL Framework's `/objects/item/diff` endpoint exposes gzip-compressed server-side files to authenticat

CVE-2026-100174 MEDIUM
5.1 Sep 25

Stored cross-site scripting (XSS) in the AIL Framework tag selector (var/www/static/js/tags.js) allows an authenticated

CVE-2026-56450 MEDIUM
5.1 Jun 22

Unlimited OTP brute-force against AIL Framework's two-factor authentication endpoint allows an attacker who already poss

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy