Skip to main content

eScriptorium CVE-2026-18258

| EUVDEUVD-2026-54093 HIGH
Authorization Bypass Through User-Controlled Key (CWE-639)
2026-08-06 GitLab GHSA-xg85-j7xm-gqc8
8.8
CVSS 3.1 · Vendor: GitLab
Share

Severity by source

Vendor (GitLab) PRIMARY
8.8 HIGH
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
vuln.today AI
8.8 HIGH

Network-accessible API; PR:L because a valid account is required; all three impact dimensions High as arbitrary cross-user read, write, and delete is achievable; no scope change as impact stays within the application boundary.

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

Primary rating from Vendor (GitLab).

CVSS VectorVendor: GitLab

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

2
Analysis Generated
Aug 06, 2026 - 16:12 vuln.today
CVE Published
Aug 06, 2026 - 15:11 cve.org
HIGH 8.8

DescriptionCVE.org

Authorization bypass in the Line, LineTranscription, VirtualCollection, tag and process API endpoints in Scripta/eScriptorium through 26.04.1 allows a remote authenticated user to read, modify and delete other users' transcription content via primary keys supplied in the request body, which are queried against the global model manager instead of the request-scoped queryset

AnalysisAI

Authorization bypass across multiple API endpoints in eScriptorium through version 26.04.1 allows any authenticated user to read, modify, and delete transcription content belonging to other users. The root cause is a CWE-639 Insecure Direct Object Reference: primary keys supplied by the client in request bodies are resolved against the global Django model manager rather than a queryset scoped to the requesting user's own objects, eliminating all per-user data isolation on the Line, LineTranscription, VirtualCollection, tag, and process endpoints. No public exploit or active exploitation has been confirmed at time of analysis, but the low attack complexity makes this straightforward to exploit with a standard user account.

Technical ContextAI

eScriptorium (CPE: cpe:2.3:a:scripta:escriptorium:*:*:*:*:*:*:*:*) is an open-source Django-based web platform for handwritten text recognition and collaborative transcription, developed under the Scripta project. The vulnerability is a textbook CWE-639 (Authorization Bypass Through User-Controlled Key), also known as an Insecure Direct Object Reference (IDOR). In a correctly implemented access-controlled API, object lookups must be filtered through a user-scoped queryset - e.g., request.user.lines.get(pk=pk) - so that a user can only retrieve objects they own or are permitted to access. Instead, the affected endpoints use the global model manager - e.g., Line.objects.get(pk=pk) - meaning any caller-supplied integer PK resolves to any object in the database regardless of ownership. This pattern affects at least five distinct endpoint families (Line, LineTranscription, VirtualCollection, tag, process), suggesting a systemic architectural pattern rather than an isolated oversight.

RemediationAI

No confirmed patched release version is available in the provided intelligence data - the upstream tracking item at https://gitlab.com/scripta/escriptorium/-/work_items/1226 should be monitored for a fix release. Once a patched version is published, upgrade from any release at or below 26.04.1 as the primary remediation. As a compensating control while awaiting a patch, instance administrators should restrict account registration to trusted users only (disabling open self-registration if enabled), since the vulnerability is exclusively exploitable by authenticated accounts - reducing the pool of potential attackers to already-vetted individuals. Additionally, administrators can audit API access logs for unexpected cross-user PK references on the Line, LineTranscription, VirtualCollection, tag, and process endpoints as a detection measure. Network-layer restrictions (e.g., VPN-only access) further limit exposure by reducing who can reach the API at all, with the trade-off of reduced accessibility for legitimate remote collaborators.

Share

CVE-2026-18258 vulnerability details – vuln.today

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