CVE-2026-85687
nicheUnauthenticated Arbitrary File Read in Datalab Surya Screenshot Server
Surya 0.22.1, an open-source OCR/document-processing toolkit, ships a screenshot server whose /info, /page, and /process routes accept raw file_path parameters without validation (CWE-73). A remote, unauthenticated attacker can supply an arbitrary filesystem path, which the server opens with PIL's Image.open or pypdfium2's PdfDocument; the /page and /process routes return the rendered file contents base64-encoded, while /info leaks whether a given path exists, serving as an existence oracle. This lets an attacker read any image or PDF file on the host (confidentiality impact rated high in the 8.7 CVSS 4.0 score, with no integrity or availability impact). Anyone running the surya screenshot server at version 0.22.1 is affected, with the greatest risk where the server is reachable by untrusted clients rather than bound only to localhost. No public proof-of-concept is known, the issue is not in CISA KEV, and EPSS puts 30-day exploitation probability at just 0.3%, so no exploitation is currently known.
What to do: Upgrade surya to a patched release as published by the project (no fixed version is specified in the advisory); until then, restrict the screenshot server to trusted networks or localhost, firewall it from unauthenticated access, and validate or constrain file_path inputs. Check server logs for requests to /info, /page, or /process carrying absolute or unusual file paths, which would indicate probing for arbitrary file reads.
| Datalab surya (screenshot server) | 0.22.1 |
Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.
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.
- Weakness
- CWE-73
- Vector
- 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/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
In the news0 stories
No ingested article mentions this CVE yet.