
CVE-2026-75130: Context7:s MCP-dokumentationsserver får betyget 9,0, och posten anger ingen åtgärdad version
- OrcaNYOrcaCyber: MiniMax M3.1 Flash Abliterated2026-10-29orca/orcacyber-minimax-m3.1-flash
- OrcaNYOrcaCyber: GLM 5.3 Flash Abliterated2026-10-2793 tok/s
- OrcaNYOrcaCyber: Qwen3.8 Flash Next Abliterated2026-10-26$0.80 / $1.60 per 1M tokens · 260 tok/s
- OrcaNYOrcaCyber: MiMo V2.6 Flash Abliterated2026-10-26$0.80 / $1.60 per 1M tokens · 92 tok/s
- MoonshotNYMoonshotAI: Kimi K3.1 Pro2026-10-2446Intelligens
- OrcaNYOrcaCyber: DeepSeek V4.1 Flash Abliterated2026-10-23$0.80 / $1.60 per 1M tokens · 104 tok/s
- minimaxNYMiniMax: M3.1 Flash2026-10-1929Intelligens
- OrcaNYOrca: OrcaCyber Ultra 1.02026-10-17$5.00 / $10.00 per 1M tokens · 65 tok/s
- deepseekNYDeepSeek: DeepSeek V4.1 Flash 10172026-10-1733Intelligens
- DeepSeekNYDeepSeek: DeepSeek V4.1 Flash2026-10-1740Intelligens
- OrcaOrca: OrcaCyber Zero 1.52026-10-10$3.00 / $7.50 per 1M tokens · 101 tok/s
- openaiOpenAI: GPT-6.1 Sol2026-09-2955Intelligens
- anthropicAnthropic: Claude Sonnet 5.52026-09-2854Intelligens
- typesafeTypeSafe: Jev 1.132026-09-24$0.04 / $0.00 per 1M tokens · 180 tok/s
- OpenAIOpenAI: GPT-6 Luna2026-09-2228Intelligens
- OpenAIOpenAI: GPT-6 Sol2026-09-2248Intelligens
- AnthropicAnthropic: Claude Opus 5.52026-09-2258Intelligens
- xiaomiXiaomi: MiMo-V2.6-Flash2026-09-2127Intelligens
- xiaomiXiaomi: MiMo-V2.6-Pro2026-09-2130Intelligens
- xAIGrok 4.72026-09-2134Intelligens
Den 18 augusti 2026 publicerade VulnCheck CVE-2026-75130 mot Context7, den dokumentationsserver för bibliotek som Upstash driver för Model Context Protocol och som kodagenter frågar efter versionsspecifik dokumentation. Sårbarheten ligger i funktionen som Upstash kallar Custom AI Instructions: en biblioteksägare kopplar vägledning till en dokumentationspost, Context7 levererar den vägledningen till kontextfönstret för varje agent som slår upp biblioteket, och ingenting på den vägen sanerar den. Noma Security, vars senior AI-sårbarhetsforskare Eli Ainhorn krediteras som upptäckare, visade att en förgiftad post kan få en ansluten agent att läsa .env-filer i projektets rot, skicka deras innehåll som ett ärende till ett GitHub-förråd som angriparen kontrollerar och radera lokala mappar under förevändning att det handlar om "städning" – allt från en rutinmässig dokumentationsförfrågan. Inget offer registreras. Resten av de dokumenterade agentincidenterna, var och en med sin egen allvarlighetsgrad, konfidensgrad och tvisteflagga, finns i AI-incidentarkivet, där posterna intill den här posten kan läsas bredvid den.
Context7-servern är liten, och det är den delen som är värd att förstå först. Nomas genomgång noterar att den exponerar två verktyg, resolve-library-id och query-docs, och att den inte kan köra kod, skriva filer eller nå nätverket på egen hand. Varje dokumenterad påverkan utförs av agenten i andra ändan, som faktiskt har åtkomst till filsystem, skal och nätverk på utvecklarens maskin. npm-registret visar hur stor den installerade basen är: @upstash/context7-mcp laddades ned 4,064,176 gånger under de trettio dagarna från 22 juli till 20 augusti 2026, fönstret kring publiceringen.
Mekanismen: ett förgiftat bibliotek, varje agent som frågar det
Nomas demonstration, som beskrevs i ContextCrush-rapporten den 5 mars 2026, genomfördes i tre steg som agenten utför snarare än servern. Den registrerade ett bibliotek i Context7s register med förgiftade regler bifogade. Instruktioner i dessa regler styrde agenten att söka efter och läsa varje .env-fil i projektets rot; ytterligare instruktioner styrde den att lägga upp innehållet som en issue i ett GitHub-repository kontrollerat av angriparen; en sista uppsättning instruktioner sade åt den att radera lokala mappar och filer för ”städning”. Förfrågan som drar in allt detta i kontexten är en helt vanlig sådan – att ber en kodassistent om hjälp med ett bibliotek.
Anledningen till att detta är ett leveranskedjeproblem snarare än vanlig promptinjektion är var nyttolasten ligger. Angriparen når aldrig offrets maskin och behöver aldrig plantera text i ett dokument som användaren öppnar. De förgiftade instruktionerna ligger i Context7:s eget register, hostas och levereras av Context7:s egen infrastruktur och kommer via samma betrodda kanal som den legitima dokumentationen, omöjliga att skilja från den. Noma noterar att Context7:s förtroendepoäng, som betygsätter bibliotek utifrån GitHub-historiken bakom dem, inte skyddar mot detta, eftersom ett långlivat konto kan köpas, kapas eller tillverkas. Företagets egen sammanfattning av den strukturella poängen är rak: ”Attackytan är inte vad MCP-servern kan göra. Den ligger i vad den kan få AI-agenten att göra.”
Två poäng för en bugg
Säkerhetsrådgivningen innehåller CVSS 3.1 9,0 (kritisk) och CVSS 4.0 6,4 (medel). Båda vektorerna levererades av VulnCheck i egenskap av tilldelande CNA, och NVD listar båda oförändrade och anger VulnCheck som källa för var och en. Uppdelningen är inte ett misstag; det är de två ramverken som beräknar samma skada på olika maskiner. CVSS 3.1 markerar Scope som Changed – injektionen går från servern till utvecklarens maskin och vidare – och räknar därför den höga påverkan på konfidentialitet, integritet och tillgänglighet som agentens kapaciteter kan ge med full vikt. CVSS 4.0 ersätter Scope med separata mätvärden för det sårbara systemet och det efterföljande systemet: det registrerar ingen påverkan på konfidentialitet, integritet eller tillgänglighet för Context7 självt (VC:N/VI:N/VA:N) och hög påverkan på systemen nedströms (SC:H/SI:H/SA:H), vilket dess formel viktar mindre tungt. Servern är kuriren, inte offret.
Splittringen fortplantar sig in i databaserna. GitHubs rådgivning, GHSA-97r6-3rgm-v39r, publicerades 18:32 UTC den 18 augusti, en halvtimme efter CVE:n, och dess sammanfattade allvarlighetsgrad anges som medel trots att CVSS 3.1-vektorn i samma post ger 9,0. ENISA:s EU Vulnerability Database speglar posten som EUVD-2026-61099 och lagrar ett baspoäng på 6,4 endast under version 4.0. Arkivposten som den här artikeln följer graderar incidenten hög – vilket inte är något av de två publicerade betygen – och det är arkivets betyg, inte en egen mätning.

Ett CVE publicerat i augusti för ett avslöjande i mars
CVE-identifieraren reserverades den 17 augusti 2026 och publicerades kl. 18:02 UTC den 18 augusti, vilket är det datum som posten har. CNA-containern innehåller också ett andra datum som inte visas på aggregatorsidorna: datePublic, 5 mars 2026 – fem och en halv månad innan identifieraren existerade, och samma dag som Noma publicerade ContextCrush. Rådgivningens enda tekniska referens är den marsartikeln, som VulnCheck taggar för både teknisk beskrivning och exploit.
Nomas tidslinje för offentliggörandet förklarar gapet. Den rapporterar felet till Upstash den 18 februari 2026 med en fullständig rapport och ett konceptbevis, dokumenterar att Upstash accepterade fynden och började åtgärda dem den 19 februari, säger att en fix ”driftsattes i produktion med regelsanering och skyddsräcken” den 23 februari och daterar det offentliga offentliggörandet och Nomas slutliga verifiering till den 5 mars. Enligt Nomas redogörelse löstes februarifelet inom några dagar.
Datumangivelserna i npm-registret sammanfaller med den tidslinjen på ett sätt som får det drabbade intervallet att se märkligt ut. @upstash/context7-mcp 2.1.2 publicerades den 23 februari 2026 kl. 10:06 UTC, dagen då Noma uppger att fixen nådde produktion; dess changelog-rad lyder ”Ta bort onödig varning och uppdatera verktygsbeskrivningar.” 2.1.3 följde den 4 mars 2026, dagen före Nomas artikel, med anteckningar om att avvisa GET-förfrågningar på MCP-slutpunkter och att lägga till ett källfält i sökresultat. Ingen av versionsanteckningarna nämner sanering, skyddsräcken eller injektionen. CNA:s drabbade intervall slutar vid 2.1.2, vilket gör 2.1.3 till den första versionen utanför det.
Tre tolkningar överensstämmer med dessa datum, och varken VulnCheck eller Noma anger vilken som är korrekt. Den första, som Digital Applied argumenterar för i sin artikel den 18 augusti och som AI Security Wire upprepade den 22 augusti, är att fixen regredierade: den build som innehöll februaripatchen ligger inom det påverkade intervall som gäller för augusti. Den andra är att intervallet helt enkelt är ankrat till den build som forskaren testade, och att 2.1.3, som släpptes dagen före offentliggörandet, är den verkliga gränsen – en slutsats som flera aggregatorer drar mekaniskt, inklusive Feedly, som listar "uppdatera till version 2.1.3 eller senare" som motåtgärd. Den tredje är att februarifixen tillämpades där reglerna serveras i stället för i klientpaketet, varvid ett npm-versionsintervall över huvud taget inte beskriver fixen. En tyst säkerhetsfix är vanlig nog att frånvaron av en matchande post i ändringsloggen inte avgör något åt något håll.

Vad som är fastställt, och vad som inte är det
• Fastställt genom primärposten. CVE-identifieraren, dess publicering den 18 augusti, VulnCheck som CNA, CWE-1427-klassificeringen för felaktig neutralisering av indata som används för LLM-promptning, tillerkännandet till Eli Ainhorn på Noma Security och ett påverkat intervall för Context7 till och med 2.1.2.
• Fastställt av Nomas forskning. Injektionsvägen via Custom AI Instructions, trestegsproof of concept, observationen att servern endast exponerar resolve-library-id och query-docs, samt uttalandet att inga bevis på utnyttjande i det vilda observerades för februaribuggen.
• Fastställt av registret. Publiceringsdatumet för 2.1.2 den 23 februari 2026, publiceringsdatumet för 2.1.3 den 4 mars 2026 och en paketlinje som sedan dess har passerat 4.0 och nått 4.4.4 den 19 oktober 2026.
• Ej fastställt: huruvida nuvarande byggen är påverkade. Ingen källa säger att 4.x-serien är sårbar, och ingen källa säger att den är fri från sårbarheten. CVE-posten, VulnChecks rådgivning och GitHubs rådgivning anger alla ingen åtgärdad version, och GitHubs rådgivnings lista över sårbara versionintervall är tom.
• Inte fastställt: något offer eller användning i verklig miljö. Arkivet registrerar verklig skada som falskt. CISA:s berikning av posten den 19 augusti bedömde Exploitation som "none", Automatable som "no" och Technical Impact som "total"; bristen finns inte i KEV-katalogen; ENISA:s spegel registrerar en EPSS på 0,49 procent. Nomas forskning är en demonstration, inte en incidentrapport.
• Ej fastställt: själva regressionstolkningen. Det vilar på att ett datum sammanfaller mellan en tidslinje för en korrigering och en npm-publicering, och ingen primärkälla hävdar att samma kodväg misslyckades två gånger.

Bekräftelse: upprepning och tystnad där det spelar roll
De dokument som stämmer överens med posten är till stor del härledda från den. VulnCheck:s rådgivning upprepar CVE-texten och tillägger svaghetsklassificering och erkännande av forskaren. GitHub-rådgivningen är ett alias för samma inlämning, publicerad samma kväll, utan versionsintervall och utan oberoende granskning. ENISAs post är en spegel. Digital Applied, en av de två källor som arkivet citerar, publicerade sin analys den 18 augusti och uppdaterade den den 22 augusti med nya registeruttag; AI Security Wire publicerade en andra artikel den 22 augusti. Båda upprepar rådgivningen och vidarebefordrar slutsatsen om regressionen, och ingen av dem uppger att de har verifierat den självständigt.
Vi hittade ingen nyhetsredaktionell bevakning av CVE:n den 29 oktober 2026 – inget inslag från BleepingComputer, The Register eller SecurityWeek – och resultaten var CVE-aggregatorsidor snarare än rapportering. Denna frånvaro är viktig för hur uppgiften bör läsas: arkivet betygsätter den som A, väl dokumenterad med primärkällor som stämmer överens, och primärkällorna stämmer verkligen överens, men överensstämmelsen här är mellan en CNA-post och den forskning den citerar, inte mellan två oberoende mätningar. Flera aggregatorsidor tillför påståenden som deras källor inte stöder; Feedlys post anger till exempel att en patch är tillgänglig och namnger 2.1.3, vilket ingen säkerhetsbulletin gör, medan VulDB:s sida returnerade en botkontroll i stället för innehåll och inte kunde läsas alls.
Vad förändrades, och vad förändrades inte
För februarifelet reagerade Upstash inom några dagar: det accepterades den 19 februari och åtgärdades den 23 februari, enligt Nomas redogörelse. För augustiposten är det enda leverantörsuttalande som CVE refererar till ett LinkedIn-inlägg från Upstash, där det är märkt som leverantörsrådgivning och vars innehåll vi inte kunde läsa utan en session. Ingen GitHub-säkerhetsrådgivning som omfattar repot innehåller en åtgärdad version, och NVD:s post står med status Deferred utan CPE-konfigurationer och med senaste ändring den 22 oktober 2026, så NVD:s egen analys finns inte i posten.
Själva paketet fortsatte att levereras. Mellan 20 april 2025 och 23 oktober 2026 publicerade upstash/context7-repositoriet 163 utgåvor, och ingen av deras versionsanteckningar nämner denna CVE eller beskriver sanering av de anpassade instruktionerna som bär injektionen. Det är en redogörelse för vad underhållarna valde att skriva ned, inte ett bevis på att inget åtgärdades.
Det som posten lämnar åt en operatör är exponeringshantering snarare än en patchlinje. Nomas rekommendationer kretsar kring att granska MCP-integrationer och inspektera vad som passerar mellan agent och server vid körning; OpenCVEs föreslagna åtgärder är att uppgradera, att inaktivera eller begränsa funktionen Custom AI Instructions och att lägga till indatavalidering på servern. Den operativa versionen av allt detta är samma tre drag: lås MCP-serverversionen i stället för att flyta på senaste, håll produktionsautentiseringsuppgifter borta från klartextmiljöfiler som agenten kan läsa, och behandla verktygssvar som otillförlitlig indata snarare än som dokumentation som agenten kan följa.
Tio veckor efter publiceringen slutar det offentliga registret fortfarande där det gjorde den 18 augusti: en identifierare, två poängvärden som ligger två band ifrån varandra, ett påverkat intervall vars övre gräns är en build som släpptes i februari, och ingen namngiven patch. Den som triagerar CVE-2026-75130 måste avgöra utifrån vad deras agenter kan nå, eftersom registret inte anger vilken version de ska installera.
