Een gegenereerde abstracte illustratie op een zeer licht grijsblauw vlak: een breed veld van gelijkmatig verdeelde dunne verticale balken, als een vereenvoudigde codelijst van veraf gezien, vult het kader. De meeste balken zijn licht leigrijs; een kleine cluster links van het midden is weergegeven in gedempt amber, en één balk in die cluster stopt vóór de basislijn, waardoor een zichtbare opening ontstaat. Achter de balken ligt een vaag blauwdruk-raster, en een dunne horizontale lijn loopt over het onderste derde deel. Er verschijnen geen tekst, letters, cijfers, mensen, robots, hangsloten, schedels of organisatielogo's. Het OrcaRouter-logo is in de rechteronderhoek gecompositeerd.
AI Safety Incidents

De 500 zero-days van Claude Opus 4.6: wat drie patches laten zien

Auteur

Magnus Corvin

Publicatiedatum

Nieuwste modellen · 20Bekijk alle modellen →
Benchmarks: Artificial Analysis · dagelijks bijgewerkt
Terug naar alle berichten

Op 5 februari 2026 publiceerde het Frontier Red Team van Anthropic onderzoek waaruit bleek dat Claude Opus 4.6, dat dezelfde dag werd uitgebracht, meer dan 500 kwetsbaarheden met hoge ernst in open-source software had gevonden en gevalideerd — zonder taakspecifieke tooling, aangepaste scaffolding of gespecialiseerde prompting. Drie bevindingen worden in detail beschreven: een ontbrekende stack-boundscontrole in Ghostscript, een ongecontroleerde reeks strcat-aanroepen in OpenSC, en een bufferoverflow in de GIF-encoder CGIF die afhangt van hoe LZW-compressie zich gedraagt wanneer het woordenboek vol raakt. Anthropic zegt dat alle drie nu door hun maintainers zijn gepatcht, en volgens zijn verslag zijn de bugs gevonden, gevalideerd en gerapporteerd. Veel van de projecten worden onderhouden door kleine teams of vrijwilligers zonder toegewijde securitymedewerkers, merkt het bericht op, dus de rapportage- en patchlast kwam bij hen terecht. De eigen vermelding van het archief voor de bevinding, met ernstniveau info en zonder geregistreerde echte schade, staat in het Orca AI Incident Archive naast de andere beleids- en openbaarmakingsrecords van februari 2026.

Wat Anthropic daadwerkelijk heeft gepubliceerd

De post heeft de titel "Evaluating and mitigating the growing risk of LLM-discovered 0-days" en wordt toegeschreven aan het Frontier Red Team: Nicholas Carlini, Keane Lucas en Evyatar Ben Asher als gelijkwaardige bijdragers, met Newton Cheng, Hasnain Lakhani, David Forsythe en Kyla Guru. De pagina vermeldt een publicatiedatum van 5 februari 2026 en een bewerkingsnotitie van 6 februari 2026 waarin staat dat de auteurslijst is bijgewerkt. Het archief citeert de post op red.anthropic.com, die nu doorverwijst naar anthropic.com/research/zero-days.

De methode is belangrijker dan het getal in de kop. Anthropic zegt dat het het model in een virtuele machine heeft geplaatst met toegang tot de nieuwste versies van opensourceprojecten, en het standaardhulpprogramma's en de tools heeft gegeven die een menselijke securityonderzoeker zou gebruiken — debuggers en fuzzers — maar geen instructies over hoe deze te gebruiken en, in de woorden van de post, "geen aangepaste harness die het gespecialiseerde kennis zou hebben gegeven over hoe het beter kwetsbaarheden kon vinden." Wat werd getest, was het out-of-the-boxgedrag van het model.

Het team beperkte de zoektocht tot geheugenvervuilingsbugs, met de redenering dat een crash gemakkelijker te bevestigen is dan een logische fout. Anthropic is expliciet dat dit een filter is, geen garantie: "not all inputs that cause a program to crash are high severity vulnerabilities." Dus de crashes gingen terug naar het model om te bekritiseren, te dedupliceren en opnieuw te prioriteren, en daarna naar mensen. "For our initial round of findings, our own security researchers validated each vulnerability and wrote patches by hand. As the volume of findings grew, we brought in external (human) security researchers to help with validation and patch development." Patchautomatisering, zo staat in het bericht, was nog in ontwikkeling.

Drie bugs, en de patches die volgden

De drie uitgewerkte voorbeelden hebben dezelfde vorm: een geautomatiseerd hulpmiddel had al gefaald, en het model vond de bug door te redeneren over iets anders dan invoermutatie.

• Ghostscript, de PostScript- en PDF-interpreter. Fuzzing en daarna handmatige analyse leverden niets op. Het model las vervolgens de Git-geschiedenis van het project, vond een commit die in het bericht werd beschreven als het toevoegen van "stack bounds checking for MM blend values" aan Type 1-charstrings, redeneerde dat de code vóór die commit kwetsbaar was geweest, en ging op zoek naar andere aanroeplocaties die niet dezelfde behandeling hadden gekregen. Het vond er een in gdevpsfx.c — het bericht citeert regel 292 — en bouwde een bestand dat het programma laat crashen. De repository bevestigt dit: commit 87486fb801 van Chris Liddell, gedateerd 5 september 2025, heeft de titel "Type 1 charstrings: add stack bounds checking for MM blend values." Een latere fix van Ken Sharp, commit 4e392a82 gedateerd 26 januari 2026, voegt grenscontroles toe direct vóór die aanroep in de lettertypeconverter, geregistreerd als Bug 709080, waarvan het rapport de titel “Ghostscript Incomplete fix for Type 1 MM blend stack bounds check” heeft. Een commit op 13 februari 2026 breidde de grenscontroles in dezelfde converter uit. Geen van de commitberichten zegt wie de bug heeft gemeld.

• OpenSC, een opdrachtregelprogramma voor smartcardgegevens. Hier zocht het model naar riskante functieaanroepen en vond opeenvolgende strcat-bewerkingen die naar een filenamebuffer van 4096 bytes schreven, na een grootteberekening die de lengte van een invoerstring aftrok maar daarna verdere strings toevoegde zonder opnieuw te controleren. De post merkt op dat bestaande fuzzers dat pad zelden bereikten vanwege de betrokken voorwaarden. OpenSC's commit 33ab343a5c van 19 januari 2026 voegde een controle toe dat de toegevoegde string precies 64 bytes is, en pull request #3554, samengevoegd op 25 januari 2026, verving de resterende strcat-aanroepen in het hele project door strlcat; de auteur noemde de functie een "magneet voor statische analysetools en CVE's."

• CGIF, een GIF-encoder. De bibliotheek ging ervan uit dat gecomprimeerde data altijd kleiner zou zijn dan de ongecomprimeerde invoer, wat bijna altijd waar is. Het model redeneerde dat LZW een woordenboek met vaste grootte opbouwt, en dat wanneer het woordenboek vol raakt, clear-codes die in de stream worden ingevoegd de "gecomprimeerde" uitvoer langer kunnen maken dan de invoer — dus een buffer ter grootte van N+2 codes zou meer dan N+1 kunnen ontvangen. De post zegt dat zelfs 100 procent lijn- en branchcoverage dit mogelijk niet aan het licht brengt, omdat er een specifieke reeks bewerkingen voor nodig is. CGIF's pull request #84, samengevoegd op 19 januari 2026 en dezelfde dag uitgebracht als v0.5.1, lost precies dat op: "De reset-clear-codes ontbraken in de berekening voor de bovengrens van de LZW-datagrootteberekening."

A self-built HTML card with a small blue kicker reading 'Anthropic Frontier Red Team, 5 February 2026', headed 'Three findings, three upstream fixes', subtitled 'The examples Anthropic named, and what each project changed in its own repository'. Three columns, one per project. Ghostscript, PostScript and PDF interpreter: described as a missing stack bounds check at gdevpsfx.c line 292; upstream fix is commit 4e392a82, 26 January 2026, Ken Sharp, under Bug 709080 'Incomplete fix for Type 1 MM blend stack bounds check', with a further commit on 13 February 2026 extending bounds checks in the same converter. OpenSC, smart card command-line utility: described as successive strcat calls into a 4096-byte filename buffer; commit 33ab343a5c on 19 January 2026 added a check that the appended string is exactly 64 bytes, and pull request 3554 merged 25 January 2026 replaced the remaining strcat calls with strlcat. CGIF, GIF encoder library: described as a buffer sized for N plus 2 LZW codes that could receive more than N plus 1 once dictionary resets expand the stream; pull request 84 merged 19 January 2026 added the missing reset clear codes to the allocation upper bound and shipped the same day as v0.5.1. A footer reads that all three fixes landed before the research was published, that none of the commits names the reporter, and that the dates come from the public git history of ghostpdl, OpenSC and cgif.

Die oplossingen zijn doorgevoerd voordat het onderzoek werd gepubliceerd — CGIF en OpenSC op 19 januari 2026, OpenSC opnieuw op 25 januari, Ghostscript op 26 januari — en Anthropic zei in het bericht dat het "was begonnen ze te melden en zag dat onze eerste patches werden doorgevoerd" voordat het naar buiten trad. De repositories leggen de codewijzigingen vast; ze leggen niet vast wie de meldingen heeft ingediend, dus de link tussen de bevindingen van het model en deze specifieke commits berust op Anthropics verslag en op hoe nauw de beschreven defecten overeenkomen met de diffs.

A self-built HTML card with a small blue kicker reading 'A dated record', headed 'Dates you can check', subtitled 'From the commit the model reasoned from, to the analysis that argued about the number'. A thin horizontal rail runs across the card with six circles marking six dated stops, two of them amber. 5 September 2025, ghostpdl: commit 87486fb801 adds stack bounds checking for MM blend values in Type 1 charstrings, the change Anthropic's post describes the model reasoning from. 19 January 2026, cgif and OpenSC: cgif pull request 84 adds the missing reset clear codes to the LZW allocation, released as v0.5.1, and OpenSC commit 33ab343a5c adds a 64-byte check. 25 to 26 January 2026, OpenSC and ghostpdl: OpenSC pull request 3554 replaces strcat with strlcat, and ghostpdl commit 4e392a82 adds the missing bounds check in gdevpsfx.c under Bug 709080. 5 February 2026, publication: Anthropic publishes the Frontier Red Team research alongside Claude Opus 4.6, and Axios reports it the same day. 20 February 2026, product: Claude Code Security opens as a limited research preview for Enterprise and Team customers, with free expedited access for open-source maintainers. 24 February 2026, analysis: Futurum Group argues the constraint is triage and patching, not discovery, because faster finding builds a bigger queue. A footer credits the repository dates to the public git history of ghostpdl, OpenSC and cgif, the product date to VentureBeat on 23 February 2026, and the analysis date to Futurum Group on 24 February 2026.

The researcher who said the OpenSC bug was not real

Public scrutiny of the individual findings did not start and end with Anthropic. On 14 February 2026 K. Reid Wightman, an industrial security researcher posting as @reverseics on infosec.exchange, published a review of the OpenSC example arguing the bug could not be triggered: the input string was already checked to be 64 bytes at line 5138, he wrote, which capped the buffer at 4095 bytes including the terminator. "I spent about an hour looking at the code to debunk their finding," he wrote.

He edited the same post on 17 February 2026 to withdraw the challenge. "Looks like the version of code I was looking at, already had a fix for anthropic-discovered bug(s)," the edit reads, before conceding the arithmetic: "but yes without the strlen() check on 'fp' the overflow could actually be triggered. The humble pie has been eaten." The check he had relied on was the one added to OpenSC on 19 January 2026 — before Anthropic published, and before most readers would have gone looking. The archive does not flag the record as disputed, and here the challenge was retracted by the person who raised it.

OpenSC's own maintainers answered the same question in their tracker. In discussion #3575, opened on 17 February 2026 by a user asking whether Anthropic's claims were legitimate, OpenSC maintainer frankmorgner replied the same day: "We received two bug reports from anthropic, which were both verified by humans." He said the fixes were in pull request #3554 and would be in the next release, and that commit 33ab343 was "a change that was introduced after anthropic reported the problem."

De governance-helft: probes, blokkering en 90 dagen

Wat dit tot een beleidsdocument maakt in plaats van een gewone onderzoeksnotitie, is de tweede helft van het bericht. Naast de modelrelease zegt Anthropic dat het cyber-specifieke sondes heeft geïntroduceerd die activaties in het model meten terwijl het een antwoord genereert, en dat het zijn handhavingsworkflows heeft bijgewerkt om op sondes gebaseerde detectie te gebruiken. Het gaat verder dan detectie: "we kunnen realtime-interventie invoeren, inclusief het blokkeren van verkeer dat we als kwaadaardig detecteren." Anthropic erkent de kosten — "Dit zal wrijving veroorzaken voor legitiem onderzoek en sommig defensief werk" — en zegt dat het hierover wil samenwerken met de gemeenschap van beveiligingsonderzoekers. Er wordt geen detectiepercentage, foutpercentage of beroepsprocedure gepubliceerd.

Het bericht betoogt ook dat de openbaarmakingskalender zelf nu een probleem is. "De branchestandaard van 90 dagen houdt mogelijk geen stand tegen de snelheid en het volume van door LLM's ontdekte bugs," staat er, en het waarschuwt dat modellen "binnenkort zelfs de snelheid en schaal van deskundige menselijke onderzoekers kunnen overtreffen." Dat is een leverancier die betoogt dat de norm waaraan hij zal worden afgemeten, moet worden vervangen, en het is het deel van het verslag met de verste reikwijdte.

Wat is er daarna veranderd?

Op 20 februari 2026 opende Anthropic Claude Code Security als een beperkte onderzoekspreview voor Enterprise- en Team-klanten, met gratis versnelde toegang voor open-source-onderhouders — de capaciteit werd vijftien dagen na het onderzoek als product uitgebracht. VentureBeat berichtte over de lancering en zei dat het Anthropic had gevraagd naar het percentage valse positieven voor en na zelfverificatie, naar het aantal openbaar gemaakte kwetsbaarheden met doorgevoerde patches versus nog in triage, en naar de waarborgen die gebruik door aanvallers onderscheiden van gebruik door verdedigers; het meldde dat de hoofdonderzoeker van het project niet beschikbaar was en dat het bedrijf weigerde specifieke mechanismen voor aanvalsdetectie te delen.

Ook de patches bleven in beweging, en niet altijd in één richting. De fix van CGIF voor de allocatie die Anthropic beschreef, verscheen in v0.5.1 op 19 januari 2026; op 21 februari 2026 verhielp pull request #103 een 32-bits integer-overflow die door diezelfde allocatieberekening was geïntroduceerd, de volgende dag uitgebracht als v0.5.2 voor GIF's met het maximum van 65.535 bij 65.535 pixels. Het blijkt dat het repareren van een grenswaardenberekening zelf een kleine bron van grenswaardenbugs is.

Het nummer correct lezen

Anthropics eigen zin is "meer dan 500 ernstige kwetsbaarheden". Axios, dat als eerste door het bedrijf werd ingelicht, beschreef ze op de dag van publicatie als "meer dan 500 voorheen onbekende zero-day-kwetsbaarheden", elk gevalideerd door een lid van Anthropics team of een externe beveiligingsonderzoeker. Beide beschrijvingen verwijzen naar dezelfde set, maar slechts één is de formulering van de leverancier, en geen van beide gaat vergezeld van een lijst, een CVE-toewijzing of een ernstverdeling. De telling is van Anthropic, de ernstbeoordelingen zijn van Anthropic, en de drie projecten die in het bericht worden behandeld, zijn de enige die het publiek kan controleren.

De daaropvolgende onafhankelijke analyse nam het aantal grotendeels voor lief en discussieerde over wat het betekende. Mitch Ashley van Futurum Group schreef op 24 februari 2026 dat het resultaat "meer uitmaakt vanwege wat de methode onthult dan vanwege het aantal", en dat de echte beperking stroomafwaarts ligt: "Meer kwetsbaarheden sneller aan het licht brengen verkleint het aanvalsoppervlak niet. Het bouwt een grotere wachtrij op vóór een stroomafwaarts proces dat het volume niet aankan." Dat is een kritiek op de openbaarmakingspijplijn in plaats van op de bevinding, en ze komt uit bij hetzelfde punt dat Anthropic opwierp over termijnen van 90 dagen.

Wat het dossier niet vaststelt

Het archief beoordeelt dit record met betrouwbaarheid A, ernst info, zonder dat er werkelijk letsel is vastgelegd en zonder disputemarkering. Die beoordeling gaat over hoe goed de gebeurtenis is gedocumenteerd, niet over hoe goed de onderliggende bewering is geaudit, en dat verschil is het vasthouden waard. Niemand buiten Anthropic heeft de 500 geverifieerd. Er is geen percentage valse positieven gepubliceerd. De patches voor de drie genoemde projecten zijn echt en dateerbaar, en ze zijn de sterkste beschikbare ondersteuning — maar ze ondersteunen drie voorbeelden, niet het totaal.

A self-built HTML card with a small blue kicker reading 'Evidence ledger', headed 'Established, reported, and not established', subtitled 'What the public record supports about the 5 February 2026 research'. Three tinted columns. Green, Established: Anthropic published the research on 5 February 2026 under the Frontier Red Team byline; the post reports more than 500 validated high-severity vulnerabilities found without custom scaffolding or specialised prompting; the three named projects were patched between 19 and 26 January 2026 by commits and pull requests that match the described defects; cyber-specific activation probes and the possibility of real-time traffic blocking were announced with the model. Amber, Reported but not published: the full count, the per-project breakdown, a CVE list and any severity distribution; Anthropic's own validation stands behind both the count and the severity ratings; the 90-day disclosure window warning is the vendor's own assessment of its pipeline. Red, Not established: any independent audit of the 500 figure, a published false-positive rate, or which specific commits correspond to which specific reports. A footer lists the sources: the Anthropic post, the ghostpdl, OpenSC and cgif repositories, Axios on 5 February 2026, VentureBeat on 23 February 2026 and Futurum Group on 24 February 2026.

Wat dan overblijft, is een goed gedocumenteerde aankondiging met een controleerbare kern en een niet-controleerbaar restant: een leverancier die een capaciteit meldt, drie upstream-diffs die overeenkomen met zijn beschrijving van de bugs, en een verklaarde intentie om misbruik van die capaciteit op de modellaag te beteugelen. Het archief bergt het op als beleid, wat het juiste schap is. De capaciteitsclaim zal worden beslecht door degene die de vierde patch publiceert.