CVE-2026-75554
NiskieCVSS 2.3Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 16 - wyżej niż 16% wszystkich znanych CVE
Streszczenie
W hexpm (hex.pm) występuje podatność polegająca na niewystarczającym wygaśnięciu sesji w mechanizmie odświeżania tokenów OAuth. Użytkownik usunięty z organizacji może nadal czytać prywatne pakiety, ponieważ zakresy uprawnień nie są poprawnie aktualizowane. Problem dotyczy wersji hex.pm od 2025-10-10 do przed 2026-08-24.
Ocena ryzyka
Byli członkowie organizacji mogą zachować dostęp do prywatnych pakietów, co prowadzi do naruszenia poufności danych i kontroli dostępu.
Rekomendacja
Zaleca się aktualizację hex.pm do wersji z poprawką (2026-08-24 lub nowsza) oraz przegląd mechanizmów odświeżania tokenów.
Inne podatności w hexpm
Zobacz wszystkie- CVE-2026-75542Wysokie
Podatność nieprawidłowej autoryzacji w punkcie końcowym tokenu OAuth w hexpm pozwala kluczowi API z uprawnieniem repositories na odczyt prywatnych pakietów innej organizacji. Podczas wymiany klucza na token, walidacja zakresów nie sprawdza nazwy organizacji względem podmiotu, a zakres repository:<nazwa> jest przepuszczany bez zmian. Token daje dostęp do odczytu prywatnych pakietów organizacji aż do wygaśnięcia.
- CVE-2026-23940Średnie
W hexpm/hexpm przed commit 495f01607d3eae4aed7ad09b2f54f31ec7a7df01 oraz hex.pm przed 2026-03-10 stwierdzono podatność na niekontrolowane zużycie zasobów. Opublikowanie zbyt dużego pakietu może spowodować wyczerpanie pamięci podczas ekstrakcji archiwum, prowadząc do odmowy usługi.
- CVE-2026-21618Średnie
W hexpm (hex.pm) występuje podatność na Cross-Site Scripting (XSS) w module Elixir.HexpmWeb.SharedAuthorizationView. Funkcja render_grouped_scopes/3 nie neutralizuje danych wejściowych, co pozwala na wstrzyknięcie skryptów.
Oryginalny opis (angielski, źródło NVD)
Insufficient Session Expiration vulnerability in the OAuth token refresh grant in hexpm hexpm allows a user removed from an organization to keep reading its private packages. expand_repositories_scope/3 in lib/hexpm/permissions.ex only rewrites the literal repositories scope, so an explicitly granted repository:<org> or docs:<org> scope passes through it untouched. The refresh grant re-derives a new token from the stored granted_scopes, which holds that expanded form, so every refresh reproduces the organization scope without revisiting membership. Because both CDN edges authorize repository access from the token claim without querying the database, an account removed from an organization retains read access for as long as it keeps refreshing, bounded by the 30 day refresh token lifetime rather than the 30 minute access token lifetime. This issue affects hex.pm: from 2025-10-10 before 2026-08-24.

