Tag: npm

  • Wyciek Kodu Źródłowego Claude Code przez Błąd w Pakiecie npm

    Wyciek Kodu Źródłowego Claude Code przez Błąd w Pakiecie npm

    Anthropic, twórca zaawansowanego asystenta AI Claude, zmierzył się z poważnym incydentem bezpieczeństwa. Kod źródłowy ich narzędzia programistycznego, Claude Code, wyciekł do domeny publicznej przez źle skonfigurowany plik w pakiecie npm. Wyciek obejmuje setki tysięcy linii kodu i odsłania wewnętrzne mechanizmy działania narzędzia, choć – na szczęście – nie zawiera danych klientów ani poufnych kluczy.

    Incydent został odkryty 31 marca 2026 roku przez badacza bezpieczeństwa Chaofana Shou. W wersji 2.1.88 pakietu @anthropic-ai/claude-code, opublikowanej dzień wcześniej, znalazł się ogromny, ważący 60 MB plik source map (cli.js.map). Plik ten zawierał bezpośrednie odwołania do niezabezpieczonego archiwum TypeScript przechowywanego na serwerze Cloudflare R2 należącym do Anthropic. Pozwoliło to na pobranie i odtworzenie prawie 2000 własnościowych plików, co w sumie dało około 512 000 linii kodu.

    Co właściwie wyciekło?

    Odsłonięty kod to w zasadzie kompletny backend aplikacji CLI Claude Code. To nie są pojedyncze fragmenty, ale pełne moduły napisane w TypeScript, ujawniające architekturę i wewnętrzne procesy. Kluczowe komponenty to między innymi:

    • QueryEngine.ts (46 tys. linii): serce systemu – silnik komunikujący się z API modelu LLM, obsługujący strumieniowanie i pętle narzędzi.
    • Tool.ts (29 tys. linii): repozytorium zawierające od 40 do 60 różnych narzędzi agentowych, takich jak BashTool do wykonywania komend shell, FileEditTool do edycji plików czy WebFetchTool do pobierania treści z sieci.
    • commands.ts (25 tys. linii): implementacja około 85 poleceń typu slash dostępnych w interfejsie.
    • Niewydane funkcje: W kodzie znaleziono również odniesienia do niedokończonych lub nierozpowszechnionych systemów, jak np. BUDDY – cyfrowy „pupil” towarzyszący programiście.

    Wyciek ujawnił też wewnętrzne benchmarki wydajności, feature flagi, systemy planowania i code review oraz zaawansowane mechanizmy zarządzania sesją i pamięcią. To bezcenna wiedza dla konkurencji, ale też unikalne źródło nauki dla społeczności open source, pragnącej zrozumieć, jak buduje się zaawansowane agenty AI.

    Szybkie rozprzestrzenienie i reakcja firmy

    Kod rozprzestrzenił się błyskawicznie. W krótkim czasie powstało ponad 40 tysięcy forków i publicznych mirrorów na GitHubie, co praktycznie uniemożliwiło usunięcie informacji z sieci. Społeczność programistów zaczęła analizować architekturę, wzorce projektowe i stos technologiczny (Bun, React, Ink), co wywołało szerokie dyskusje.

    Anthropic szybko zareagował oficjalnym komunikatem, potwierdzając, że doszło do „błędu ludzkiego w procesie budowania wydania, a nie do naruszenia bezpieczeństwa”. Firma podkreśliła, że w wyciekłych materiałach nie było żadnych danych klientów, haseł czy kluczy API. To już drugi taki incydent w tej firmie – podobny wyciek przez source mapy miał miejsce w lutym 2025 roku i został naprawiony przez usunięcie problematycznej wersji pakietu z npm.

    Niestety, wyciek stworzył też wtórne zagrożenia. W repozytoriach ze skopiowanym kodem zaczęły pojawiać się złośliwe pakiety npm (np. color-diff-napi, modifiers-napi), które mogły infekować komputery programistów próbujących skompilować ten kod.

    Wnioski dla deweloperów i DevOps

    Ta sytuacja to surowa lekcja dla każdego, kto publikuje pakiety w publicznych rejestrach. Kluczowe wnioski:

    • Zawsze weryfikuj pliki .map: Przed publikacją sprawdzaj, czy pliki source map nie zawierają bezpośrednich adresów URL do niezabezpieczonych lokalizacji z kodem źródłowym.
    • Dokładnie konfiguruj package.json i .npmignore: Pojedynczy błąd w polu files w package.json lub niedoprecyzowany wzorzec w .npmignore może ujawnić całą zawartość projektu.
    • Separacja procesów deploymentu: Proces publikacji pakietu na npm powinien być odizolowany i dokładnie audytowany, inaczej niż lokalne środowiska deweloperskie.

    Badacze bezpieczeństwa sugerują stosowanie prostych skryptów do szybkiej weryfikacji pakietów przed wydaniem, które skanują zawartość pliku .tgz pod kątem niebezpiecznych odwołań w dyrektywach sourceMappingURL.

    • Podsumowując, wyciek kodu Claude Code to przede wszystkim case study dotyczące higieny publikacji oprogramowania. Pokazuje, jak kruchy może być proces release'u i jak jedna ludzka pomyłka w pipeline może udostępnić światu całą własność intelektualną firmy. Dla Anthropic to kosztowna lekcja wizerunkowa, ale dla społeczności technologicznej – bezprecedensowy wgląd w strukturę jednego z najnowocześniejszych asystentów programistycznych na rynku.