Конечная точка `POST /v1/upload/sbom` PIA принимает JWT-носитель и проверяет его **непроверенное** утверждение `iss` по списку разрешений эмитента, используя `urlparse` Python перед выполнением обнаружения OIDC с помощью `запросов`. Поскольку `urlparse` и `requests`/`urllib3` анализируют строку полномочий, содержащую обратную косую черту (например, `https://attacker-host\@ci.eclipse.org/`), на *разные* имена хостов, злоумышленник может создать эмитента, который проходит проверку списка разрешенных, но при этом запускает `requests` — и впоследствии `urllib.request.urlopen` для получения JWKS - для подключения к произвольному Хост, порт и схема, выбранные злоумышленником.
Показать оригинальное описание (EN)
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.
Характеристики атаки
Последствия
Строка CVSS v4.0