Skip to main content

Goobi Viewer Core EUVDEUVD-2026-109067

| CVE-2026-55486 CRITICAL
Cross-site Scripting (XSS) (CWE-79)
2026-10-23 GitHub_M
9.3
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Craft origin param with JS payload
  2. Delivery
    Lure authenticated user to auth/token link
  3. Exploit
    Unescaped value reflected into postMessage body
  4. Execution
    Script executes in viewer origin
  5. Impact
    Hijack session and act as victim

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
MITRE ATT&CK

2 techniques across 2 tactics: Initial Access, Execution

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires an attacker-crafted request to the AuthorizationFlowResource IIIF Auth 2.0 endpoints auth/login or auth/token with a malicious origin query parameter, and a victim who is induced to open it (UI:R). Per the vendor advisory, a DEFAULT install is exploitable via top-level navigation to the vulnerable endpoint because the shipped reverse-proxy configuration sets no script-src Content-Security-Policy; the shipped X-Frame-Options: DENY and frame-ancestors 'self' only block the cross-origin iframe-delivery variant and the CSP-header malformation, not the top-level-navigation path. The stealthier embedded-iframe variant additionally requires an install that has dropped those framing headers. For impact on session data and state-changing requests, the victim must hold an authenticated viewer session. Affected versions: >= 25.08 and < 26.05.

Impact

Multiple signals align toward genuine priority. The CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:N, 9.3) describes a network-reachable, low-complexity, unauthenticated-to-trigger reflected XSS whose only gating factor is victim user interaction and whose scope change plus High confidentiality/integrity reflect script execution in the viewer's authenticated origin. The vuln.today Decision label is act_now, consistent with the vendor's own confirmation that a default install is exploitable via top-level navigation. However, several widely-used signals are ABSENT from the input and should not be fabricated: no EPSS exploitation-probability score is provided, the CVE is not listed as being in CISA KEV in the input, and no proof-of-concept or working-exploit reference is supplied (only the GHSA advisory, the fix commit, and the release tag). There is therefore no evidence of active exploitation or public exploit code - the urgency rests on the act_now decision label, the 9.3 severity, and the vendor-confirmed default-install exploitability, not on observed in-the-wild activity. The main thing that tempers raw severity is the UI:R requirement: exploitation needs a victim to be socially engineered into opening a crafted request, and meaningful impact additionally needs that victim to hold an authenticated viewer session. Net assessment: a real, high-priority patch item for Goobi viewer operators, but its real-world blast radius is bounded by the product's niche deployment footprint and by the social-engineering/session prerequisites rather than being a mass-exploitable internet-wide issue.

Exploit ScenarioDerived

An attacker crafts a link to the viewer's auth/token (or auth/login) endpoint with a malicious origin query parameter containing JavaScript, then lures a user who is logged into the Goobi viewer to open it via a top-level navigation. Because the origin value is reflected unescaped into a single-quoted postMessage argument in the HTML body, the attacker's script executes in the viewer's origin, granting access to the victim's authenticated session and the ability to issue state-changing requests in the victim's name. No public exploit code is referenced in the available data; exploitation is low-complexity (AC:L) and network-delivered but requires the victim's interaction (UI:R).

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

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

Alert me

AnalysisAIv1 – Oct 23, 2026

Reflected cross-site scripting in the IIIF Auth 2.0 endpoints auth/login and auth/token of Goobi Viewer Core (maven io.goobi.viewer:viewer-core) from version 25.08 up to, but not including, 26.05 allows remote unauthenticated attackers to execute JavaScript in a victim's viewer origin, scoring CVSS 9.3 (AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:N). The unvalidated origin query parameter is reflected into the Content-Security-Policy frame-ancestors response header and into an HTML body as a single-quoted JavaScript postMessage argument, and because the attacker controls both the login and token calls that initiate the flow, the payload is reachable without any pre-existing trust relationship. Exploitation requires a victim to be induced to open a crafted request (UI:R); the vendor notes a default install remains exploitable via top-level navigation because the shipped reverse-proxy configuration sets no script-src Content-Security-Policy, while the shipped X-Frame-Options: DENY and frame-ancestors 'self' block only the stealthier cross-origin iframe-delivery variant and the CSP-header malformation. No public exploit code was identified at time of analysis, but the priority decision label is act_now and the vendor has released a patch.

RemediationAI

Upgrade to Goobi Viewer Core 26.05 or later, the release that contains the origin validation and JavaScript escaping added in commit 0e488c6b02a28c1d1a747dfe3958ad2bbcff2d0b; the vendor advisory is at https://github.com/intranda/goobi-viewer-core/security/advisories/GHSA-975w-g9gj-xq48 and the fixed tag at https://github.com/intranda/goobi-viewer-core/releases/tag/v26.05. Until upgrading, note that the recommended reverse-proxy configuration shipping X-Frame-Options: DENY and a frame-ancestors 'self' CSP blocks the cross-origin iframe delivery and neutralises the CSP-header malformation, but per the vendor it does not stop a top-level navigation to the vulnerable endpoint from rendering the response and executing the script, because that configuration sets no script-src Content-Security-Policy; therefore those headers are not a complete mitigation on their own. Compensating options derived from the endpoint behaviour are to block or restrict access to the /auth/login and /auth/token IIIF Auth paths at the reverse proxy (trade-off: IIIF Auth flows, including token acquisition and postMessage delivery, stop working for legitimate clients), and to add a restrictive script-src CSP after testing against the viewer's own inline scripts (trade-off: a misconfigured policy will break viewer functionality). Installs that have removed the shipped framing headers are additionally exposed to the iframe variant and should restore X-Frame-Options: DENY and frame-ancestors 'self' while patching.

Affected VersionsENISA

goobi-viewer-core 25.08, < 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 Core is a Java web application built on JAX-RS; the affected component is AuthorizationFlowResource under io.goobi.viewer.api.rest.v2.auth, which implements the IIIF Auth 2.0 specification's auth/login and auth/token endpoints. IIIF Auth 2.0 uses an origin parameter to tell the client which origin should receive the postMessage token notification and to constrain framing via Content-Security-Policy frame-ancestors. The endpoint accepted that parameter without validation and then used it in two unsafe sinks: a response header token and a JavaScript string literal inside an HTML response body, mapping to CWE-79 (reflected XSS) with a secondary CWE-113 header-injection aspect. The upstream fix commit 0e488c6b02a28c1d1a747dfe3958ad2bbcff2d0b introduces a strict RFC 6454 origin pattern (scheme://host[:port], DNS-label or bracketed IPv6 host, no path, query, fragment, userinfo, whitespace, quotes or other punctuation) and rejects invalid values with HTTP 400, plus a defense-in-depth escapeForJsString helper that escapes backslashes, single and double quotes, angle brackets, slashes, CR/LF and U+2028/U+2029 when composing the token service response body. The trigger for the header-malformation path is direct reflection of the unvalidated value; the XSS path requires the victim's browser to render the endpoint response, either through a top-level navigation or, where framing headers have been dropped, an embedded iframe.

Know when Goobi Viewer Core 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.3 CRITICAL
AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:N
vuln.today AI 9.3 CRITICAL

Network-delivered reflected XSS triggerable without attacker auth (PR:N) but needing victim click (UI:R); script runs in a different context (S:C) yielding session compromise, so C:H/I:H, A:N.

3.1 AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:N
4.0 AV:N/AC:L/AT:N/PR:N/UI:A/VC:H/VI:H/VA:N/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
Required
Scope
Changed
Confidentiality
High
Integrity
High
Availability
None

Lifecycle Timeline

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

DescriptionCVE.org

The Goobi viewer is a web application that allows digitised material to be displayed in a web browser. From version 25.08 to before version 26.05, the IIIF Auth 2.0 endpoints auth/login and auth/token in AuthorizationFlowResource accept an origin query parameter without validation and then (1) embed it into the Content-Security-Policy: frame-ancestors response header and (2) embed it into an HTML response body as a JavaScript single-quoted postMessage argument. Because the attacker controls both the login and token calls that initiate the flow, the unescaped value yields reflected XSS. This issue has been patched in version 26.05.

Technical POC Analysis

Primary bug class: CWE-79, Improper Neutralization of Input During Web Page Generation.

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-55486 is a critical reflected cross-site scripting vulnerability in Goobi Viewer Core versions 25.08 through 26.04, enabling unauthenticated attackers to inject and execute malicious JavaScript within a victim's viewer session. This can lead to theft of session tokens, exposure of sensitive data, and compromise of user accounts. Leadership should prioritize immediate remediation because the flaw affects a public-facing digital library platform and could undermine user trust and data integrity.

Business Impact: High
Compensating Controls

Apply vendor patch. If patching is delayed, add a script-src Content-Security-Policy header to block inline script execution and validate or block the origin query parameter at the reverse proxy; additionally, conduct user awareness training on phishing risks.

Threat Intelligence Overview

EPSS Score
0.5%
Top 61% exploitable
Prevalence
Low
niche cultural-heritage/library digitisation viewer, not 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 0.5%
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
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact
High

Priority Score

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

Attack Technique

Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.

CVE-2026-46652 CRITICAL
9.8 Oct 23

Unauthenticated path traversal in Goobi viewer allows a malicious HTTP server to supply an absolute path or ../ sequence

CVE-2026-46651 CRITICAL
9.8 Oct 23

Goobi viewer 24.03 through 26.04 exposes the DownloadTaskEndpoint WebSocket at /tasks/download/monitor.socket to unauthe

CVE-2026-55459 HIGH
7.4 Oct 23

OpenID Connect login in Goobi viewer 25.01 through 26.04 validates the JWT audience outside the cryptographic verifier,

CVE-2026-55457 HIGH
7.4 Oct 23

Goobi Viewer deployments that leave webapi.authorization.token unset accept an empty ?token= value on every @Authorizati

CVE-2026-46347 MEDIUM
6.8 Oct 23

Predictable replacement-password generation in Goobi Viewer Core (Maven io.goobi.viewer:viewer-core) before 26.05 lets a

CVE-2026-55463 MEDIUM
6.5 Oct 23

Missing server-side authentication on four Jakarta WebSocket endpoints in goobi-viewer-core (DownloadTaskEndpoint, Campa

CVE-2026-46346 MEDIUM
6.5 Oct 23

Unauthenticated remote attackers can force a password reset on any Goobi Viewer Core account prior to 26.05 because the

CVE-2020-15124 MEDIUM
6.5 Jul 22

In Goobi Viewer Core before version 4.8.3, a path traversal vulnerability allows for remote attackers to access files on

CVE-2023-29016 MEDIUM
6.1 Apr 06

The Goobi viewer is a web application that allows digitised material to be displayed in a web browser. Rated medium seve

CVE-2023-29015 MEDIUM
6.1 Apr 06

The Goobi viewer is a web application that allows digitised material to be displayed in a web browser. Rated medium seve

CVE-2023-29014 MEDIUM
6.1 Apr 06

The Goobi viewer is a web application that allows digitised material to be displayed in a web browser. Rated medium seve

CVE-2026-55465 MEDIUM
5.3 Oct 23

Unauthenticated Solr query injection in the Goobi viewer spatial search endpoint (GET /api/v1/index/{solrField}/spatial/

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