Escriptorium
Monthly
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.
Missing authorization in eScriptorium through version 26.04.1 allows any authenticated remote user to hijack access rights to another user's private OCR model or revoke any user's model access via direct POST requests. The ownership check is implemented exclusively in get_context_data(), a Django method that executes only during GET-based template rendering, leaving the POST-based create and delete operations for OcrModelRight views entirely unguarded. This is a privilege escalation affecting multi-tenant institutional instances where researchers share the platform; no public exploit has been identified at time of analysis and the CVE is not in CISA KEV.
Server-side request forgery in eScriptorium through 26.04.1 allows remote authenticated users to pivot from the application server into internal networks, including cloud instance metadata services (IMDS), by supplying attacker-controlled URIs to the METS or IIIF import API endpoint. The vulnerability is rooted in the default wildcard value of the IMPORT_ALLOWED_DOMAINS setting combined with a total absence of address filtering, redirect-following caps, or request timeouts - meaning any authenticated user can coerce the server into issuing arbitrary HTTP requests. With CVSS S:C (scope changed) and C:H, the primary risk is exfiltration of cloud credentials via IMDS (e.g., AWS 169.254.169.254), which can escalate a low-privilege application account into full cloud environment compromise. No public exploit or KEV listing identified at time of analysis.
Authorization bypass in eScriptorium through version 26.04.1 enables any authenticated remote user to overwrite other users' document parts by supplying arbitrary part primary keys to misconfigured serializer endpoints. The flaw is a Django REST Framework IDOR (CWE-639): queryset access restrictions were applied to the ManyRelatedField wrapper instead of its child_relation, rendering them completely inoperative. No public exploit code or active exploitation (CISA KEV) has been identified at time of analysis; the integrity impact is high in collaborative archival workflows where document content corruption is irreversible without backup.
Missing authorization in eScriptorium's WebSocket consumer (all versions through 26.04.1) allows any authenticated user to subscribe to arbitrary document event streams without access verification. By supplying a target document's object_cls and object_pk in a join-room WebSocket message, an attacker's connection is added to that document's channel group via group_add with no permission check, exposing real-time segmentation, transcription, import, export, and AI training activity belonging to other users. No public exploit code and no CISA KEV listing have been identified at time of analysis; EPSS data was not provided in the available intelligence.
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.
Missing authorization in eScriptorium through version 26.04.1 allows any authenticated remote user to hijack access rights to another user's private OCR model or revoke any user's model access via direct POST requests. The ownership check is implemented exclusively in get_context_data(), a Django method that executes only during GET-based template rendering, leaving the POST-based create and delete operations for OcrModelRight views entirely unguarded. This is a privilege escalation affecting multi-tenant institutional instances where researchers share the platform; no public exploit has been identified at time of analysis and the CVE is not in CISA KEV.
Server-side request forgery in eScriptorium through 26.04.1 allows remote authenticated users to pivot from the application server into internal networks, including cloud instance metadata services (IMDS), by supplying attacker-controlled URIs to the METS or IIIF import API endpoint. The vulnerability is rooted in the default wildcard value of the IMPORT_ALLOWED_DOMAINS setting combined with a total absence of address filtering, redirect-following caps, or request timeouts - meaning any authenticated user can coerce the server into issuing arbitrary HTTP requests. With CVSS S:C (scope changed) and C:H, the primary risk is exfiltration of cloud credentials via IMDS (e.g., AWS 169.254.169.254), which can escalate a low-privilege application account into full cloud environment compromise. No public exploit or KEV listing identified at time of analysis.
Authorization bypass in eScriptorium through version 26.04.1 enables any authenticated remote user to overwrite other users' document parts by supplying arbitrary part primary keys to misconfigured serializer endpoints. The flaw is a Django REST Framework IDOR (CWE-639): queryset access restrictions were applied to the ManyRelatedField wrapper instead of its child_relation, rendering them completely inoperative. No public exploit code or active exploitation (CISA KEV) has been identified at time of analysis; the integrity impact is high in collaborative archival workflows where document content corruption is irreversible without backup.
Missing authorization in eScriptorium's WebSocket consumer (all versions through 26.04.1) allows any authenticated user to subscribe to arbitrary document event streams without access verification. By supplying a target document's object_cls and object_pk in a join-room WebSocket message, an attacker's connection is added to that document's channel group via group_add with no permission check, exposing real-time segmentation, transcription, import, export, and AI training activity belonging to other users. No public exploit code and no CISA KEV listing have been identified at time of analysis; EPSS data was not provided in the available intelligence.