Skip to main content

surya EUVDEUVD-2026-71136

| CVE-2026-85687 HIGH
External Control of File Name or Path (CWE-73)
2026-09-04 VulnCheck GHSA-756c-28v8-3vfp
8.7
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Identify network-accessible surya screenshot server
  2. Delivery
    Send HTTP request to /info with target file_path
  3. Exploit
    Confirm file existence via oracle response
  4. Execution
    Request /page or /process with sensitive file path
  5. Persist
    Receive base64-encoded file contents
  6. Impact
    Exfiltrate credentials or configuration data

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V5 - File Handling File name/path control
Exploitation Conditions

The surya screenshot server (screenshot_app.py) must be running and reachable by the attacker over the network - this server is an optional component not started during normal library usage, so it must have been deliberately launched. No authentication, special headers, session tokens, or pre-existing access are required on any of the three vulnerable routes. Exploitation is constrained to file types that Pillow's Image.open or pypdfium2.PdfDocument will successfully parse (image formats and PDFs); arbitrary binary or text files outside those formats cannot be directly rendered but the /info oracle can still confirm their existence. The attack does not apply if the screenshot server is not running or is bound exclusively to 127.0.0.1. Files must be readable by the OS user account under which the screenshot server process runs.

Impact

The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N) accurately reflects the mechanics: zero-complexity, zero-authentication network exploitation with full confidentiality impact on the vulnerable system. In absolute terms this is a straightforward high-severity information disclosure. Real-world risk is bounded, however, by the niche deployment footprint of surya and by the fact that the screenshot server is an optional component - it is not started during normal library use and is unlikely to be internet-facing in typical ML research workflows. No CISA KEV listing and no public exploit code are identified; EPSS data was not supplied. The VulnCheck advisory and GitHub issue #518 represent initial researcher disclosure without confirmed active exploitation. Priority should be high for any environment that has deployed the screenshot server in a network-accessible position, but the overall population of such deployments is likely small.

Exploit ScenarioDerived

An attacker scans for or identifies a host with the surya screenshot server listening on a network-accessible port and sends an HTTP request to /info with file_path set to a sensitive target such as /home/user/.ssh/id_rsa or an application secrets file, confirming the file's existence via the oracle response. The attacker then requests /page or /process with the same path, receiving the file's contents rendered and base64-encoded in the HTTP response body, completing exfiltration without any credentials or prior access. No exploit code is required beyond a standard HTTP client.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
No patch listed yet 0.3% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Sep 04, 2026

Unauthenticated arbitrary file read in the surya 0.22.1 screenshot server allows any network-reachable attacker to exfiltrate image and PDF files from the host filesystem by supplying attacker-controlled paths to three unprotected HTTP routes. The /info, /page, and /process endpoints pass raw file_path parameters directly to Pillow's Image.open and pypdfium2.PdfDocument, returning rendered file contents as base64-encoded HTTP responses. The /info route additionally acts as a file-existence oracle, enabling systematic enumeration of host paths before targeted exfiltration; no public exploit has been identified at time of analysis.

RemediationAI

No vendor-released patch version is identified from the available data; the issue is tracked at https://github.com/datalab-to/surya/issues/518 and should be monitored for an upstream fix. As an immediate compensating control, bind the screenshot server exclusively to localhost (127.0.0.1) rather than 0.0.0.0 if local-only access suffices - this eliminates all network exposure at the cost of requiring local port-forwarding for remote use. If the screenshot server is not actively required, disable it entirely by not invoking screenshot_app.py. If network accessibility is necessary, place the server behind an authenticating reverse proxy (e.g., nginx with HTTP Basic Auth or mutual TLS client certificates) to enforce authentication that the server lacks natively; note this adds operational complexity and a dependency on proxy misconfiguration not occurring. Apply OS-level file permission restrictions to limit the service account running surya to only the directories it legitimately requires access to, reducing blast radius. Upgrade to a patched release as soon as one is available.

Affected VersionsENISA

surya 0 ≤0.22.1

Affected Packages

euvd surya no fix

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

surya is a Python document-analysis toolkit (CPE: cpe:2.3:a:datalab-to:surya:*:*:*:*:*:*:*:*) by datalab-to providing OCR, layout detection, and document understanding via ML models. An optional HTTP screenshot server is implemented in surya/scripts/screenshot_app.py and provides three routes: /info, /page, and /process. CWE-73 (External Control of File Name or Path) applies: each route accepts a file_path parameter from the HTTP request and passes it without sanitization or path validation to Pillow's Image.open (for image formats) or pypdfium2.PdfDocument (for PDFs), with rendered output returned as base64 in the response body. Because the server implements no authentication layer whatsoever, any caller can supply arbitrary OS-level paths and obtain the rendered content of any file readable by the server process that Pillow or pypdfium2 can parse.

Know when Surya 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 (VulnCheck) PRIMARY 8.7 HIGH
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N
vuln.today AI 7.5 HIGH

Unauthenticated network route, no complexity or interaction required; confidentiality-only impact with no write or availability consequence.

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

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

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

DescriptionCVE.org

surya 0.22.1 screenshot server contains an unauthenticated arbitrary file read vulnerability in the /info, /page, and /process routes that accept raw file_path parameters. Attackers can read any image or PDF file on the host by supplying arbitrary file paths to Image.open or pypdfium2.PdfDocument, obtaining rendered contents as base64 and using /info as an existence oracle.

Executive ViewAI

Why It Matters

surya screenshot server version 0.22.1 contains an unauthenticated remote file-reading vulnerability that allows attackers to exfiltrate sensitive image and PDF files from affected systems without credentials. Any organization operating this version on network-accessible infrastructure faces immediate data confidentiality risk, with attackers able to systematically enumerate and extract documents. No vendor security patch is currently available, requiring urgent compensating controls or service replacement.

Business Impact: High
Compensating Controls

Implement network firewall rules to restrict access to surya from untrusted sources; enable and centrally monitor HTTP access logs for suspicious file-path requests to /info, /page, and /process endpoints; disable surya 0.22.1 if screenshot functionality is non-critical to business operations; deploy Web Application Firewall (WAF) rules to block file-path traversal patterns; and evaluate replacement tools with established security practices and regular patching cycles.

Threat Intelligence Overview

EPSS Score
0.3%
Top 79% exploitable
Prevalence
Low
Python ML document-analysis library, niche research and development tool
Data Quality
6 sources
Confidence: High

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 HIGH
CISA KEV No
Public POC No
EPSS 0.3%
Patch available No
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.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
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
Yes
Human Impact
High
Technical Impact
Partial

Priority Score

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

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

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