Funkcja Trusted Publishing w npm, mająca zastąpić długoterminowe tokeny, zawierała krytyczny błąd logiczny. Mechanizm opierał się na nazwach repozytoriów GitHub (tzw. slugach), zamiast na ich unikalnych, niezmiennych identyfikatorach numerycznych. Pozwalało to atakującemu na przejęcie kontroli nad pakietem poprzez zarejestrowanie repozytorium o nazwie, która została zwolniona po zmianie lub usunięciu oryginalnego projektu.
Problem dotyczył ponad 1500 pakietów, które łącznie generowały miliony pobrań. Atakujący mógł wypuścić złośliwą wersję oprogramowania z automatycznym skryptem postinstall, co stanowi poważne zagrożenie dla łańcucha dostaw. Co istotne, takie wydania posiadały poprawną atestację pochodzenia (provenance attestation), co mogło zmylić użytkowników.
GitHub potwierdził błąd i wprowadził poprawki. Obecnie niezweryfikowane konfiguracje Trusted Publishing wygasają po 48 godzinach, co ogranicza ryzyko związane ze zmianą właściciela projektu. Podobna podatność została zidentyfikowana również w integracji npm z GitLabem.
Użytkownicy i opiekunowie pakietów powinni zweryfikować swoje powiązania z repozytoriami. Zaleca się sprawdzenie, czy wszystkie powiązane projekty nadal należą do autora, oraz usunięcie starych powiązań przed zmianą nazwy lub przeniesieniem repozytorium.



