CVE-2026-14336
WysokieCVSS 8.2Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 24 - wyżej niż 24% wszystkich znanych CVE
Streszczenie
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.
Ocena ryzyka
Ryzyko obejmuje możliwość przeprowadzenia ataków typu SSRF (Server-Side Request Forgery) oraz fałszowania tokenów JWT, co może prowadzić do nieautoryzowanego dostępu do systemów i danych organizacji.
Rekomendacja
Należy natychmiast zaktualizować PIA do wersji, w której walidacja wystawcy OIDC jest przeprowadzana z użyciem pełnej, host-bounded weryfikacji URL-a. Do czasu aktualizacji zaleca się ograniczenie dostępu do endpointu /v1/upload/sbom oraz monitorowanie wychodzących żądań HTTP(S).
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-18353Wysokie
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.
Oryginalny opis (angielski, źródło NVD)
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.

