Cztery kanały, zero przeglądów

sie 7, 2026 | Cyberflux

Opisywaliśmy wczoraj, że w Paperclipie plik opisujący agenta nie jest konfiguracją, tylko programem: może wskazać wbudowany adapter procesu i podać dowolną komendę wraz z argumentami. Import konfiguracji jest w tym systemie wykonaniem kodu, tyle że nikt tego tak nie nazwał.

Zostało pytanie, którego wtedy nie zadaliśmy: skąd ludzie biorą te konfiguracje.

Odpowiedź jest taka, że w ciągu pięciu miesięcy od premiery wokół platformy wyrosły cztery niezależne kanały dystrybucji gotowych, importowalnych pakietów. Dwa prowadzi sam projekt. Dwa są poza jego kontrolą. Żaden nie ma warstwy weryfikacji, a jeden opisuje ten brak we własnej dokumentacji jako zaletę.

Cztery warstwy, w pięć miesięcy

Katalog firm. W wydaniu z 17 marca projekt wprowadził standard Agent Companies i narzędzie companies.sh. Komenda npx companies.sh add paperclipai/companies/gstack importuje kompletną organizację: schemat organizacyjny, role, zależności, umiejętności, reguły nadzoru. Standard jawnie rozszerza skills.sh, definiuje organizacje przenośne — do zaimportowania i wyeksportowania — a katalog przyjmuje zgłoszenia społeczności; istnieje nawet dedykowana umiejętność ułatwiająca przygotowanie własnej firmy do publikacji. Jedna z opublikowanych konfiguracji zawiera 167 agentów.

Wtyczki oficjalne. Publikowane przez projekt, z tygodniowymi pobraniami z npm: Plugin SDK 51 tysięcy, adapter bramki OpenClaw 34 tysiące, serwer MCP 18 tysięcy, piaskownica E2B 17 tysięcy.

Rejestr społecznościowy. Uruchomiony w maju pod adresem cliphub.fyi przez pojedynczego autora. Według danych samego rejestru: 21 wtyczek, 16 wydawców, 182 tysiące pobrań npm tygodniowo. Najczęściej instalowana wtyczka to zewnętrzny adapter modeli, 60 tysięcy pobrań tygodniowo.

Sklep komercyjny. Największy oferuje 248 produktów: 163 umiejętności agentów, 40 szablonów firm, 16 konfiguracji CLAUDE.md, 15 pakietów serwerów MCP, 14 przepisów workflow. Sam deklaruje brak powiązania z projektem. W jego frazach kluczowych siedzi nazwa zapowiadanego oficjalnego marketplace'u.

Zdanie, na którym stoi cała sprawa

Rejestr społecznościowy opisuje swoją politykę wprost i bez ogródek:

Hub jest w pełni otwarty. Każda paczka npm wystawiająca manifest Paperclipa jest indeksowana nocą — bez kolejki przeglądu, bez listy oczekujących. Opublikuj na npm, otaguj paperclip-plugin, resztę zrobimy my.

To nie jest przeoczenie ani niedopatrzenie. To jest zadeklarowana zasada działania, opisana jako cecha produktu — i z perspektywy budowania ekosystemu jest to zasada zrozumiała. Rejestr z kolejką przeglądu rośnie wolniej.

Problem polega na tym, że artefakt dystrybuowany tą drogą jest kodem wykonywanym z uprawnieniami agenta, w systemie, w którym już wykazano, że import jest wykonaniem. Automatyczne indeksowanie po tagu to mechanizm zaufania oparty wyłącznie na tym, że ktoś poprawnie wypełnił pole w manifeście.

W jednej liście rejestru stoją obok siebie paczki oficjalne projektu i paczki społecznościowe. Rozróżnia je nazwa wydawcy i nic poza tym.

Powierzchnia, którą warto sprawdzić przed innymi

Oficjalne wtyczki projektu są publikowane jako paczki npm w przestrzeni nazw @paperclipai. Adres w rejestrze społecznościowym tę przestrzeń spłaszcza: ukośnik znika, a scope zamienia się w przedrostek oddzielony myślnikiem.

To znaczy, że dla każdej oficjalnej paczki istnieje bliźniacza nazwa bez przestrzeni nazw — w adresie i na liście rejestru wyglądająca niemal identycznie, a będąca zupełnie innym pakietem, który może opublikować ktokolwiek. Sprawdziliśmy status tych nazw w rejestrze npm. Wyniku nie podajemy tutaj i przekazaliśmy go administratorom.

Reguła dla czytelnika jest natomiast ogólna i warta zastosowania daleko poza Paperclipem: wszędzie tam, gdzie interfejs spłaszcza przestrzeń nazw do etykiety, powstaje klasa nazw wyglądających na oficjalne. Sprawdzaj pełną nazwę pakietu w pliku blokad, nie etykietę w katalogu.

Wzorzec jest znany. Opisywaliśmy go, gdy atakujący rejestrował nazwę, którą model regularnie zmyślał, zanim zrobił to agent. Różnica polega na tym, że tam podpowiadał model, a tu podpowiada interfejs rejestru — i robi to konsekwentnie, dla każdej paczki na liście.

Ten sam kształt, po raz kolejny

Każdy element tej układanki opisywaliśmy już osobno, przy innych narzędziach.

Konfiguracja jako warstwa wykonywalna — przy TrustFall, gdzie konfiguracja repozytorium okazała się kodem. Poprawny składniowo YAML kryjący drogę do poświadczeń — przy Cordyceps, luce istniejącej wyłącznie w kompozycji. Wstrzyknięcie instrukcji do pliku CLAUDE.md — przy TrapDoorze, a sklep komercyjny sprzedaje dziś szesnaście takich plików jako produkt. Umiejętność, która przeszła skanery i trafiła do dwudziestu sześciu tysięcy agentów, zanim badacze podmienili stronę, na którą wskazywała. Robak npm rejestrujący podstawiony serwer MCP w konfiguracjach asystentów kodujących. Mechanizm certyfikacji, który poświadczył złośliwy pakiet.

Nowość nie polega więc na wektorze. Polega na tym, że tym razem wektor dostał sklep, katalog i rejestr, zanim ktokolwiek zbudował do niego kontrolę.

I na tym, do kogo ten sklep celuje. Wśród szablonów sprzedawanych komercyjnie są pakiety dla ochrony zdrowia z obsługą rozliczeń i zgodności, back office fintechowy z płatnościami i kontrolami oraz biuro reagowania na incydenty bezpieczeństwa. To są branże, w których import niesprawdzonej konfiguracji nie jest kwestią higieny, tylko obowiązku regulacyjnego.

Uczciwie: co to jest, a czego nie

To nie jest raport z incydentu. Nie znaleźliśmy żadnego złośliwego pakietu, nie mamy zgłoszenia od żadnego użytkownika, żadne autorytatywne źródło nie raportuje nadużycia którejkolwiek z tych warstw.

To nie jest też zarzut wobec kogokolwiek. Rejestr społecznościowy prowadzi pojedynczy programista i wygląda na projekt budowany w dobrej wierze, a otwartość zadeklarował jawnie, zamiast ją ukrywać. Sklep komercyjny uczciwie oznacza brak afiliacji w FAQ i w stopce. Sam projekt dostarcza zresztą oficjalną wtyczkę do uruchamiania kodu agenta w izolowanych piaskownicach z limitami zasobów, więc nie można powiedzieć, że kwestia izolacji jest mu obojętna.

To jest obserwacja o kształcie, nie o intencji: warstwa dystrybucji artefaktów wykonywalnych powstała szybciej niż jakakolwiek warstwa ich weryfikacji, a fakt, że dziś nikt tego nie nadużył, nie jest kontrolą bezpieczeństwa. Jest stanem, który trwa do pierwszego, kto spróbuje.

Warto też zachować proporcję w drugą stronę: wolumeny są dziś niewielkie. Dwadzieścia jeden wtyczek to nie jest npm. Sto osiemdziesiąt dwa tysiące pobrań tygodniowo to jednak nie jest zero.

Co z tego wynika dla obrońcy

Traktuj konfiguracje agentów jak artefakt wdrożeniowy, nie jak ustawienia. To powtórzenie z wczoraj i pozostaje najważniejszym punktem. Przegląd przed importem, ograniczony krąg osób mogących zatwierdzić, świadomość, że opis agenta zwykle zawiera wskazanie, co ten agent może uruchomić.

Rozróżniaj scope. Przy paczkach npm sprawdzaj pełną nazwę pakietu, nie wyświetlaną etykietę w rejestrze. Spłaszczony scope w adresie nie jest tożsamością.

Zinwentaryzuj, skąd pochodzi to, co już masz. Jeśli ktoś w organizacji zaimportował gotową firmę albo wtyczkę, powinno to być zapisane: źródło, wersja, data, osoba zatwierdzająca. W czterech równoległych kanałach dystrybucji bez takiej ewidencji nie odpowiesz na pytanie „co u nas działa i skąd to jest".

Pilnuj wersji. Poprawki bezpieczeństwa dla opisanego wczoraj łańcucha są dostępne od wydania 2026.416.0. Instancja starsza jest podatna niezależnie od tego, skąd bierzesz konfiguracje.

Izoluj wykonanie. Oficjalna piaskownica z limitami zasobów istnieje i jest dokładnie tym narzędziem, dla którego ten scenariusz został wymyślony.

Jedna myśl na koniec

Historia menedżerów pakietów przebiega zawsze tak samo. Najpierw powstaje mechanizm dystrybucji, bo bez niego ekosystem nie rośnie. Potem rośnie ekosystem. Potem pojawia się pierwszy złośliwy pakiet. Dopiero wtedy powstaje warstwa weryfikacji — sygnatury, poświadczenia pochodzenia, skanery, kwarantanna, przeglądy.

Ta kolejność nie wynika z niedbalstwa. Wynika z tego, że kontrola kosztuje, a jej wartość widać dopiero po incydencie.

Nowe jest natomiast tempo i stawka. Menedżer pakietów dla bibliotek dystrybuował kod, który uruchamiał się przy budowaniu projektu. Rejestr dla agentów dystrybuuje kod, który uruchamia się cyklicznie, sam, z dostępem do przestrzeni roboczych, sekretów i uprawnień nadanych agentowi — i robi to w systemie, w którym już wykazano, że sam import wystarczy.

Pięć miesięcy na zbudowanie czterech kanałów dystrybucji. Zero miesięcy na zbudowanie choćby jednego przeglądu.

Źródła

Repozytoria projektu paperclipai/companies i paperclipai/companies-tool — opis standardu Agent Companies, składnia komendy importu, wymagana wersja orkiestratora oraz zawartość katalogu firm: https://github.com/paperclipai/companies

Ogłoszenie standardu Agent Companies i companies.sh w wydaniu v2026.325.0, wraz z zaproszeniem do zgłaszania własnych firm do katalogu: https://www.answeroverflow.com/m/1483581379739389952

cliphub.fyi — deklarowana polityka indeksacji bez kolejki przeglądu, liczba wtyczek, wydawców i tygodniowych pobrań, lista wtyczek oficjalnych i społecznościowych: https://cliphub.fyi

clipmarts.com — struktura oferty komercyjnej, liczba produktów w podziale na kategorie, deklaracja braku afiliacji oraz szablony kierowane do sektorów regulowanych: https://www.clipmarts.com

Wcześniejsza analiza łańcucha CVE-2026-41679 i mechanizmu, w którym import konfiguracji jest wykonaniem kodu: https://cyberflux.pl/to-nie-byl-plik-konfiguracyjny/