CVE-2026-14336: PIA OIDC Issuer Allowlist Bypass via Insufficient URL Validation
PIA contains a flawed validation mechanism for OIDC token issuers that allows an attacker to bypass its allowlist protections. Instead of properly validating that an issuer URL belongs to a trusted host, PIA performs a simple text prefix match. An attacker can craft a malicious issuer URL that passes this check while actually directing token validation and JWKS key fetches to an attacker-controlled server. This allows unauthenticated attackers to inject forged authentication tokens, potentially gaining unauthorized access to PIA's SBOM upload endpoint.
Source data · NVD / CISA · public domain
- CVSS
- 3.1 · 8.2 HIGH · CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:H/A:N
- Weaknesses (CWE)
- CWE-918
- Affected products
- 0 configuration(s)
- Published / Modified
- 2026-07-02 / 2026-07-02
NVD description (verbatim)
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://[email protected] (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.
1 reference(s) · View on NVD →
SEC.co analysis · AI-assisted, reviewed against source
Technical summary
The vulnerability exists in PIA's oidc.is_issuer_known function (pia/models.py:139), which validates OIDC issuer URLs using a string prefix check (issuer.startswith('https://ci.eclipse.org')) rather than parsing and validating the issuer as a properly constrained URL. This permits two attack vectors: (1) userinfo trick—an issuer like 'https://[email protected]' passes the prefix check but directs requests to evil.host, and (2) suffix trick—an issuer like 'https://ci.eclipse.org.evil.host' similarly bypasses validation. An unauthenticated POST request to /v1/upload/sbom can exploit this flaw to force PIA to issue OIDC discovery and JWKS fetch requests to an attacker-controlled host, retrieve a signing key from that host, and validate JWTs signed with that key. The root cause is inadequate URL parsing and host validation; the function conflates URL scheme and hostname prefix with actual host identity.
Business impact
An attacker exploiting this vulnerability can forge valid authentication tokens and interact with PIA's SBOM upload functionality without legitimate credentials. If SBOM uploads are used in supply-chain security workflows, procurement pipelines, or artifact validation, attackers could inject malicious or tampered SBOMs into downstream systems. This undermines the integrity of software component tracking and could facilitate supply-chain attacks. The vulnerability is network-accessible and requires no authentication, making it trivially exploitable by external threat actors.
Affected systems
PIA (all versions containing the vulnerable is_issuer_known function) is affected. No specific version boundaries are provided in the advisory; users should check their PIA deployment version and consult the vendor advisory for affected release ranges and patch availability.
Exploitability
Exploitability is very high. The vulnerability requires no user interaction, no authentication, and no special network position. Any unauthenticated attacker with network access to PIA can craft a malicious OIDC issuer URL and POST a request to /v1/upload/sbom. The attacker only needs to control a domain and host an OIDC discovery endpoint and JWKS endpoint that serve crafted signing keys. No exotic techniques or race conditions are required; the attack is deterministic and reliable.
Remediation
Patch PIA to a version that properly validates OIDC issuer URLs by parsing them as URIs and verifying the host component against an allowlist, rather than using string prefix matching. The fix should extract the hostname from the issuer URL and compare it directly to trusted hosts (e.g., 'ci.eclipse.org'), preventing the userinfo and suffix tricks. Verify the patched version against the vendor advisory before deployment.
Patch guidance
Contact the PIA vendor or monitor their advisory channels for a patched release. When available, prioritize patching this vulnerability immediately given its HIGH severity and unauthenticated attack vector. Apply the patch to all PIA instances, especially those exposed to untrusted networks or integrated with supply-chain tooling. Verify that the patched version includes proper URL parsing and host-based validation of OIDC issuers. Test the patch in a non-production environment to confirm OIDC token validation still functions correctly for legitimate issuers.
Detection guidance
Monitor for POST requests to /v1/upload/sbom endpoints with OIDC issuer URLs that do not match your known trusted issuers, particularly those containing '@' characters (userinfo trick) or domain suffixes that extend known trusted hosts. Log and alert on OIDC discovery requests or JWKS fetch requests to unexpected external hosts. Inspect token signing key sources—if keys are being retrieved from hosts outside your organization, investigate. In a WAF or proxy, consider temporarily restricting POST /v1/upload/sbom access to known-good client IPs or requiring additional authentication until the patch is deployed.
Why prioritize this
This vulnerability merits immediate patching because it combines high impact (token forgery, unauthenticated access), complete lack of authentication or interaction requirements, and a simple attack surface. Any attacker capable of controlling a domain can forge valid tokens. The ability to influence SBOM uploads directly threatens supply-chain integrity. The CVSS 8.2 (HIGH) score reflects the integrity impact and network accessibility.
Risk score, explained
The CVSS 3.1 score of 8.2 (HIGH) is driven by: Network-accessible attack vector (AV:N), low complexity (AC:L), no privilege requirement (PR:N), no user interaction (UI:N), unchanged scope (S:U), low confidentiality impact (C:L), and high integrity impact (I:H). The integrity impact is high because attackers can forge and inject arbitrary tokens into OIDC validation. The low confidentiality impact reflects potential information disclosure through OIDC discovery or error responses, but not direct data exfiltration. Availability is unaffected (A:N).
Frequently asked questions
Can this vulnerability be exploited without network access to PIA?
No. The attacker must have network connectivity to PIA's endpoint (typically /v1/upload/sbom). However, if PIA is Internet-facing, this is trivially available to any external attacker.
What if I am using a different OIDC issuer, not ci.eclipse.org?
The vulnerability lies in the validation mechanism itself (string prefix matching), not in the specific issuer. Any issuer URL validated via the flawed is_issuer_known function is vulnerable. Inspect your PIA configuration to see which issuers are allowlisted and check if they are similarly protected only by prefix matching.
Can I mitigate this without patching PIA?
Partial mitigations include: (1) restricting network access to PIA endpoints via firewall or WAF rules, accepting only trusted client IPs; (2) disabling or gating the /v1/upload/sbom endpoint if not actively used; (3) monitoring outbound HTTPS requests from PIA to detect unexpected OIDC discovery queries. However, these are workarounds, not fixes. Patching is required for a complete remediation.
Will a patched version change how I configure my OIDC issuer?
Unlikely, but verify against the vendor advisory. The fix should be transparent to configuration—you should still specify the issuer URL, but the validation logic will be more rigorous. Test in a staging environment before production deployment.
This analysis is based on the vulnerability description and CVSS vector provided. Specific patch versions, affected version ranges, and detailed remediation steps should be verified against the official vendor advisory. SEC.co does not provide warranty or guarantee regarding this information. Organizations should conduct their own risk assessment and testing before applying patches or making deployment decisions. If exploit code or active attacks are reported, consult threat intelligence and incident response resources. Source: NVD (public-domain), retrieved 2026-08-11. Analysis generated by SEC.co (claude-haiku-4-5).
Weaknesses (CWE)
Related vulnerabilities
- CVE-2025-53828HIGHServer-Side Request Forgery in SharePoint for ownCloud Enables Admin Code Execution
- CVE-2026-10055HIGHEclipse Theia SSRF Vulnerability in /services/request-service
- CVE-2026-10068HIGHSSRF in Shibby Tomato 1.28 miniupnpd (Unmaintained)
- CVE-2026-10107HIGHMoviePilot v2 SSRF in Image Proxy Allows Internal Network Access
- CVE-2026-10129HIGHIBM Langflow OSS SSRF Bypass via Redirect Following – HIGH Risk
- CVE-2026-10280HIGHServer-Side Request Forgery in Horizon921 mcpilot 0.1.0
- CVE-2026-10287HIGHSSRF in SourceCodester SEO Meta Tag Extractor 1.0
- CVE-2026-10546HIGHIBM Langflow OSS SSRF via TOCTOU Race Condition