
CVE-2026-75130: Context7's MCP-documentatieserver scoort 9,0, en de vermelding noemt geen gepatchte versie
- OrcaNIEUWOrcaCyber: MiniMax M3.1 Flash Abliterated2026-10-29orca/orcacyber-minimax-m3.1-flash
- OrcaNIEUWOrcaCyber: GLM 5.3 Flash Abliterated2026-10-2793 tok/s
- OrcaNIEUWOrcaCyber: Qwen3.8 Flash Next Abliterated2026-10-26$0.80 / $1.60 per 1 mln tokens · 260 tok/s
- OrcaNIEUWOrcaCyber: MiMo V2.6 Flash Abliterated2026-10-26$0.80 / $1.60 per 1 mln tokens · 92 tok/s
- MoonshotNIEUWMoonshotAI: Kimi K3.1 Pro2026-10-2446Intelligentie
- OrcaNIEUWOrcaCyber: DeepSeek V4.1 Flash Abliterated2026-10-23$0.80 / $1.60 per 1 mln tokens · 104 tok/s
- minimaxNIEUWMiniMax: M3.1 Flash2026-10-1929Intelligentie
- OrcaNIEUWOrca: OrcaCyber Ultra 1.02026-10-17$5.00 / $10.00 per 1 mln tokens · 65 tok/s
- deepseekNIEUWDeepSeek: DeepSeek V4.1 Flash 10172026-10-1733Intelligentie
- DeepSeekNIEUWDeepSeek: DeepSeek V4.1 Flash2026-10-1740Intelligentie
- OrcaOrca: OrcaCyber Zero 1.52026-10-10$3.00 / $7.50 per 1 mln tokens · 101 tok/s
- openaiOpenAI: GPT-6.1 Sol2026-09-2955Intelligentie
- anthropicAnthropic: Claude Sonnet 5.52026-09-2854Intelligentie
- typesafeTypeSafe: Jev 1.132026-09-24$0.04 / $0.00 per 1 mln tokens · 180 tok/s
- OpenAIOpenAI: GPT-6 Luna2026-09-2228Intelligentie
- OpenAIOpenAI: GPT-6 Sol2026-09-2248Intelligentie
- AnthropicAnthropic: Claude Opus 5.52026-09-2258Intelligentie
- xiaomiXiaomi: MiMo-V2.6-Flash2026-09-2127Intelligentie
- xiaomiXiaomi: MiMo-V2.6-Pro2026-09-2130Intelligentie
- xAIGrok 4.72026-09-2134Intelligentie
Op 18 augustus 2026 publiceerde VulnCheck CVE-2026-75130 tegen Context7, de bibliotheekdocumentatieserver die Upstash voor het Model Context Protocol draait en die coding agents bevragen voor versiespecifieke documentatie. De fout zit in de functie die Upstash ‘Custom AI Instructions’ noemt: een bibliotheekeigenaar koppelt richtlijnen aan een documentatie-item, Context7 levert die richtlijnen in het contextvenster van elke agent die de bibliotheek opzoekt, en niets op dat pad sanitiseert ze. Noma Security, waarbij Eli Ainhorn, senior AI-kwetsbaarheidsonderzoeker, als ontdekker wordt vermeld, heeft aangetoond dat een vergiftigde vermelding een verbonden agent kan aanzetten om .env-bestanden in de hoofdmap van het project te lezen, hun inhoud als een issue naar een GitHub-repository te sturen die de aanvaller beheert, en lokale mappen te verwijderen onder het mom van ‘opruiming’ — allemaal naar aanleiding van een routinematig documentatieverzoek. Er is geen slachtoffer geregistreerd.De rest van de gedocumenteerde agentincidenten, elk met een eigen ernst, betrouwbaarheidsgraad en markering voor betwisting, staat in het AI-incidentenarchief, waar de omliggende vermeldingen van deze registratie naast deze kunnen worden gelezen.
De server van Context7 is klein, en dat is het deel dat je eerst moet begrijpen. In het artikel van Noma staat dat het twee tools beschikbaar stelt, resolve-library-id en query-docs, en dat het zelf geen code kan uitvoeren, geen bestanden kan schrijven of toegang tot het netwerk kan krijgen. Elke gedocumenteerde impact wordt uitgevoerd door de agent aan de andere kant, die wel toegang heeft tot het bestandssysteem, de shell en het netwerk op de machine van de ontwikkelaar. Het npm-register laat zien hoe groot de geïnstalleerde basis is: @upstash/context7-mcp werd 4.064.176 keer gedownload in de dertig dagen van 22 juli tot 20 augustus 2026, de periode rond de publicatie.
Het mechanisme: één vergiftigde bibliotheek, elke agent die er query's op uitvoert
De demonstratie van Noma, beschreven in het ContextCrush-artikel van 5 maart 2026, verliep in drie stappen die door de agent worden uitgevoerd en niet door de server. Er werd een bibliotheek geregistreerd in het register van Context7 met vergiftigde regels eraan gekoppeld. Instructies in die regels droegen de agent op om elk .env-bestand in de projecthoofdmap te zoeken en te lezen; verdere instructies droegen de agent op om de inhoud als een issue te posten in een GitHub-repository die door een aanvaller wordt beheerd; een laatste set instructies droeg de agent op om lokale mappen en bestanden te verwijderen voor “opschoning.” Het verzoek dat dit alles in context haalt, is een doodgewoon verzoek: een programmeerassistent vragen om hulp bij een bibliotheek.
De reden dat dit een supplychainprobleem is en geen gewone promptinjectie, is waar de payload zich bevindt. De aanvaller bereikt nooit de machine van het slachtoffer en hoeft nooit tekst te plaatsen in een document dat de gebruiker opent. De vergiftigde instructies staan in het eigen register van Context7, worden gehost en aangeboden door de eigen infrastructuur van Context7 en arriveren via hetzelfde vertrouwde kanaal als de legitieme documentatie, niet te onderscheiden van die documentatie. Noma merkt op dat de vertrouwensscore van Context7, die bibliotheken beoordeelt op basis van de GitHub-geschiedenis erachter, hier niet tegen beschermt, omdat een langdurig bestaand account kan worden gekocht, gekaapt of gefabriceerd. De samenvatting die het bedrijf zelf van het structurele punt geeft, is bot: “Het aanvalsoppervlak is niet wat de MCP-server kan doen. Het zit in wat die de AI-agent kan laten doen.”
Twee scores voor één bug
Het beveiligingsadvies bevat CVSS 3.1 9.0 (kritiek) en CVSS 4.0 6.4 (gemiddeld). Beide vectoren zijn door VulnCheck aangeleverd als de toewijzende CNA, en NVD neemt beide ongewijzigd over, waarbij elk aan VulnCheck wordt toegeschreven. Het verschil in scores is geen vergissing; de twee frameworks rekenen dezelfde schade toe aan verschillende machines. CVSS 3.1 markeert Scope als Changed — de injectie gaat van de server naar de machine van de ontwikkelaar en verder — en laat daarom de volledige hoge impact op vertrouwelijkheid, integriteit en beschikbaarheid van de mogelijkheden van de agent op vol gewicht wegen. CVSS 4.0 vervangt Scope door afzonderlijke metrics voor het kwetsbare systeem en het daaropvolgende systeem: het registreert geen impact op vertrouwelijkheid, integriteit of beschikbaarheid voor Context7 zelf (VC:N/VI:N/VA:N) en een hoge impact op de stroomafwaartse systemen (SC:H/SI:H/SA:H), die zijn formule minder zwaar weegt. De server is de koerier, niet het slachtoffer.
De splitsing zet zich voort in de databases. Het advies van GitHub, GHSA-97r6-3rgm-v39r, werd gepubliceerd om 18:32 UTC op 18 augustus, een half uur na de CVE, en de ernst in de samenvatting luidt gemiddeld hoewel de CVSS 3.1-vector in hetzelfde record 9,0 scoort. De EU Vulnerability Database van ENISA geeft de vermelding weer als EUVD-2026-61099 en bewaart een basisscore van 6,4 alleen onder versie 4.0. Het archiefrecord dat dit artikel volgt, beoordeelt het incident als hoog — wat geen van de twee gepubliceerde scores is — en het is de beoordeling van het archief, niet een eigen meting.

Een CVE die in augustus werd gepubliceerd voor een onthulling in maart
De CVE-identificatie werd gereserveerd op 17 augustus 2026 en gepubliceerd om 18:02 UTC op 18 augustus, de datum die het record vermeldt. De CNA-container bevat ook een tweede datum die niet op de aggregatorpagina's verschijnt: datePublic, 5 maart 2026 — vijf en een halve maand voordat de identificatie bestond, en dezelfde dag dat Noma ContextCrush publiceerde. De enige technische verwijzing in het advies is dat stuk uit maart, dat VulnCheck tagt voor zowel technische beschrijving als exploit.
Noma's tijdlijn voor openbaarmaking verklaart het gat. Er staat dat het de kwetsbaarheid op 18 februari 2026 aan Upstash meldt met een volledig rapport en proof of concept, vermeldt dat Upstash de bevindingen op 19 februari accepteerde en met herstel begon, stelt dat een oplossing op 23 februari “naar productie is uitgerold met regelsanitisering en guardrails”, en dateert de openbare bekendmaking en de definitieve verificatie door Noma op 5 maart. Volgens Noma's relaas was de bug van februari binnen enkele dagen opgelost.
De datums in het npm-register passen zo bij die tijdlijn dat het getroffen bereik er vreemd uitziet. @upstash/context7-mcp 2.1.2 werd gepubliceerd op 23 februari 2026 om 10:06 UTC, de dag waarop volgens Noma de fix in productie ging; de changelog-regel luidt “Remove unnecessary warning and update tool descriptions.” 2.1.3 volgde op 4 maart 2026, de dag voor Noma's write-up, met opmerkingen over het afwijzen van GET-verzoeken op MCP-endpoints en het toevoegen van een source-veld aan zoekresultaten. Geen van beide releasenotities vermeldt sanitisatie, guardrails of de injectie. Het getroffen bereik van de CNA eindigt bij 2.1.2, waardoor 2.1.3 de eerste versie daarbuiten is.
Drie interpretaties passen bij die datums, en noch VulnCheck noch Noma vermeldt welke de juiste is. De eerste — beargumenteerd door Digital Applied in het stuk van 18 augustus en herhaald door AI Security Wire op 22 augustus — is dat de fix een regressie kende: de build die februari's patch bevatte, valt binnen het getroffen bereik van augustus. De tweede is dat het bereik simpelweg is verankerd aan de build die de onderzoeker heeft getest, en dat 2.1.3, de dag vóór de openbaarmaking uitgebracht, de werkelijke grens is — een gevolgtrekking die verschillende aggregators mechanisch maken, waaronder Feedly, dat “update naar versie 2.1.3 of later” als mitigerende maatregel vermeldt. De derde is dat de februarifix werd toegepast waar de regels worden geserveerd in plaats van in het clientpakket, in welk geval een npm-versiebereik de fix helemaal niet beschrijft. Een stille securityfix komt vaak genoeg voor dat de afwezigheid van een bijpassende changelog-vermelding hoe dan ook niets beslecht.

Wat is vastgesteld, en wat niet
• Vastgesteld door het primaire record. De CVE-identificatie, de publicatie ervan op 18 augustus, VulnCheck als CNA, de CWE-1427-classificatie voor onjuiste neutralisatie van voor LLM-prompting gebruikte invoer, de toeschrijving aan Eli Ainhorn van Noma Security, en een getroffen bereik van Context7 tot en met 2.1.2.
• Vastgesteld door Noma's onderzoek. Het injectiepad via Custom AI Instructions, het proof-of-concept in drie stappen, de observatie dat de server alleen resolve-library-id en query-docs aanbiedt, en de stelling dat voor de bug van februari geen bewijs van misbruik in het wild is waargenomen.
• Vastgelegd door het register. De publicatiedatum van 2.1.2, 23 februari 2026, de publicatiedatum van 2.1.3, 4 maart 2026, en een pakketlijn die inmiddels voorbij 4.0 is gegaan tot 4.4.4 op 19 oktober 2026.
• Niet vastgesteld: of huidige builds getroffen zijn. Geen enkele bron zegt dat de 4.x-lijn kwetsbaar is, en geen enkele bron zegt dat ze veilig is. Het CVE-record, het VulnCheck-advisory en het GitHub-advisory noemen allemaal geen gepatchte versie, en de lijst met kwetsbare versiebereiken in het GitHub-advisory is leeg.
• Niet vastgesteld: geen slachtoffers of gebruik in het wild. Het archief registreert echte schade als onwaar. CISA's aanvulling van het record op 19 augustus scoorde Exploitatie als "geen", Automatiseerbaar als "nee" en Technische impact als "totaal"; de kwetsbaarheid staat niet in de KEV-catalogus; de spiegel van ENISA registreert een EPSS van 0,49 procent. Het onderzoek van Noma is een demonstratie, geen incidentrapport.
• Niet vastgesteld: de regressielezing zelf. Die berust op een datumcoïncidentie tussen een fix-tijdlijn en een npm-publicatie, en geen primaire bron stelt dat hetzelfde codepad twee keer is mislukt.

Corroboratie: herhaling, en stilte waar het ertoe doet
De documenten die met het record overeenkomen, zijn grotendeels daarvan afgeleid. Het advies van VulnCheck herhaalt de CVE-tekst en voegt de zwakheidsclassificatie en de erkenning van de onderzoeker toe. Het GitHub-advies is een alias van dezelfde indiening, dezelfde avond gepubliceerd, zonder versiebereiken en zonder onafhankelijke beoordeling. Het item van ENISA is een spiegel. Digital Applied, een van de twee bronnen die het archief citeert, publiceerde zijn analyse op 18 augustus en werkte die op 22 augustus bij met nieuwe registeropvragingen; AI Security Wire publiceerde op 22 augustus een tweede artikel. Beide herhalen het advies en geven de regressie-inferentie door, en geen van beide beweert die onafhankelijk te hebben geverifieerd.
We vonden geen berichtgeving in de nieuwsmedia over de CVE op 29 oktober 2026 — geen item van BleepingComputer, The Register of SecurityWeek — en de resultaten waren CVE-aggregatorpagina's, geen journalistieke berichtgeving. Die afwezigheid is van belang voor hoe het record gelezen moet worden: het archief kent er een A toe, goed gedocumenteerd met primaire bronnen die overeenkomen, en de primaire bronnen komen inderdaad overeen, maar de overeenstemming hier is tussen een CNA-record en het onderzoek dat het citeert, niet tussen twee onafhankelijke metingen. Meerdere aggregatorpagina's voegen claims toe die hun bronnen niet ondersteunen; Feedly's vermelding bijvoorbeeld stelt dat er een patch beschikbaar is en noemt 2.1.3, wat geen enkel advies doet, terwijl de pagina van VulDB een botcontrole teruggaf in plaats van inhoud en helemaal niet gelezen kon worden.
Wat is er veranderd, en wat niet
Voor de bug van februari handelde Upstash binnen enkele dagen: volgens Noma's relaas werd de bug op 19 februari geaccepteerd en op 23 februari opgelost. Voor de augustusvermelding is de enige leveranciersverklaring waarnaar de CVE verwijst een LinkedIn-post van Upstash, daar getagd als leveranciersadvies, waarvan wij de inhoud niet zonder sessie konden lezen. Geen enkel GitHub-veiligheidsadvies dat aan het repository is gekoppeld, bevat een vaste versie, en de NVD-vermelding staat op status Deferred, zonder CPE-configuraties en met een laatste wijziging van 22 oktober 2026, zodat NVD's eigen analyse niet in het record staat.
Het pakket zelf werd nog steeds uitgebracht. Tussen 20 april 2025 en 23 oktober 2026 publiceerde het upstash/context7-repository 163 releases, en geen van hun release notes vermeldt deze CVE of beschrijft het sanitiseren van de aangepaste instructies die de injectie bevatten. Dat is een registratie van wat de maintainers besloten vast te leggen, geen bewijs dat er niets is opgelost.
Wat de registratie een operator achterlaat, is exposure management, geen patchregel. De aanbevelingen van Noma draaien om het beoordelen van MCP-integraties en het inspecteren van wat tijdens de uitvoering tussen agent en server passeert; de voorgestelde acties van OpenCVE zijn upgraden, de functie Custom AI Instructions uitschakelen of beperken en invoervalidatie aan de server toevoegen. De operationele versie van al dat alles is dezelfde drie stappen: de MCP-serverversie vastpinnen in plaats van op latest te blijven zweven, productie-inloggegevens buiten voor de agent leesbare plaintext-omgevingsbestanden houden, en toolresponses behandelen als onvertrouwde invoer in plaats van als documentatie die de agent mogelijk volgt.
Tien weken na publicatie eindigt het openbare dossier nog steeds waar het op 18 augustus eindigde: een identificatie, twee scores die twee banden uiteenliggen, een getroffen bereik waarvan de bovengrens een build is die in februari is uitgeleverd, en geen genoemde oplossing. Wie CVE-2026-75130 triageert, moet beslissen op basis van wat diens agents kunnen bereiken, omdat het dossier niet vermeldt welke versie moet worden geïnstalleerd.
