Przejęcie konta Axios w npm: RAT przez phantom-zależność i wyciek kodu Claude Code
31 marca 2026 roku przestępcy przejęli konto npm maintainera Axios (jasonsaayman), publikując złośliwe wersje 1.14.1 (latest) i 0.30.4 (legacy). Pakiety dystrybuowały trojana RAT przez trzy godziny — od 00:21 do 03:15 UTC. Przy 100 milionach pobrań tygodniowo szkody mogły być masowe.
Kod Axiosa pozostał nienaruszony. Przestępcy dodali do package.json zależność [email protected] — pakiet utworzony na dzień przed atakiem. Ta zależność nie jest importowana w kodzie, działając jako phantom dependency.
Mechanizm ataku
Instalacja przebiega według schematu:
npm installpobiera wszystkie zależności zpackage.json.plain-crypto-jsuruchamia skryptpostinstall.- Skrypt pobiera payload z serwera C2.
- Rozwijany jest krosplatformowy RAT dla macOS, Windows, Linux.
- Skrypt przywraca czysty
package.json, maskując ślady.
Standardowy code review nie wykryje problemu: pliki JS są czyste, podejrzana zależność widoczna tylko w manifeście. Skannery powinny sprawdzać skrypty postinstall pakietów transytywnych.
Natychmiastowe działania
| Gałąź | Wersja złośliwa | Wersja bezpieczna |
|-------|-----------------|-------------------|
| latest | 1.14.1 | 1.14.0 |
| legacy | 0.30.4 | 0.30.3 |
Sprawdź:
package-lock.json/yarn.lockpod kątem złośliwych wersji.- Obecność
plain-crypto-jsw zależnościach.
Jeśli znaleziono — system jest zainfekowany. Zrotuj klucze, tokeny, sekrety. IOC opublikowane przez StepSecurity, Socket i innych.
Atrybucja wskazuje na UNC1069/Lazarus — typowy atak łańcucha dostaw poprzez przejęcie konta bez kompromitacji rejestru npm.
Wyciek źródeł Claude Code przez sourcemap
Tego samego dnia Anthropic opublikowała @anthropic-ai/[email protected] z plikiem cli.js.map o rozmiarze 59,8 MB. Sourcemap ujawnił ~512 000 linii TypeScript, 1900 plików, systemowe prompty, logikę pamięci, planowania i nieogłoszone funkcje.
Przyczyna i konsekwencje
Błąd w .npmignore: source maps nie zostały wykluczone z pakietu. Sourcemap odnosił się do publicznego bucketu R2 Anthropic. Kod szybko skopiowano na GitHub po raporcie Chaofan Shou.
Anthropic usunęła wersję, wydała łatkę, ale mirror się rozprzestrzeniły. To nie włamanie, a błąd build.
Implementacja clean-room: od wycieku do otwartego projektu
Sigrid Jean (instructkr) przepisał architekturę Claude Code w Pythonie bez kopiowania źródeł, unikając DMCA. Wykorzystał oh-my-codex do przyspieszenia.
Zaimplementował:
- Agent-harness.
- Narzędzia.
- Pamięć i planowanie.
- Swarms-podagenci.
Repozytorium claw-code zdobyło 50 000 gwiazdek w 2 godziny, 100 000+ w ciągu doby — rekord GitHub. Port na Rust również popularny. Projekt pozycjonowany jako ulepszone harness tools.
Co jest ważne
- Phantom dependency w Axios: RAT maskuje się jako biblioteka krypto, aktywowany przez postinstall, krosplatformowy.
- Wyciek Claude Code: 512k linii przez sourcemap z powodu braku .npmignore.
- Podejście clean-room: Przepisanie architektury na Python/Rust omija DMCA, tworzy otwarty odpowiednik.
- Sprawdzanie lock-plików: Obowiązkowe dla wykrycia 1.14.1/0.30.4 i plain-crypto-js.
- Audyt kont npm: Przejęcie maintainerów — wektor ataków łańcucha dostaw.
— Editorial Team
Brak komentarzy.