Skip to main content

Goobi viewer EUVDEUVD-2026-109063

| CVE-2026-55459 HIGH
Improper Authentication (CWE-287)
2026-10-23 GitHub_M
7.4
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Obtain IdP-signed JWT issued for a different RP
  2. Delivery
    Match in-flight viewer nonce/state
  3. Exploit
    Replay token to viewer OpenID endpoint
  4. Execution
    Pass manual single-string aud check
  5. Impact
    Authenticate as token's subject

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V6 - Authentication Authentication mechanism validation
MITRE ATT&CK

2 techniques across 2 tactics: Defense Evasion, Initial Access

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

Exploitation Conditions

Requires a deployment that has (1) opted into OpenID authentication with at least one configured provider, and (2) shares that IdP/issuer with one or more OTHER relying parties (a multi-RP setup). The attacker must possess a JWT that is signed by the configured IdP, carries the matching iss, and has a SINGLE-STRING aud claim equal to the viewer's client ID but was issued for a different RP. Exploitation is additionally limited by the viewer's per-login nonce and state binding - the replayed token must satisfy the in-flight session nonce - which the vendor states makes the attack narrow in practice. Limiting/fail-safe factors: array-valued aud claims fail closed (not exploitable), and single-RP deployments are described by the vendor as not practically exploitable.

Impact

This is a medium-to-high severity authentication bypass (CVSS 7.4) rather than a mass-exploitation emergency. The CVSS vector (AV:N/AC:H/PR:N/UI:N/C:H/I:H/A:N) captures the key tension: it is network-reachable and requires no prior authentication to the viewer (PR:N), but AC:H reflects substantial preconditions. The vendor advisory is explicit that exploitation is narrow - it applies only to opt-in deployments that have configured at least one OpenID provider AND share that IdP/issuer with one or more other relying parties, and the replayed token must additionally satisfy the viewer's in-flight per-login nonce and state binding. No EPSS score, KEV listing, or SSVC automatable/technical-impact breakdown was supplied, so those signals cannot be weighed; the only priority signal provided is the vuln.today 'this_week' decision label, which is consistent with a real but non-emergency, deployment-dependent flaw. Exploitation status: no public exploit identified at time of analysis (the three references are the GHSA advisory, the fix commit, and the v26.05 release - none is a PoC). Authentication requirement per CVSS PR:N is 'unauthenticated' against the viewer, but note the attacker must already possess a valid IdP-signed JWT issued for a different relying party, which is a meaningful real-world constraint not visible in the raw PR:N metric. Net: a genuine account-takeover bug worth patching promptly in multi-RP OpenID deployments, but not a drop-everything issue - single-RP deployments are described by the vendor as not practically exploitable and array-valued aud claims fail closed.

Exploit ScenarioDerived

In a deployment where the Goobi viewer shares an OpenID IdP/issuer with other relying parties, an attacker who holds a JWT legitimately issued for a different RP - but whose single-string aud happens to equal the viewer's client ID - replays that token to the viewer's OpenID login flow. Because the verifier does not pin the audience and the manual aud check only compares a single string, the token passes and the attacker is authenticated as the token's sub. No public exploit code exists, and the attack is further constrained by having to satisfy the viewer's in-flight session nonce.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.2% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Oct 23, 2026

OpenID Connect login in Goobi viewer 25.01 through 26.04 validates the JWT audience outside the cryptographic verifier, so an ID token minted for a different relying party on the same identity provider can be replayed to the viewer's authentication endpoint and log the attacker in as that token's subject. Only deployments that have opted into OpenID authentication and share an IdP/issuer with at least one other relying party are exposed; array-valued aud claims fail closed and single-RP setups are described by the vendor as not practically exploitable, and the viewer's per-login nonce/state binding narrows the window further. There is no KEV entry and no public exploit identified at time of analysis, but a fixed release (26.05) and the upstream commit are both public. EPSS was not supplied in the input.

RemediationAI

Upgrade Goobi viewer core to version 26.05, the release that contains commit 73e2ccb63c36392d46f8d21644592efd6cf87933 and moves the audience check into the JWT verifier via withAudience(clientId) while also adding exp/iat presence requirements, 60 seconds of clock leeway and a null-safe nonce comparison; see the advisory at https://github.com/intranda/goobi-viewer-core/security/advisories/GHSA-7vrv-qh6g-gfx7 and the release tag at https://github.com/intranda/goobi-viewer-core/releases/tag/v26.05. Until the upgrade can be applied, the exposure can be removed by ensuring the viewer is the only relying party using the configured IdP/issuer (the vendor states single-RP deployments are not practically exploitable), or by temporarily disabling OpenID authentication for that provider - both options remove the multi-RP token-replay path at the cost of losing or limiting federated login; the existing per-login nonce and state binding remains a partial, not complete, barrier.

Affected VersionsENISA

goobi-viewer-core 25.01, < 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

The flaw sits in AuthenticationEndpoint.verifyOpenIdToken in the viewer-core REST v1 authentication layer (Java, java-jwt style JWT.require(...) API). The verifier was constructed as JWT.require(algorithm).withIssuer(issuer).build(), pinning only the signature algorithm and the iss claim; the audience was instead compared afterwards with a single string-equality call against jwt.getClaim("aud").asString(), a check that only works for a scalar aud and is not part of the cryptographic validation path. The correct behaviour per RFC 7519 §4.1.3 is to pin the expected audience inside the verifier so that multi-valued aud claims are evaluated properly and a token addressed to another relying party is rejected regardless of how the claim is typed. Root cause class is CWE-287 (improper authentication), with the GHSA additionally classifying it as CWE-345 (insufficient verification of data authenticity). The upstream fix at commit 73e2ccb63c36392d46f8d21644592efd6cf87933 passes provider.getClientId() into verifyOpenIdToken, adds .withAudience(clientId), .withClaimPresence("exp"), .withClaimPresence("iat") and .acceptLeeway(60) to the verifier, deletes the manual aud comparison, and makes the nonce comparison null-safe so a missing session or token nonce no longer throws or short-circuits the check. Note that the advisory's own reachability analysis depends on the IdP configuration: the trigger requires an attacker-held token that is validly signed by the configured issuer and carries a single-string aud equal to the viewer's client ID; an array-valued aud is not exploitable, and the in-flight session nonce/state must also match.

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 7.4 HIGH
AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N
vuln.today AI 7.4 HIGH

AV:N remote token replay and PR:N (no prior viewer auth), but AC:H because it needs a multi-RP IdP, a cross-RP single-string-aud token, and matching the in-flight nonce; account takeover gives C:H/I:H, no availability impact.

3.1 AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N
4.0 AV:N/AC:H/AT:P/PR:N/UI:N/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
High
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
None

Lifecycle Timeline

2
Patch available
Oct 23, 2026 - 15:02 EUVD
CVE Published
Oct 23, 2026 - 14:16 cve.org
HIGH 7.4

DescriptionCVE.org

The Goobi viewer is a web application that allows digitised material to be displayed in a web browser. From version 25.01 to before version 26.05, AuthenticationEndpoint.verifyOpenIdToken builds its verifier as JWT.require(algorithm).withIssuer(issuer).build() and does not enforce the aud claim during cryptographic validation. The aud check is performed manually afterwards via a single string-equality call, which only handles single-string aud values. In a multi-RP IdP setup, a token whose single-string aud matches the viewer's client ID but was issued for a different relying party passes the check and authenticates the attacker as the token's sub. This issue has been patched in version 26.05.

Technical POC Analysis

CWE-287 (Improper Authentication), with CWE-345 as the secondary classification in the advisory.

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-55459 is a high-severity authentication bypass in Goobi viewer that allows an attacker to impersonate a legitimate user by replaying a valid ID token from a different application on the same identity provider. Only organizations running Goobi viewer versions 25.01 through 26.04 with OpenID Connect enabled and sharing an IdP with other relying parties are affected, leaving their digital collections and user accounts at risk of unauthorized access. Leadership should prioritize patching the affected viewer instances to prevent potential data exposure and reputational damage.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.2%
Top 86% exploitable
Prevalence
Low
niche library/archive digitisation software, limited enterprise footprint
Social Media
1
Sightings
Data Quality
5 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 HIGH
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
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
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

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

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

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-55486 CRITICAL
9.3 Oct 23

Reflected cross-site scripting in the IIIF Auth 2.0 endpoints auth/login and auth/token of Goobi Viewer Core (maven io.g

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