CVE-2026-14336
Full vulnerability record from the local CVENow database.
Description
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.
View original CVE JSON
{
"id": "CVE-2026-14336",
"sourceIdentifier": "[email protected]",
"published": "2026-07-02T10:16:28.487",
"lastModified": "2026-10-25T21:10:00.770",
"vulnStatus": "Deferred",
"cveTags": [],
"descriptions": [
{
"lang": "en",
"value": "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."
},
{
"lang": "es",
"value": "La lista blanca de emisores OIDC de PIA para tokens de Jenkins utiliza una comprobación de prefijo de cadena simple (issuer.startswith(’ https://ci.eclipse.org ’) en is_issuer_known, pia/models.py:139) en lugar de validar el emisor como una URL correctamente delimitada por el host. Un atacante puede crear un emisor como https://[email protected] (truco de userinfo) o https://ci.eclipse.org.evil.host (truco de sufijo) que satisface la comprobación de prefijo mientras dirige las recuperaciones de descubrimiento OIDC y JWKS a un servidor que el atacante controla. Un llamador no autenticado de POST /v1/upload/sbom puede usar esto para forzar a PIA a realizar solicitudes HTTP(S) salientes a un host arbitrario elegido por el atacante, y a que oidc.verify_token acepte un JWT firmado con la propia clave del atacante."
}
],
"affected": [
{
"source": "[email protected]",
"affectedData": [
{
"vendor": "Eclipse Foundation",
"product": "Eclipse CSI - PIA",
"defaultStatus": "unaffected",
"repo": "https://github.com/eclipse-csi/pia",
"versions": [
{
"version": "0",
"lessThanOrEqual": "0.3.0",
"versionType": "semver",
"status": "affected"
}
]
}
]
}
],
"metrics": {
"cvssMetricV31": [
{
"source": "[email protected]",
"type": "Secondary",
"cvssData": {
"version": "3.1",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:H/A:N",
"baseScore": 8.2,
"baseSeverity": "HIGH",
"attackVector": "NETWORK",
"attackComplexity": "LOW",
"privilegesRequired": "NONE",
"userInteraction": "NONE",
"scope": "UNCHANGED",
"confidentialityImpact": "LOW",
"integrityImpact": "HIGH",
"availabilityImpact": "NONE"
},
"exploitabilityScore": 3.9,
"impactScore": 4.2
}
],
"ssvcV203": [
{
"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"ssvcData": {
"timestamp": "2026-07-02T12:26:02.672416Z",
"id": "CVE-2026-14336",
"options": [
{
"exploitation": "none"
},
{
"automatable": "yes"
},
{
"technicalImpact": "partial"
}
],
"role": "CISA Coordinator",
"version": "2.0.3"
}
}
]
},
"weaknesses": [
{
"source": "[email protected]",
"type": "Secondary",
"description": [
{
"lang": "en",
"value": "CWE-918"
}
]
}
],
"references": [
{
"url": "https://gitlab.eclipse.org/security/cve-assignment/-/work_items/154",
"source": "[email protected]"
}
]
}