Severity by source
AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:H/A:N
Unauthenticated network endpoint (PR:N/AV:N) exploited via a trivial string trick (AC:L); accepting attacker-signed JWTs breaks authentication (I:H) and SSRF exposes internal responses (C:L), with no availability impact.
Primary rating from Vendor (eclipse).
CVSS VectorVendor: eclipse
Lifecycle Timeline
2DescriptionCVE.org
PIA's OIDC issuer allowlist for Jenkins tokens uses a bare string-prefix check (issuer.startswith(' https://ci.eclipse.org ') in is_issuer_known, pia/models.py:139) instead of validating the issuer as a properly host-bounded URL. An attacker can craft an issuer such as https://ci.eclipse.org@evil.host (userinfo trick) or https://ci.eclipse.org.evil.host (suffix trick) that satisfies the prefix check while pointing the OIDC discovery and JWKS fetches at a server the attacker controls. An unauthenticated caller of POST /v1/upload/sbom can use this to force PIA to make outbound HTTP(S) requests to an arbitrary attacker-chosen host, and to have oidc.verify_token accept a JWT signed with the attacker's own key.
AnalysisAI
Server-side request forgery and OIDC token forgery in Eclipse CSI PIA lets an unauthenticated attacker abuse a flawed Jenkins issuer allowlist (a bare startswith('https://ci.eclipse.org') check in is_issuer_known, pia/models.py:139) to redirect OIDC discovery and JWKS fetches to an attacker-controlled host. By posting a crafted issuer such as https://ci.eclipse.org@evil.host or https://ci.eclipse.org.evil.host to POST /v1/upload/sbom, an attacker forces PIA to make outbound requests to arbitrary hosts and to accept a JWT signed with the attacker's own key, effectively bypassing token verification. No public exploit identified at time of analysis, but the flaw is unauthenticated and network-reachable, and the CVSS 3.1 base score is 8.2.
Technical ContextAI
The vulnerability sits in PIA's OpenID Connect (OIDC) trust logic for Jenkins-issued tokens. OIDC relies on the token issuer (iss claim) to locate the identity provider's discovery document and JWKS (public key set) used to verify a JWT's signature. PIA validates the issuer with a naive string-prefix comparison rather than parsing the value as a URL and enforcing a host-bounded match, which is the classic CWE-918 (Server-Side Request Forgery) root cause: user-controlled input is used to build an outbound request target without proper host validation. URL prefix checks are trivially defeated because https://ci.eclipse.org@evil.host treats ci.eclipse.org as HTTP userinfo (the real host is evil.host), and https://ci.eclipse.org.evil.host is a subdomain of the attacker's domain - both pass a startswith test yet resolve to attacker infrastructure. The affected component is identified in CPE data as cpe:2.3:a:eclipse_foundation:eclipse_csi_-_pia, the Eclipse Foundation's PIA service.
RemediationAI
No vendor-released patch identified at time of analysis; the provided references point only to the Eclipse GitLab CVE-assignment work item (https://gitlab.eclipse.org/security/cve-assignment/-/work_items/154) and do not name a fixed version, so operators should consult the Eclipse Foundation security team for a patched release before deploying. As a code-level fix, replace the bare startswith('https://ci.eclipse.org') prefix check in is_issuer_known (pia/models.py:139) with a parsed-URL comparison that validates the scheme and performs an exact hostname match against an allowlist (e.g. parse the issuer and require parsed.hostname == 'ci.eclipse.org'), which closes both the userinfo (@evil.host) and suffix (.evil.host) bypasses. As compensating controls until a fix is applied: restrict network egress from the PIA service so it can only reach known OIDC endpoints such as ci.eclipse.org (this blocks the SSRF outbound fetches but will break OIDC if the allowlisted egress is incomplete), and place authentication or network access controls in front of the POST /v1/upload/sbom endpoint (this reduces unauthenticated exposure but may interfere with legitimate SBOM upload automation).
More in Eclipse Csi Pia
View allServer-side request forgery in the Eclipse CSI PIA `POST /v1/upload/sbom` endpoint lets remote attackers coerce the serv
Log injection in Eclipse CSI PIA's unauthenticated /v1/upload/sbom endpoint allows a remote attacker to plant forged aut
Same weakness CWE-918 – Server-Side Request Forgery (SSRF)
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-41259