Skip to main content

Goobi viewer EUVDEUVD-2026-109060

| CVE-2026-46652 CRITICAL
Path Traversal (CWE-22)
2026-10-23 GitHub_M
9.8
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Connect to unauthenticated download WebSocket
  2. Delivery
    Supply attacker-controlled fetch URL
  3. Exploit
    Malicious server returns traversal filename in Content-Disposition
  4. Execution
    Path.resolve() writes file outside target dir
  5. Persist
    Drop webshell into webapp directory
  6. Impact
    Execute 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.

Act Now Prioritize within 24-48h. Why: CRITICAL severity.
Patch available 1.1% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – 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

goobi-viewer-core 24.03, < 26.05

Affected Packages

euvd goobi_viewer_core fix: 26.05

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

Vendor (GitHub_M) PRIMARY 9.8 CRITICAL
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
vuln.today AI 9.8 CRITICAL

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.

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

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

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

Lifecycle Timeline

2
Patch available
Oct 23, 2026 - 15:02 EUVD
CVE Published
Oct 23, 2026 - 14:15 cve.org
CRITICAL 9.8

DescriptionCVE.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.

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

Why It Matters

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.

Business Impact: Severe
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
1.1%
Top 35% exploitable
Prevalence
Low
niche digital-library viewer for archives/museums, no broad enterprise footprint
Social Media
1
Sightings
Data Quality
4 sources
Confidence: Medium

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 CRITICAL
CISA KEV No
Public POC No
EPSS 1.1%
Patch available Yes
Active threat No
Deciding rule
CRITICAL severity
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· derived
Out-of-Cycle
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
Yes
Human Impact
Very High

Priority Score

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

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.

More in Tomcat

View all
CVE-2017-12617 HIGH POC
8.1 Oct 04

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

CVE-2020-1938 CRITICAL POC
9.8 Feb 24

When using the Apache JServ Protocol (AJP), care must be taken when trusting incoming connections to Apache Tomcat. Rate

CVE-2023-47246 CRITICAL POC
9.8 Nov 10

In SysAid On-Premise before 23.3.36, a path traversal vulnerability leads to code execution after an attacker writes a f

CVE-2016-8735 CRITICAL POC
9.8 Apr 06

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

CVE-2017-12615 HIGH POC
8.1 Sep 19

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

CVE-2023-44487 HIGH POC
7.5 Oct 10

Denial of service against HTTP/2 server implementations allows remote unauthenticated attackers to exhaust server resour

CVE-2014-0050 HIGH POC
7.5 Apr 01

MultipartStream.java in Apache Commons FileUpload before 1.3.1, as used in Apache Tomcat, JBoss Web, and other products,

CVE-2020-13935 HIGH POC
7.5 Jul 14

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

CVE-2018-11784 MEDIUM POC
4.3 Oct 04

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

CVE-2022-29885 HIGH POC
7.5 May 12

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

CVE-2017-12616 HIGH
7.5 Sep 19

When using a VirtualDirContext with Apache Tomcat 7.0.0 to 7.0.80 it was possible to bypass security constraints and/or

CVE-2020-9484 HIGH POC
7.0 May 20

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)

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