Industrie

Een gehackte npm-package gooit volgende week je ChatGPT van je Mac

· 7 min leestijd

Stel je voor. Het is volgende week vrijdag, koffie in de hand, je opent ChatGPT op je MacBook om je dag te starten. En het ding doet niets. Geen update-prompt, geen melding, gewoon stilte. Dat is precies het scenario dat OpenAI vorige maand aankondigde voor iedereen die ChatGPT Desktop, Codex of Atlas op een Mac draait. Vanaf 8 mei weigert macOS oudere versies van die apps te starten, omdat OpenAI zijn signing-certificaat moet vervangen na een supply-chain aanval. Tijd om vandaag, niet maandag, je apps te checken.

Wat gebeurt er volgende week vrijdag op je Mac?

Op 8 mei trekt OpenAI definitief het oude code-signing-certificaat in waarmee tot voor kort vrijwel alle macOS-versies van ChatGPT Desktop, Codex, Codex CLI en Atlas zijn ondertekend. Wat je merkt aan je oude versie. Eerst krijgt 'ie geen updates meer. En zwaarder, na die datum blokkeert macOS de apps zelf. Geen download, geen launch, niks.

Wat je nodig hebt om dat te voorkomen is simpel, mits je de juiste minimumversie hebt:

  • ChatGPT Desktop minimaal 1.2026.071
  • Codex (de standalone Mac-app) minimaal 26.406.40811
  • Codex CLI minimaal 0.119.0
  • Atlas minimaal 1.2026.84.2

Heb je een oudere versie? Dan moet je voor 8 mei updaten. Anders gooit Apple's Gatekeeper ze er volgende vrijdag uit. Voor consultants en bureaus is de vraag niet of dit jou raakt, maar hoeveel mensen op kantoor het al hebben gemerkt.

Een npm-package, een GitHub Action en een groep uit Noord-Korea

De aanval volgt een patroon dat steeds vertrouwder wordt. Een opensource Node.js-pakket, in dit geval Axios, dat tegenwoordig in zo'n een op de drie JavaScript-projecten voorkomt, wordt overgenomen door een aanvaller. Twee kwaadaardige versies (1.14.1 en 0.30.4) verschijnen op npm. In die versies zit een onschuldig ogende dependency genaamd plain-crypto-js. En in plain-crypto-js zit, een stuk minder onschuldig, een cross-platform backdoor met de naam WAVESHAPER.V2, gericht op Windows, macOS en Linux tegelijk.

Even voor de beeldvorming. Stel je een fabriek voor die voortdurend nieuwe sleutels stempelt voor zijn eigen voordeur. Die fabriek koopt schroeven in bij een leverancier. Iemand vervangt een doos schroeven door identiek verpakte exemplaren die na een week beginnen te kraken. Niemand merkt dat aan de schroef zelf, totdat ze in de stempelmachine zitten en die machine dingen begint te doen die niemand opdroeg.

OpenAI's GitHub Action, het stuk automatisering dat hun macOS-apps signeert voordat ze naar Apple gaan voor notarization, was die stempelmachine. Op 31 maart download de Action versie 1.14.1 van Axios. WAVESHAPER.V2 wordt uitgevoerd. De backdoor heeft op dat moment toegang tot de signing-omgeving, al schrijft OpenAI achteraf dat het certificaat "waarschijnlijk niet succesvol is geëxfiltreerd" door de timing van het payload, de injection-volgorde van de job en andere mitigerende factoren. Google's Threat Intelligence Group koppelde de aanval een paar dagen later aan een Noord-Koreaanse groep met de codenaam UNC1069. Niet bepaald je doorsnee npm-grappenmaker.

Maar wat zijn ze dan precies kwijt?

OpenAI's verklaring is voorzichtig en strak geformuleerd. Letterlijk: het bedrijf heeft "geen bewijs dat gebruikersdata is geraakt, dat systemen of intellectueel eigendom is gecompromitteerd, of dat de software is gewijzigd". Dat klinkt geruststellend en is dat ook. Het betekent dat geen enkele gebruiker een gemanipuleerde ChatGPT Desktop heeft gedraaid.

Maar dan komt de toevoeging die er voor security-teams écht toe doet. "Out of an abundance of caution", schrijft OpenAI, "behandelen we het certificaat alsof het is gecompromitteerd." In gewoon Nederlands: we kunnen niet honderd procent uitsluiten dat ze de signing-key in handen hebben. Als die key bij verkeerde handen zou zijn, kunnen aanvallers zelf macOS-apps signeren die door Gatekeeper als "officiële OpenAI-app" worden gezien. Dat is het scenario dat 8 mei moet uitsluiten, door élke app die met de oude key is gesigneerd niet meer te accepteren.

Geen incident in de zin van data-uitlek voor de eindgebruiker, dus. Wel een incident in de zin van vertrouwensketen tussen Apple, OpenAI en jouw Mac. En precies díe ketting moet voor 8 mei opnieuw geknoopt worden.

Wat doe je vandaag op je eigen Mac?

Drie minuten werk, hooguit. Open elke OpenAI-app die je gebruikt. Bekijk de versie via het over-menu of via settings → about. Match tegen het lijstje hierboven.

Lager dan minimumversie? Klik op check for updates. Apple's eigen update-mechanisme werkt nog tot 8 mei, daarna is een update ophalen niet meer mogelijk en moet je de app opnieuw downloaden via openai.com/desktop, openai.com/codex of chatgpt.com/atlas.

Codex CLI is een ander verhaal. Die installeer je meestal via npm met npm install -g @openai/codex-cli. Controleren doe je met codex --version, updaten met npm update -g @openai/codex-cli. Nooit eerder gedaan? Dan is dit een mooi moment om je supply-chain-hygiëne überhaupt eens onder de loep te nemen.

En als je de app al wekenlang niet hebt geopend? Soms vergeet macOS apps in een random folder. Open Finder, ga naar Applications, kijk wat daar staat. Oude versies in ~/Downloads mag je gewoon naar de prullenbak.

Heb je collega's die ook met deze apps werken?

Hier wordt het een apart verhaal. De gemiddelde Nederlandse mkb'er heeft geen Jamf Pro draaien voor zijn vijftien Macs. Wat hij wél heeft is een mengelmoes. Developers met Codex Desktop, content-mensen met ChatGPT, een paar early adopters die Atlas hebben geïnstalleerd. Niemand houdt centraal bij welke versie waar staat.

Drie praktische manieren om dat te tackelen, oplopend in moeite:

  • Snel en eenvoudig. Stuur een Slack-bericht of mail aan iedereen die OpenAI-tools gebruikt, met een directe link naar de download-pagina en een interne deadline van vrijdag 7 mei. Zo houd je één werkdag marge.
  • Iets gestructureerder. Heb je een MDM-oplossing zoals Jamf, Kandji, Mosyle of Microsoft Intune? Push een Smart Group of Configuration Profile die scant op CFBundleShortVersionString van OpenAI's apps. Onder minimumversie? Markeer als non-compliant en triggert een gedwongen update.
  • Voor wie het serieus aanpakt. Vraag IT om een Software Inventory-rapport van alle Apple endpoints, filter op publisher = "OpenAI", en heb maandag 4 mei een lijst klaar van wie nog moet updaten.

Belangrijke detail: de update werkt niet automatisch op apps die je zelf via een DMG hebt gedownload buiten de App Store om. De ingebouwde update-flow van ChatGPT Desktop pakt het wél, mits de app ten minste één keer per week wordt gestart. Wie de app vooral op zijn werk-Mac heeft staan en de laatste twee weken op vakantie was, is de grootste risicogroep.

Waarom deze hack jouw eigen software-stack raakt

Dit incident is geen ChatGPT-probleem. Het is een npm-probleem dat toevallig door OpenAI zichtbaar werd. Vergelijkbare scenario's spelen zich nu maandelijks af bij andere SaaS-leveranciers. Als jouw eigen team JavaScript schrijft, draait er ergens in jouw project ook een transitive dependency die door iemand anders wordt onderhouden. En die iemand kan vandaag z'n npm-account verliezen aan een gerichte phishing.

Voor Nederlandse organisaties is dit relevant door één specifieke reden: NIS2. Sinds Q2 2026 moeten bedrijven in aangewezen sectoren, denk aan energie, transport, gezondheidszorg, digitale infrastructuur, plus "important entities" zoals managed service providers, aantoonbaar voldoen aan de Cyberbeveiligingswet, de NL-implementatie van de NIS2-richtlijn. Een van de hardere onderdelen daarvan is supply-chain risk management plus een meldplicht binnen 24 uur voor incidenten in jouw leverancierketen.

Concreet betekent dat. Als jij een NIS2-plichtige organisatie bent, of indirect via een klant in zo'n sector werkt, en OpenAI is een leverancier in je workflow, moet je dit incident kunnen reconstrueren. Wanneer wist je het? Wat heb je gedaan? Welke endpoints zijn geüpdatet? Een formele melding aan het NCSC valt waarschijnlijk niet onder de plicht, want er is geen evidence van data-toegang en geen "significant gevolg". Maar het audit-spoor moet je wél hebben. Voor wie graag breder kijkt naar het Nederlandse compliance-landschap rond AI en data, staat het tien-toezichthouders-overzicht van vorige week nog op theaidaily.

Voor wie geen NIS2-plicht heeft is de les simpeler. Dependency-pinning is geen developer-luxe meer. Lockfiles, Software Bill of Materials, een npm audit in je CI: dingen die jaren als "later misschien" voelden, worden de standaard waar je leveranciers op afgerekend gaan worden. En waarop jij je eigen leveranciers afrekent. Als je nog niet weet hoe lang je productie-builds eigenlijk duren met dependency-pinning aan, is dit het moment om je dev-team de vraag te stellen. BleepingComputer's reconstructie van de Axios-aanval geeft een aardig beeld van waar het misgaat als je dat niet doet.

Wat staat er volgende week op je agenda

Twee dingen. Eén, voor je eigen Mac een drie-minuten-versiecheck en een update als dat nodig is. Twee, een rondje binnen je team dat collega's hetzelfde doen, met een interne deadline van 7 mei. Een mentale derde, voor wie wat tijd over heeft. Open je package.json of package-lock.json van het project waar je nu aan werkt en zoek op "axios". Zit er een 1.14.1 of 0.30.4 tussen? Pin 'm op een veilige versie en commit. Drie minuten extra werk, één potentieel pijnlijke vrijdag minder.

Michael Groeneweg
Geschreven door Michael Groeneweg AI-consultant bij Digital Impact en oprichter van UnicornAI.nl

Michael is AI-consultant bij Digital Impact in Rotterdam en oprichter van UnicornAI.nl, waar hij AI-oplossingen en SaaS-integraties bouwt voor bedrijven. Al tien jaar ondernemer, en sinds een paar jaar weigert hij iets te doen waar geen AI in verweven zit, zakelijk noch privé, tot mild ongenoegen van zijn omgeving. Zijn reizen door de wereld zijn inmiddels een serie experimenten in wat AI wel en niet kan vanaf een terrasje in Lissabon of een treinstation in Tokio. Hij test obsessief nieuwe tools, bouwt oplossingen voor klanten, en vindt dat niemand de hype moet geloven, maar ook niemand meer kan doen alsof AI niet alles verandert. Houdt van goede koffie, lange vluchten en mensen die met AI bouwen in plaats van er alleen over praten.

Gemaakt door een mens, met AI als assistent bij research en redactie. Meer over onze werkwijze in de AI-disclosure en het redactiestatuut.