Cybersecurity-onderzoekers hebben details bekendgemaakt van een nieuwe kwaadaardige supply chain-campagne die zich richt op ontwikkelaars die OpenAI Codex gebruiken via een legitiem ogende externe webinterface.
De tool, genaamd codexui-android, wordt op GitHub en npm geadverteerd als een externe web-UI voor OpenAI Codex, die wekelijks meer dan 29.000 downloads trekt. Het pakket kan nog steeds worden gedownload vanuit de repository.
Wat deze activiteit opmerkelijk maakt, is dat het geen traditionele aanval is waarbij gebruik wordt gemaakt van een typosquat- of wegwerppakket om ontwikkelaars te misleiden. In plaats daarvan is de kwaadaardige code ingebed in een functioneel npm-pakket dat actief is ontwikkeld. De bijbehorende GitHub-repository blijft schoon.
“En de afgelopen maand heeft elke afzonderlijke aanroep stilletjes uw Codex-authenticatietokens geëxfiltreerd naar een door de aanvaller gecontroleerde server”, aldus Aikido Security-onderzoeker Charlie Eriksen.
De snode veranderingen zouden ongeveer een maand nadat het pakket in het register was gepubliceerd, zijn geïntroduceerd, waarschijnlijk in een poging om het vertrouwen van de gebruiker op te bouwen en het bereik ervan uit te breiden. Het npm-account dat aan het pakket is gekoppeld, is “friuns” (ook bekend als Igor Levochkin).
In het pakket is code aanwezig die de inhoud van Codex’s “~/.codex/auth.json”-bestand extraheert en deze exfiltreert naar een externe server (“sentry.anyclaw(.)store”) die zich voordoet als Sentry, een legitiem platform voor het monitoren van applicaties en het opsporen van fouten. De vastgelegde gegevens bevatten de volgende details: access_token, refresh_token, id_token en account-ID.
“Het refresh_token verloopt niet”, zei Eriksen. “Een aanvaller die het vasthoudt, kan zich voor onbepaalde tijd in stilte voordoen als jou. Een gestolen Codex refresh_token gaat verder dan toegang tot een chatinterface: het is permanente, stille toegang tot alles wat dat account kan doen.”
Het is de moeite waard hier te vermelden dat elke keer dat een gebruiker inlogt bij de Codex-app, CLI of IDE-extensie met behulp van ChatGPT of een API-sleutel, de inloggegevens lokaal in de cache worden opgeslagen in een tekstbestand op ~/.codex/auth.json of in de besturingssysteemspecifieke inloggegevensopslag.
“Als je op bestanden gebaseerde opslag gebruikt, behandel ~/.codex/auth.json dan als een wachtwoord: het bevat toegangstokens”, waarschuwt OpenAI in de ondersteunende documentatie. “Maak het niet vast, plak het in tickets of deel het in de chat.”
Interessant is dat het npm-pakket verre van de enige leveringsvector is die de bedreigingsacteur gebruikt om zich op Codex-ontwikkelaars te richten. Aikido zei dat het een Android-applicatie heeft waargenomen met de naam OpenClaw Codex Claude AI Agent (pakketnaam: “gptos.intelligence.assistant”) die het npm-pakket binnen zijn PRot-sandbox uitvoert en de Codex-inloggegevens naar hetzelfde eindpunt verzendt.
“De APK zelf is klein (26 MB) en ziet er schoon uit op een pre-publicatiescan van Play”, legt Eriksen uit. “Bij de eerste keer uitvoeren extraheert het een van Termux afgeleid Linux-gebruikersland naar de privéopslag van de app en voert Node.js daarin uit via PRot.”
“De versie is niet vastgezet, dus het apparaat haalt alles op wat momenteel op npm is gepubliceerd. De exfiltratie is van kracht sinds [email protected]. Het pakket draait in de PRot-sandbox van de app, waar de in-app Codex-aanmelding zijn auth.json schrijft. Zodra de gebruiker zich aanmeldt, leest het pakket dat bestand uit de sandbox en verzendt het de volledige OAuth-blob naar sentry.anyclaw.store/startlog.”
De Android-app is uitgegeven door een entiteit genaamd “BrutalStrike” en heeft meer dan 50.000 downloads. Dezelfde exfiltratieketen is ook gemarkeerd in een tweede Android-app die is gekoppeld aan BrutalStrike: Codex (pakketnaam: “codex.app”), die meer dan 10.000 keer is gedownload. De overige drie apps die de ontwikkelaar aanbiedt, bevatten de functionaliteit niet.

Toen Aikido contact opnam met de auteur van het pakket op GitHub, zei Aikido dat ze aanvankelijk een opmerking hadden geplaatst waarin stond dat ze de toegang tot hun npm-account waren kwijtgeraakt, om vervolgens het antwoord te bewerken en een ander antwoord te posten waarin ze beweerden dat ze “dit probleem momenteel intern onderzoeken” en dat ze “begonnen zijn met het verwijderen van de getroffen functionaliteit en gerelateerde gegevens.”
De auteur beweerde verder dat er geen inloggegevens met derden waren gedeeld, zonder te antwoorden waarom deze code alleen in de npm-pakketbuild werd ingevoegd of waarom ze überhaupt toegang nodig hadden tot de Codex-tokens. Het X-profiel dat aan de auteur is gekoppeld, omvat het domein “anyclaw(.)store.”
WHOIS-records geven aan dat het domein op 12 april 2026 werd geregistreerd, slechts twee dagen nadat de allereerste versie van het npm-pakket (versie 0.1.72) was geüpload naar npmjs(.)com.
Deze ontwikkeling komt doordat bedreigingsactoren zich steeds meer richten op echte kunstmatige intelligentie (AI)-ontwikkelaarstools en -workflows om inloggegevens te stelen en dieper in de softwaretoeleveringsketen te graven.
Eind vorige maand ontdekte het Belgische beveiligingsbedrijf ook dat een verwijderde Google API-sleutel tot 23 minuten live blijft, een periode waar een aanvaller met toegang tot een gelekte sleutel van kan profiteren om toegang te krijgen tot gebruikersgegevens en andere API’s, waaronder die gerelateerd aan Google Gemini. De gemiddelde intrekkingsperiode bedraagt ongeveer 16 minuten.
“Een aanvaller die jouw verwijderde sleutel vasthoudt, kan verzoeken blijven verzenden totdat hij een server bereikt die zijn achterstand nog niet heeft ingehaald”, zegt onderzoeker Joe Leon. “Als Gemini is ingeschakeld in het project, kunnen ze bestanden die je hebt geüpload dumpen en in de cache opgeslagen gesprekken exfiltreren.”
Hoewel Google er eerst voor heeft gekozen om het probleem niet op te lossen, omdat het een ‘bekende eigenschap van het systeem is en geen beveiligingsprobleem’, heeft de technologiegigant sindsdien besloten het als een P0-bug te behandelen, waardoor het een ernstig probleem is dat ‘onmiddellijk moet worden aangepakt’.
De bevindingen benadrukken, net als bij een vergelijkbare exploitatieperiode van vier seconden die eerder werd waargenomen bij verwijderde Amazon Web Services (AWS)-toegangssleutels, hoe vertragingen bij het intrekken van inloggegevens kunnen worden misbruikt en kunnen worden gebruikt om ongeautoriseerde toegang te krijgen tot de cloudomgevingen, terwijl verdedigers ervan uitgaan dat de inloggegevens zijn ingetrokken.