Hela branschen kom precis överens om att din agent inte ska se dina nycklar. De gömmer dem på fel ställe.
På en vecka levererade Claude Code, Hermes och Codex alla fixar för att stoppa agenter från att se råa autentiseringsuppgifter. Konvergerande patchar är ingen arkitektur: nycklarna ska inte ligga i harnesset alls.
Den här veckan släppte Anthropic en tyst rad i Claude Code-ändringsloggen: "Fixed MCP servers requiring authentication exposing auth-stub tools to the model in headless/SDK mode" [1]. På vanlig svenska — när Claude Code körde headless (sättet det körs i CI och automatiserade agentpipelines) exponerades autentiseringsverktyg som skulle förblivit dolda för modellen: AI:n kunde se autentiseringsverktygens namn, deras parametrar och potentiellt peta i dem. I världens mest använda kodningsagent — 133k stjärnor — läckte autentiseringslagret in på den plats du minst vill ha det: modellens eget kontext.
Det blev fixat. Men fixen är den lilla historien. Den stora är varför varje seriös agentplattform plötsligt slåss samma kamp.
Tre harnessar, en vecka, samma instinkt
Titta på vad som levererades under ett enda 24-timmarsfönster:
- Claude Code patchade auth-stub-läckan ovan och stramade åt MCP-autentiserings-gating [1].
- Hermes (v0.17.0) lade till "Managed Scope" — admin-fastnålade, användarimmutabla hemligheter låsta på filsystemet så att en agentoperatör inte kan åsidosätta dem — plus hemlighetsmaskering i debugdumpar och blockering av exfil-formade MCP-konfigurationer innan de startar [2].
- Codex (v0.141.0) svepte in fjärrkörningstrafik i krypterade Noise-kanaler och började routa plugins efter deras autentiseringsläge [3].
Tre rivaler, tre angreppssätt, en gemensam slutsats: harnesset måste äga hemligheterna, och agenten får aldrig se de råa nycklarna. När konkurrenter konvergerar så där under samma vecka är det ingen modefluga. Det är en kategori som äntligen erkänner vad den är till för.
Nästa problem är spridda autentiseringsuppgifter
Här är haken. Var och en av de fixarna lever inuti harnesset. Och Claude Code-buggen avslöjar det: när autentisering bor i harnesset, precis bredvid modellen, slutar "agenten får aldrig se det" vara ett faktum och blir en egenskap du måste fortsätta konstruera — och ibland misslyckas med, i headless-läge, där ingen människa tittar. Du kan inte deklarera det en gång. Du försvarar det, release efter release.
Men det djupare problemet är inte någon enskild läcka — utan vad som händer när varje harness, varje leverantör och varje användningsfall levererar sitt eget svar. Du får en valv i Claude Code, en valv i Hermes, en valv i Codex, en OAuth-pool här, en hemlighetsfil där — en separat lagring för autentiseringsuppgifter för varje verktyg du kör. Det är spridda autentiseringsuppgifter, och det är nästa problem, inte ett löst sådant.
Spridning är felet även när ingen av silorna läcker. Dina hemligheter kopieras in i var och en för att få det att fungera — fler kopior, fler ställen att stjäla från. Rotation måste ske N gånger, för hand, och den du glömmer är den som bränner dig. Och ingen kan svara på den enda fråga som faktiskt spelar roll — vilken agent använde vilken nyckel, mot vad, när — eftersom svaret är spritt över ett dussin lagringar som inte pratar med varandra. Du kan inte resa en ny valv för varje leverantör och varje arbetsflöde. Det skalarar inte. Det är det som går sönder.
Nycklarna hör inte hemma i harnesset alls
Fixen du aldrig behöver leverera är den där agenten aldrig har autentiseringen från första början. Lägg autentiseringsuppgifterna i en auktoritet som ligger utanför varje harness — inte en valv per leverantör, en under dem alla. Agenten — i Claude Code, i Codex, i Hermes, det spelar ingen roll — efterfrågar en namngiven åtgärd och får ett avgränsat, efemärt autentiseringsobjekt injicerat för just det, hämtat live och borta efteråt. Det finns ingen auth-stub i modellens kontext att av misstag exponera, eftersom autentiseringen aldrig var i harnesset. Det finns ingen spridning, eftersom det finns en lagring istället för en per verktyg — rotera en gång, inte N gånger. Och varje åtkomst hamnar på ett enda audit-spår istället för att spridas över ett dussin silor som inte kan svara på vem-som-använde-vad. (Att hålla hemligheten borta från där koden körs ligger nära toppen av reglerna ett verktyg för autentiseringsuppgifter ska följa — branschen har precis tillbringat en vecka med att upptäcka det.)
Och det här är den del som är en säkerhetsgräns, inte en bekvämlighet: autentiseringsuppgiften får inte leva i samma system som agenten. Lägg dem på samma plats och de delar skaderadie — en promptinjektion, en förgiftad MCP-server, en delad debugdump, nästa auth-stub-bugg, och vad som än når agenten når nycklarna med den. Därför är synlighet i sig självt intrånget: i ögonblicket en hemlighet hamnar någonstans där agenten kan se den, behandlar du den som redan läckt och roterar den — så som varje omsorgsfullt team behandlade den Claude Code-auth-stub dagen den levererades. Håll autentiseringsuppgiften på armlängds avstånd, i ett system där agenten bara kan fråga — aldrig läsa, aldrig hålla — och en fullständigt komprometterad agent kan fortfarande inte exfiltrera det som aldrig var inom räckhåll. Den kan begära en åtgärd. Den kan inte gå iväg med nyckeln. Avståndet är försvaret; en valv i processen har det inte till något pris.
Det är den linje Clavitor drar. Hela fältet har precis bevisat principen — agenten ska inte se nycklarna. Vi tycker bara inte att du ska behöva bevisa det om igen inuti varje harness du kör, och vi tycker inte att det som håller dina nycklar ska vara samma sak som en angripare precis komprometterat.
Ge harness-teamen cred: admin-fastnålade hemligheter, krypterade reläer, fail-closed-standardvärden är riktig, bra ingenjörskonst. Men en fixa-veckan för en läcka som dyker upp om och om igen är ingen arkitektur — det är ett symtom. Arkitekturen är att nycklarna inte finns där att läcka.
När tre konkurrenter patchar samma sår under samma vecka är såret designen. Agenten ska inte se dina nycklar — så sluta ha dem där den kan.
Clavitor (@clavitorai) är valvet för autentiseringsuppgifter byggt för AI-agenter, och mot dem. clavitor.ai
Källor
[1] Claude Code v2.1.183 — "Fixed MCP servers requiring authentication exposing auth-stub tools to the model in headless/SDK mode" — https://github.com/anthropics/claude-code/releases/tag/v2.1.183
[2] Hermes Agent v0.17.0 — Managed Scope (admin-pinned secrets), secret redaction, exfil-config blocking — https://github.com/NousResearch/hermes-agent/releases
[3] OpenAI Codex v0.141.0 — encrypted Noise relay channels, auth-mode plugin routing — https://github.com/openai/codex/releases