Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessConnect to unauthenticated download WebSocket
-
DeliverySupply attacker-controlled fetch URL
-
ExploitMalicious server returns traversal filename in Content-Disposition
-
ExecutionPath.resolve() writes file outside target dir
-
PersistDrop webshell into webapp directory
-
ImpactExecute code as tomcat user
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V5 - File Handling Path canonicalization, traversal prevention
MITRE ATT&CK
2 techniques across 2 tactics: Discovery, Collection The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | The viewer must be fetching external resources via the DownloadTaskEndpoint download flow - the attacker needs to induce the server to download from an HTTP(S) URL under their control (reachable unauthenticated per GHSA-79jg-3m2m-jgc8). The attacker must operate an HTTP server returning a crafted Content-Disposition header whose filename contains an absolute path or ../ sequences. RCE specifically requires the Tomcat process to have write access to the deployed web-application directory, which the advisory states holds in the standard installation. Limiting factor: the fix adds an externalResource[@enabled] configuration gate (default false), indicating the external-resource download capability must be enabled/used for the fetch-and-write primitive to be reachable; where that feature is not used, the file-write path is not triggered. No per-user authentication or user interaction is required for the download trigger itself. |
| Impact | This is a genuine top-priority vulnerability, not a high-CVSS-but-low-real-risk case. The input CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N, C:H/I:H/A:H = 9.8) describes fully remote, low-complexity exploitation with no privileges and no user interaction, and the GHSA advisory corroborates the unauthenticated nature: the linked GHSA-79jg-3m2m-jgc8 WebSocket endpoint (DownloadTaskEndpoint) lets an unauthenticated user specify the download URL, so the attacker can force the viewer to fetch from a server they control. The technical impact is total (arbitrary file write to any Tomcat-writable path, yielding RCE as the tomcat OS user, plus targeted directory destruction via prepareNewFolder). The vuln.today decision label is act_now, which aligns with the critical CVSS and confirmed unauthenticated RCE mechanism. Signals that are MISSING and should temper over-certainty: no EPSS probability was provided, there is no CISA KEV listing in the input (so no confirmed active exploitation), and no verified working exploit code is referenced - only the vendor advisory and the public patch commit. The practical caveat is configuration: the fix commit adds an isExternalResourceUrlsEnabled() gate defaulting to false, implying the external-resource download feature must be enabled for the viewer to fetch external URLs, which may narrow the exploitable population below what the raw 9.8 suggests. Overall: treat as act_now based on the confirmed unauthenticated-RCE design and vendor advisory, while recognizing exploitation is contingent on the external-resource feature being in use. |
| Exploit ScenarioDerived | An attacker connects to the unauthenticated DownloadTaskEndpoint WebSocket and supplies a download URL pointing at an HTTP server they control. That server returns a Content-Disposition header whose filename contains ../ traversal or an absolute path (e.g. a JSP webshell targeting the deployed webapp directory), which ExternalFilesDownloader.getFilename() passes to Path.resolve() unsanitised, writing attacker content to an arbitrary Tomcat-writable location and achieving remote code execution as the tomcat user. No public, verified exploit code is referenced in the available data, though the vendor advisory and patch commit are public. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 23, 2026
Unauthenticated path traversal in Goobi viewer allows a malicious HTTP server to supply an absolute path or ../ sequences in a Content-Disposition filename, causing the Tomcat process to write attacker-controlled content to any path it can write, including the deployed web application directory, which yields remote code execution as the tomcat OS user. Versions 24.03 through 26.04 are affected and 26.05 contains the fix. No public exploit identified at time of analysis, but the vulnerable download flow is reachable without authentication when the viewer fetches external resources.
RemediationAI
Upgrade to Goobi viewer v26.05, which contains commit 5281245708447ae3419cb42492fbb8af731a2ce5 and the vendor advisory GHSA-r386-2frm-w3v6. If immediate upgrade is not possible, block the unauthenticated download WebSocket endpoint that triggers the fetch: in Apache httpd add a LocationMatch for ^.*tasks/download/monitor\.socket$ with Require all denied, or in Tomcat add a security-constraint with url-pattern /tasks/download/monitor.socket and an empty auth-constraint. These workarounds disable the download monitoring WebSocket and therefore the external download feature it drives. Also ensure the externalResource[@enabled] setting remains false where external resource downloading is not needed, since the fix gates that capability behind this default-off configuration.
Affected VersionsENISA
Affected Packages
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
Goobi viewer is a Java web application deployed on Apache Tomcat. The flaw is a CWE-22 path traversal in ExternalFilesDownloader.getFilename(), which parsed the filename from a server-supplied Content-Disposition response header and passed it directly to Path.resolve() without stripping directory components. Because Path.resolve() honours absolute paths and ../ traversal, a malicious origin server could direct writes outside the intended download directory. The advisory also notes CWE-73 external control of file name or path, and that prepareNewFolder's delete-and-recreate behaviour could be abused for targeted destruction of writable directories. The unauthenticated trigger is described in GHSA-79jg-3m2m-jgc8: the DownloadTaskEndpoint WebSocket at /tasks/download/monitor.socket allows an unauthenticated user to specify an arbitrary download URL, making the viewer fetch from an attacker-controlled server. The patch adds an externalResource[@enabled] configuration gate defaulting to false, restricts download and resource-check schemes to HTTP/HTTPS, adds NetTools.validateOutboundUrl outbound URL validation, and sanitises the Content-Disposition filename with Path.of(...).getFileName().
Know when Tomcat 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
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Unauthenticated WebSocket trigger lets a remote attacker force an outbound fetch (AV:N/PR:N/UI:N), traversal is attacker-controlled and reliable (AC:L), and arbitrary file write yields RCE with full C/I/A impact.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
The Goobi viewer is a web application that allows digitised material to be displayed in a web browser. From version 24.03 to before version 26.05, ExternalFilesDownloader.getFilename() extracts the destination filename from a server-supplied Content-Disposition response header and passes it directly to Path.resolve() without stripping directory components. This allows for a malicious HTTP server that the viewer fetches from to supply an absolute path or ../ traversal sequences as the filename, writing attacker-controlled content to an arbitrary path writable by the Tomcat process. When targeting the deployed web-application directory, this yields remote code execution as the tomcat OS user. This issue has been patched in version 26.05.
Articles & Coverage 1
Technical POC Analysis
Bug class: CWE-22, Improper Limitation of a Pathname to a Restricted Directory.
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
CVE-2026-46652 is a critical vulnerability in Goobi viewer, a digital library platform, that allows unauthenticated attackers to write arbitrary files and achieve remote code execution. Organizations using affected versions must act urgently to prevent potential system compromise and data breaches.
Apply vendor patch.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Path traversal exploits occur when applications use user-controlled input to construct file system paths without proper validation.
Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.
When running Apache Tomcat versions 9.0.0.M1 to 9.0.0, 8.5.0 to 8.5.22, 8.0.0.RC1 to 8.0.46 and 7.0.0 to 7.0.81 with HTT
When using the Apache JServ Protocol (AJP), care must be taken when trusting incoming connections to Apache Tomcat. Rate
In SysAid On-Premise before 23.3.36, a path traversal vulnerability leads to code execution after an attacker writes a f
Remote code execution is possible with Apache Tomcat before 6.0.48, 7.x before 7.0.73, 8.x before 8.0.39, 8.5.x before 8
When running Apache Tomcat 7.0.0 to 7.0.79 on Windows with HTTP PUTs enabled (e.g. Rated high severity (CVSS 8.1), this
Denial of service against HTTP/2 server implementations allows remote unauthenticated attackers to exhaust server resour
MultipartStream.java in Apache Commons FileUpload before 1.3.1, as used in Apache Tomcat, JBoss Web, and other products,
The payload length in a WebSocket frame was not correctly validated in Apache Tomcat 10.0.0-M1 to 10.0.0-M6, 9.0.0.M1 to
When the default servlet in Apache Tomcat versions 9.0.0.M1 to 9.0.11, 8.5.0 to 8.5.33 and 7.0.23 to 7.0.90 returned a r
The documentation of Apache Tomcat 10.1.0-M1 to 10.1.0-M14, 10.0.0-M1 to 10.0.20, 9.0.13 to 9.0.62 and 8.5.38 to 8.5.78
When using a VirtualDirContext with Apache Tomcat 7.0.0 to 7.0.80 it was possible to bypass security constraints and/or
When using Apache Tomcat versions 10.0.0-M1 to 10.0.0-M4, 9.0.0.M1 to 9.0.34, 8.5.0 to 8.5.54 and 7.0.0 to 7.0.103 if a)
EUVD-2026-109060
NVD
CVE.org
EPSS
GitHub
Exploit-DB