Attacken började med att angriparna komprometterade Packagist-kontot för den legitima PHP- och DevOps-utvecklaren dinushchathurya, någon gång mellan 12 och 13 juli 2026 . Packagist är utformat för att automatiskt synkronisera paketversioner från deras källkodsrepositoryn. Denna funktion användes som vapen: angriparna tryckte ut skadliga "dev-main"-utvecklingsversioner av alla tio paket som var kopplade till utvecklarens konto, vilket Packagist sedan tog in och gjorde tillgängliga . De tio paketen var legitima PHP-bibliotek, men attacken riktade sig inte mot deras användare via PHP-kod.
Kärnan i attacken fanns inte i själva PHP-koden; PHP-biblioteken förblev ofarliga utan installationshookar eller skadlig nätverksaktivitet . Istället injicerade angriparna 583 skadliga GitHub Actions-arbetsflödesfiler (.github/workflows/*.yml) i utvecklarens källkodsrepositoryn. Varje påverkat paketversion innehöll mellan 55 och 62 av dessa arbetsflödesfiler . GitHub Actions-arbetsflöden är YAML-filer som definierar automatiserade uppgifter, som att köra tester eller distribuera kod. Angriparna omprogrammerade denna legitima automationsinfrastruktur.
När en fork eller kopia av det komprometterade repositoryt utlöste ett arbetsflöde (t.ex. vid en push-händelse), instruerade den skadliga .yml-filen den GitHub-värdbaserade Ubuntu-löparen att :
43[.]228[.]157[.]68.Detta omvandlade varje utlöst arbetsflöde till en skannings- och exploateringsnod, och använde Googles kostnadsfria infrastruktur som en distribuerad plattform för attacken .
Målet för kampanjen var CVE-2026-41940, en kritisk sårbarhet i cPanel och WebHost Manager (WHM) .
cpsrvd grundläggande autentiseringshanterare . En oautentiserad angripare kunde skicka en manipulerad Authorization-rubrik som innehöll råa newline-tecken. Detta gjorde det möjligt för dem att injicera godtyckliga egenskaper i en sessionsfil, såsom user=root och hasroot=1, vilket i praktiken gav dem root-nivå administrativ åtkomst till WHM-gränssnittet utan ett giltigt lösenord .När exploateringen lyckades på en komprometterad cPanel/WHM-server var den efterföljande nyttolasten utformad för att skörda ett brett spektrum av autentiseringsuppgifter och hemligheter. De primära målen inkluderade :
Stölden av ett så brett spektrum av autentiseringsuppgifter indikerar en dataagnostisk, opportunistisk åtkomst av alla värdefulla åtkomsttokens som finns på den komprometterade servern .
De 583 arbetsflödesfilerna i de 10 Packagist-paketen var bara den första upptäckten. Genom att korsreferera angivarindikatorer som en delad DNSHook- callback-domän och kodåteranvändningsmönster, avslöjade forskare en mycket större operation :
Denna enorma skillnad tyder starkt på att angriparna komprometterade många fler utvecklarkonton och repositoryn utöver det enda kontot dinushchathurya . Kampanjen var inte ett enda misslyckande utan en samordnad operation med flera konton. The Hacker News rapporterade om en separat, tidigare Packagist-leverantörskedjeattack i maj 2026 som komprometterade 8 paket med relaterade skadliga element , vilket ytterligare belyser ekosystemets sårbarhet.
Kampanjen utgör ett ihållande hot eftersom angriparens infrastruktur inte helt oskadliggjorts. Kampanjen kan fortsätta genom :
43[.]228[.]157[.]68) kan fortfarande vara i drift och aktivt ta emot data .Medan utvecklarens originalkonto på Packagist har stängts av, innebär den rena omfattningen av matchande arbetsflödesfiler (upp till ~16 000) att operationen har ett stort fotavtryck som är svårt att helt utrota .
Baserat på den publicerade analysen bör organisationer och utvecklare omedelbart vidta följande åtgärder :
push- eller workflow_dispatch-utlösare utan manuell granskning.43[.]228[.]157[.]68) och den kända DNSHook- callback-domänen ..github/workflows/-filer, eftersom PHP-koden i sig kan vara ren medan attacken lever helt i CI/CD-konfigurationen .