Cybersecurity-onderzoekers hebben twee kwaadaardige pakketten ontdekt in de Python Package Index (PyPI)-repository die zich voordoen als spellingcontrole, maar functionaliteit bevatten om een trojan voor externe toegang (RAT) te leveren.
De pakketten, genaamd spellingcontrole En spellingcontrolezijn niet langer beschikbaar op PyPI, maar niet voordat ze gezamenlijk iets meer dan 1.000 keer zijn gedownload.
“Verborgen in het Baskische woordenboekbestand zat een base64-gecodeerde payload die een volledige Python RAT downloadt”, zei Aikido-onderzoeker Charlie Eriksen. “De aanvaller publiceerde eerst drie ‘slapende’ versies, payload aanwezig, trigger afwezig, en zette vervolgens de schakelaar om met spellcheckpy v1.2.0, en voegde een versluierde uitvoeringstrigger toe die wordt geactiveerd zodra je SpellChecker importeert.”
In tegenstelling tot andere pakketten die de kwaadaardige functionaliteit binnen “__init__.py”-scripts verbergen, is gebleken dat de bedreigingsactor achter de campagne de payload toevoegt aan een bestand met de naam “resources/eu.json.gz” dat Baskische woordfrequenties bevat uit het legitieme pyspellchecker-pakket.
Hoewel het pakket op het eerste gezicht onschadelijk lijkt, wordt het kwaadaardige gedrag geactiveerd wanneer het archiefbestand wordt uitgepakt met behulp van de functie test_file() met de parameters: test_file(“eu”, “utf-8”, “spellchecker”), waardoor het een Base64-gecodeerde downloader ophaalt die in het woordenboek verborgen is onder een sleutel genaamd “spellchecker”.
Interessant genoeg haalden en decodeerden de eerste drie versies van het pakket alleen de payload op, maar voerden deze nooit uit. Dat veranderde echter met de release van spellcheckpy versie 1.2.0, gepubliceerd op 21 januari 2026, toen het de mogelijkheid kreeg om de payload ook uit te voeren.
De eerste fase is een downloader die is ontworpen om een op Python gebaseerde RAT op te halen van een extern domein (“updatenet(.)work”). Het is in staat om vingerafdrukken te maken van de besmette host, binnenkomende opdrachten te parseren en deze uit te voeren. Het domein, geregistreerd eind oktober 2025, is gekoppeld aan 172.86.73(.)139, een IP-adres dat wordt beheerd door RouterHosting LLC (ook bekend als Cloudzy), een hostingprovider die een geschiedenis heeft in het aanbieden van zijn diensten aan nationale groepen.
Dit is niet de eerste keer dat er nep-Python-spellingscontroletools zijn gedetecteerd in PyPI. In november 2025 zei HelixGuard dat het een kwaadaardig pakket had ontdekt met de naam “spellcheckers” dat de mogelijkheid bood om een RAT-payload op te halen en uit te voeren. Er wordt vermoed dat deze twee reeksen aanvallen het werk zijn van dezelfde bedreigingsacteur.
De ontwikkeling valt samen met de ontdekking van verschillende kwaadaardige npm-pakketten om gegevensdiefstal te vergemakkelijken en cryptocurrency-portefeuilles te targeten –
- Flockiali (1.2.3-1.2.6), opresc (1.0.0), prndn (1.0.0), oprnm (1.0.0) en operni, die een enkel JavaScript-bestand bevatten dat, wanneer geladen, een vals inlogscherm van Microsoft weergeeft als onderdeel van een gerichte spear-phishing-campagne waarbij werknemers van specifieke industriële en energiebedrijven in Frankrijk, Duitsland, Spanje, de VAE en de VS worden getroffen met kwaadaardige links
- ansi-universal-ui (1.3.5, 1.3.6, 1.3.7, 1.4.0, 1.4.1), die zich voordoet als een UI-componentenbibliotheek, maar een op Python gebaseerde stealer inzet genaamd G_Wagon die webbrowserreferenties, cryptocurrency-portefeuilles, cloudreferenties en Discord-tokens exfiltreert naar een Appwrite-opslagbucket
De onthulling komt ook op het moment dat Aikido de dreiging benadrukte die gepaard gaat met slopsquatting, waarbij door kunstmatige intelligentie (AI) aangedreven agenten niet-bestaande pakketten kunnen hallucineren die vervolgens door een bedreigingsacteur kunnen worden geclaimd om kwaadaardige code naar downstreamgebruikers te pushen.
In één geval dat door het beveiligingsbedrijf voor de toeleveringsketen werd benadrukt, is ontdekt dat naar een fictief npm-pakket met de naam “react-codeshift” wordt verwezen door 237 GitHub-opslagplaatsen, aangezien het medio oktober 2025 bestond uit een groot taalmodel, waarbij sommigen van hen zelfs AI-agenten instrueerden om het te installeren.
“Hoe verspreidde het zich naar 237 repo’s? Vaardigheidsbestanden van agenten. Gekopieerd, geplakt, gevorkt, vertaald in het Japans, nooit één keer geverifieerd”, zei Eriksen. “Vaardigheden zijn de nieuwe code. Ze zien er niet zo uit. Het zijn Markdown en YAML en vriendelijke instructies. Maar ze zijn uitvoerbaar. AI-agenten volgen ze zonder te vragen: ‘Bestaat dit pakket echt?'”