Описание
PIA's POST /v1/upload/sbom endpoint accepts a Bearer JWT and checks its unverified iss claim against an issuer allowlist using Python's urlparse before performing OIDC discovery with requests. Because urlparse and requests/urllib3 parse an authority string containing a backslash (e.g. https://attacker-host\@ci.eclipse.org/) into different hostnames, an attacker can craft an issuer that passes the allowlist check yet drives requests — and subsequently urllib.request.urlopen for JWKS retrieval — to connect to an arbitrary attacker-chosen host, port, and scheme.
A flaw was found in PIA. An unauthenticated attacker can exploit a Server-Side Request Forgery (SSRF) vulnerability by crafting a malicious OpenID Connect (OIDC) issuer URL. This bypasses an internal allowlist due to inconsistent URL parsing between Python's urlparse and the requests/urllib3 libraries. Successful exploitation allows the attacker to force the application to connect to arbitrary external hosts, potentially leading to information disclosure or further attacks.
Затронутые пакеты
| Платформа | Пакет | Состояние | Рекомендация | Релиз |
|---|---|---|---|---|
| Red Hat Hardened Images | cosign | Not affected | ||
| Red Hat Hardened Images | grafana12.4 | Not affected | ||
| Red Hat Hardened Images | grafana13.1 | Not affected | ||
| Red Hat Hardened Images | jaeger | Not affected | ||
| Red Hat Hardened Images | llvm | Not affected | ||
| Red Hat Hardened Images | llvm21 | Not affected | ||
| Red Hat Hardened Images | mariadb11.8 | Not affected | ||
| Red Hat Hardened Images | python3.10 | Not affected | ||
| Red Hat Hardened Images | python3.11 | Not affected | ||
| Red Hat Hardened Images | python3.12 | Not affected |
Показывать по
Дополнительная информация
Статус:
EPSS
8.2 High
CVSS3
Связанные уязвимости
PIA's `POST /v1/upload/sbom` endpoint accepts a Bearer JWT and checks its **unverified** `iss` claim against an issuer allowlist using Python's `urlparse` before performing OIDC discovery with `requests`. Because `urlparse` and `requests`/`urllib3` parse an authority string containing a backslash (e.g. `https://attacker-host\@ci.eclipse.org/`) into *different* hostnames, an attacker can craft an issuer that passes the allowlist check yet drives `requests` — and subsequently `urllib.request.urlopen` for JWKS retrieval — to connect to an arbitrary attacker-chosen host, port, and scheme.
EPSS
8.2 High
CVSS3