Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessCraft origin param with JS payload
-
DeliveryLure authenticated user to auth/token link
-
ExploitUnescaped value reflected into postMessage body
-
ExecutionScript executes in viewer origin
-
ImpactHijack 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). |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – 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
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 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
AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:N
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.
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 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
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.
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
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
Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.
More in Goobi Viewer Core
View allUnauthenticated path traversal in Goobi viewer allows a malicious HTTP server to supply an absolute path or ../ sequence
Goobi viewer 24.03 through 26.04 exposes the DownloadTaskEndpoint WebSocket at /tasks/download/monitor.socket to unauthe
OpenID Connect login in Goobi viewer 25.01 through 26.04 validates the JWT audience outside the cryptographic verifier,
Goobi Viewer deployments that leave webapi.authorization.token unset accept an empty ?token= value on every @Authorizati
Predictable replacement-password generation in Goobi Viewer Core (Maven io.goobi.viewer:viewer-core) before 26.05 lets a
Missing server-side authentication on four Jakarta WebSocket endpoints in goobi-viewer-core (DownloadTaskEndpoint, Campa
Unauthenticated remote attackers can force a password reset on any Goobi Viewer Core account prior to 26.05 because the
In Goobi Viewer Core before version 4.8.3, a path traversal vulnerability allows for remote attackers to access files on
The Goobi viewer is a web application that allows digitised material to be displayed in a web browser. Rated medium seve
The Goobi viewer is a web application that allows digitised material to be displayed in a web browser. Rated medium seve
The Goobi viewer is a web application that allows digitised material to be displayed in a web browser. Rated medium seve
Unauthenticated Solr query injection in the Goobi viewer spatial search endpoint (GET /api/v1/index/{solrField}/spatial/
EUVD-2026-109067
NVD
CVE.org
EPSS
GitHub
Exploit-DB