CVE-2026-18353
WysokieCVSS 8.8Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 15 - wyżej niż 15% wszystkich znanych CVE
Streszczenie
Endpoint PIA `POST /v1/upload/sbom` akceptuje JWT i sprawdza niesprawdzony claim `iss` z listą dozwolonych wystawców, używając `urlparse` w Pythonie, a następnie wykonuje OIDC discovery z `requests`. Z powodu różnic w parsowaniu przez `urlparse` i `requests`/`urllib3`, atakujący może ominąć listę dozwolonych i przekierować żądania do dowolnego hosta.
Ocena ryzyka
Atakujący może przejąć proces uwierzytelniania OIDC, co może prowadzić do nieautoryzowanego dostępu do systemu.
Rekomendacja
Zaktualizuj PIA do wersji, która zawiera poprawkę dla tej podatności.
Inne podatności w PIA
Zobacz wszystkie- CVE-2026-12616Średnie
Podatność w punkcie końcowym /v1/upload/sbom pozwala nieuwierzytelnionemu atakującemu na wstrzyknięcie fałszywych wpisów do logów poprzez manipulację polem iss w tokenie JWT. Ze względu na wyłączoną weryfikację podpisu JWT oraz dosłowne renderowanie znaków nowej linii w formacie logów, atakujący może wygenerować wpisy identyczne z autentycznymi komunikatami o pomyślnym uwierzytelnieniu.
- CVE-2026-14336Wysokie
Podatność w PIA polega na użyciu prostego sprawdzenia prefiksu ciągu znaków dla listy dozwolonych wystawców OIDC, zamiast walidacji jako w pełni kwalifikowanego URL-a z ograniczeniem do hosta. Atakujący może skonstruować złośliwego wystawcę, który spełnia warunek prefiksu, ale wskazuje na kontrolowany przez niego serwer. Umożliwia to nieuwierzytelnionemu wywołaniu endpointu POST /v1/upload/sbom wymuszenie wychodzących żądań HTTP(S) do dowolnego hosta oraz akceptację tokena JWT podpisanego kluczem atakującego.
Oryginalny opis (angielski, źródło NVD)
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.

