Meer dan 400 Arch Linux AUR-pakketten gekaapt om Infostealer en eBPF Rootkit te implementeren

Aanvallers hebben deze week meer dan 400 pakketten in de Arch User Repository (AUR) overgenomen en hun build-scripts herschreven om een ​​credential stealer te installeren op elke machine die ze bouwde.

De malware is een Rust-binair bestand dat is gebouwd om ontwikkelaarsgeheimen te verzamelen. Wanneer het met root landt, kan het ook een eBPF-rootkit laden om zichzelf te verbergen. De AUR is de gemeenschapspakketverzameling van Arch Linux en staat los van de officiële Arch-repository’s, die niet werden beïnvloed.

Als u op of na 11 juni een AUR-pakket hebt geïnstalleerd of bijgewerkt, controleer dit dan aan de hand van de huidige lijsten met getroffen pakketten voordat u de host vertrouwt. De lijst met namen is groot, groeit nog steeds en is nog niet compleet.

Deze aanval is gericht op het vertrouwensmodel en niet op een softwarefout. De gecompromitteerde pakketten behielden hun naam, hun geschiedenis en het vertrouwen dat daarmee gepaard ging. Alleen de bouwinstructies zijn gewijzigd.

De valkuil zat in het recept, waardoor het pakket zelf er precies zo uitzag als de software die gebruikers wilden installeren. Geen exploit, geen zero-day en geen teken dat Arch’s eigen systemen zijn gehackt.

De aanvallers adopteerden verlaten pakketten, bewerkten de build-bestanden en lieten gebruikers de payload voor hen uitvoeren. Sonatype, dat de campagne Atomic Arch noemde, ontdekte dat ze achter verweesde projecten aan gingen: pakketten waarvan de beheerders waren weggelopen, waardoor ze door iedereen konden worden geadopteerd.

Ze hebben ook git commit-metagegevens vervalst, zodat de wijzigingen eruit zagen alsof ze afkomstig waren van een al lang bestaande beheerder, een account waarvan een Arch Linux Trusted User later bevestigde dat het nooit in gevaar was gebracht.

Zodra een pakket was geadopteerd, werd het PKGBUILD- of .install-script bewerkt om npm install atomic-lockfile uit te voeren tijdens de build, waarbij het kwaadaardige npm-pakket samen met een paar legitieme pakketten ter dekking werd getrokken. Dat pakket, [email protected], heeft een pre-install hook die een gebundelde Linux ELF draait met de naam deps. Bouw het pakket en het binaire bestand wordt uitgevoerd.

Bevestigde voorbeelden die aan de Arch-mailinglijst zijn gerapporteerd, zijn onder meer de alvr- en premake-git-pakketten.

Wat de malware doet

Onafhankelijk onderzoeker Whanos heeft de payload van de deps reverse-engineered en beschrijft een Rust-credential-steeler gericht op ontwikkelaarswerkstations en bouwsystemen. Het verzamelt:

  • Cookies, tokens en lokale opslag van Chromium-gebaseerde browsers (Chrome, Edge, Brave en nog veel meer)
  • Sessiegegevens van Electron-apps, waaronder Slack, Discord en Microsoft Teams
  • GitHub-, npm- en HashiCorp Vault-tokens, plus OpenAI/ChatGPT-dragermateriaal en accountmetagegevens
  • SSH-sleutels, bekende_hosts en shell-geschiedenis
  • Docker- en Podman-inloggegevens en VPN-profielen

Gestolen bestanden worden via HTTP verzonden naar temp.sh. Commando en controle lopen via een Tor-uienservice via een lokale loopback-proxy.

Voor persistentie installeert het een systemd-service met Restart=always. Met root kopieert het zichzelf onder /var/lib/ en schrijft het een eenheid onder /etc/systemd/system/; als normale gebruiker gebruikt het de homedirectory en een eenheid per gebruiker onder ~/.config/systemd/user/. Hoe dan ook, het wil terugkomen.

Vroege artikelen hebben de eBPF-rootkit te veel verkocht. Het is optioneel en wordt alleen geladen als het binaire bestand al root en de juiste mogelijkheden heeft. Het wordt niet gebruikt om privileges te verkrijgen. Wanneer het wordt geactiveerd, verbergt het de eigen processen, procesnamen en socket-inodes van de malware voor standaardtools, met behulp van vastgezette BPF-kaarten met de namen verborgen_pids, verborgen_namen en verborgen_inodes, en doodt het pogingen om een ​​debugger te koppelen.

Dat verandert het opruimadvies. Het verwijderen van het AUR-pakket is niet voldoende zodra de payload is uitgevoerd. Een pakketbeheerder kan de bestanden verwijderen waarvan hij op de hoogte is. Het kan niet bewijzen dat de machine schoon is nadat een rootkit-compatibele payload de kans heeft gehad om uit te voeren.

Het binaire bestand bevat ook een tweede bestand dat is gekoppeld aan monero-wallet-gui en dat door de analyse wordt gemarkeerd als een mogelijke, niet-geanalyseerde cryptominer. Een eBPF-rootkit die op een ‘smash-and-grab-stealer’ is gemonteerd, is ongebruikelijk, en daarom is deze meer waard dan een schouderophalen.

Reikwijdte, en een tweede golf

Sonatype’s eerste artikel telde meer dan twintig gekaapte pakketten. Binnen een dag hadden community-trackers en de Arch aur-general thread er meer dan 400 gecatalogiseerd, waarbij één hoofdlijst werd samengesteld door de AUR git mirror te gebruiken, waardoor deze rond de 408 kwam, en de geconsolideerde lijsten steeds hoger klommen.

Het atomic-lockfile npm-pakket zelf vertoonde slechts 134 wekelijkse downloads op Socket voordat het uit het register werd gehaald, dus de echte blootstelling is het AUR-buildpad in plaats van npm-installaties.

Een tweede golf gebruikte bun install js-digest, gepusht vanuit een aparte set accounts die community-trackers koppelen aan dezelfde npm-uitgever als atomic-lockfile. De payload is een ander binair bestand, een aparte ELF door zijn hash, die de community ook als kwaadaardig heeft gemarkeerd.

Hoe ver deze golf zich heeft verspreid, wordt nog steeds geteld. Bij de eerste analyses werden enkele tientallen pakketten vermeld, terwijl latere op grep gebaseerde zoekopdrachten in de AUR-mirror veel hogere cijfers opleverden, waaronder mogelijk churn als commits worden verwijderd. Hoe dan ook, het is geen voetnoot bij de eerste golf, dus controleer op zowel atomic-lockfile als js-digest.

Wat nu te doen

Arch-onderhouders resetten de kwaadaardige commits, verbieden de accounts en vragen gebruikers om verdachte pakketten te blijven melden in de mailinglijstthread.

Behandel de gepubliceerde lijst met getroffen pakketten als onvolledig. Aan jouw kant:

  • Controleer elk AUR-pakket dat op of na 11 juni is geïnstalleerd of bijgewerkt met de pakketlijsten en detectiescripts van de gemeenschap, die uw buitenlandse pakketten vergelijken met de bekende slechte set. Grep recente buildgeschiedenis en caches voor npm install atomic-lockfile, bun install js-digest en het payload-pad src/hooks/deps.
  • Als een gemarkeerd pakket is uitgevoerd, behandel de host dan als een beschadigd pakket. Roteer alles wat de dief aanraakt: browsersessies, SSH-sleutels, GitHub- en npm-tokens, Slack-, Teams- en Discord-sessies, Vault-tokens, Docker- en Podman-inloggegevens en eventuele cloudsleutels.
  • Jaag op doorzettingsvermogen. Controleer op onbekende systemd-services (zowel systeemeenheden als ~/.config/systemd/user/) en onverwachte bestanden onder /var/lib/. Inspecteer /sys/fs/bpf/ voor de kaarten verborgen_pids, verborgen_namen en verborgen_inodes. Bekijk uitgaande verbindingen met Tor en om services te uploaden.
  • Als het pakket als root draait, neem dan aan dat de rootkit aanwezig is en installeer het opnieuw vanaf vertrouwde media. Anders kunt u het systeem niet vertrouwen.
  • Lees in de toekomst de PKGBUILD en eventuele .install-hooks voordat u gaat bouwen, vooral voor pakketten die onlangs zijn aangenomen of plotseling actief zijn na een lange rustperiode. Als u de bouwinstructies niet begrijpt, installeer het pakket dan niet.

Voor detectie is de SHA-256 van de belangrijkste payload 6144d433f8a0316869877b5f834c801251bbb936e5f1577c5680878c7443c98b; de volledige indicatorset, inclusief de ui C2-host, bevindt zich in de ioctl.fail-analyse.

Dezelfde adoptietactiek trof in 2018 een verlaten PDF-viewerpakket; de versie uit 2026 heeft het alleen maar opgeschaald, als onderdeel van een bredere reeks aanvallen op de toeleveringsketen waarbij verweesde projecten worden gekaapt om vertrouwen te erven in plaats van te typen om gebruikers te misleiden. De getroffen lijst is nog steeds onvolledig en er is geen CVE toegewezen; Sonatype volgt de campagne als Sonatype-2026-003775 (CVSS 8.7).

De aanval werkte omdat de AUR nog steeds de naam en geschiedenis van een pakket vertrouwt over wie het nu onderhoudt. Een onlangs geadopteerd pakket, of een pakket dat plotseling nieuwe installatiehaken oplevert, verdient nu dezelfde verdenking als een pakket van een vreemde.

Thijs Van der Does