Apiiro löysi 1 122 julkista Claude Code -asetustiedostoa, jotka sisälsivät salaisuuksia, koska tallennetut komentohyväksynnät säilyttivät tunnistetiedot selväkielisinä.
Miten tallennettu hyväksyntä voi paljastaa salaisuuksia
Claude Code voi pyytää lupaa ennen komentotulkkikomennon suorittamista ja tarjota mahdollisuutta muistaa hyväksynnän. Jos valitsee ”Kyllä, älä kysy uudelleen”, sallimissääntö tallentuu tiedostoon .claude/settings.local.json. Jos hyväksytty komento sisältää salasanan tai tokenin, sääntö voi tallentaa sen selväkielisenä. Apiiro toisti tämän eri Claude-malleilla, mikä viittaa siihen, että ongelma liittyy Claude Coden tapaan käsitellä käyttöoikeuksia eikä yksittäiseen malliin.
Kehittäjät saattavat välittää tunnistetietoja komentorivityökaluille selvittäessään tietokantayhteyden tai käyttöönoton ongelmia, joko ympäristömuuttujana tai argumenttina. Toistuvat lupapyynnöt voivat myös houkutella hyväksymään komennon kerran ja jatkamaan sitten eteenpäin. Apiiro kuvasi tätä selitystä päätelmäksi, joka perustuu työnkulkuun ja tutkijoiden löytämiin komentomuotoihin.
Mitä Apiiro löysi julkisista tiedostoista
Apiiro löysi vähintään yhden salaisuuden 1 122:ssa GitHubissa julkisesti saatavilla olleesta 104 185 settings.local.json -tiedostosta. Tiedostot sisälsivät 1 379 erillistä salaisuutta. Kun mukaan laskettiin vanhempi Git-historia, jaetut asetustiedostot ja tallennetut agenttien keskustelulokit, tutkijat raportoivat 2 539 salaisuutta 1 994 repositoriossa.
Salaisuuksiin kuului tietokantojen salasanoja, SSH-kirjautumistietoja, ohjelmistoalustojen tokeneita ja pilvipalveluavaimia. Luku kertoo tietojen paljastumisesta, ei siitä, että kaikki tunnistetiedot olisivat yhä toimineet tai että niitä olisi käytetty väärin. Apiiron mukaan yksi sen yhteyden ottamista organisaatioista vahvisti avaimen olevan edelleen voimassa, mutta yritys ei saanut selville, olivatko hyökkääjät käyttäneet löydettyjä salaisuuksia.
Miksi tiedostot voivat jäädä julkisesti saataville
Anthropicin dokumentaation mukaan Claude Code lisää paikallisen asetustiedoston käyttäjänlaajuiseen Gitin poissulkuluetteloon, kun se luo tiedoston ensimmäistä kertaa repositoriossa, jossa tiedostoa ei vielä ole suljettu pois. Tämä suojaus koskee kehittäjän omaa tietokonetta, ei jaettua projektia. Se ei voi kumota sitä, että tiedosto on jo lisätty Git-versionhallintaan, eikä poistaa kopioita repositorion historiasta tai haaroista.
Joulukuun 4. päivänä 2025 kehittäjä ilmoitti samankaltaisesta tietojen paljastumisesta Anthropicin GitHub-ongelmaseurannassa. Ilmoituksen mukaan paikalliseen asetustiedostoon tallennetut tunnistetiedot olivat päätyneet julkiseen repositorioon. Raportti osoitti, että riski oli tullut esiin jo ennen kuin Apiiro selvitti sen laajuuden.
Tavalliseen komentomuotoon upotetut salasanat eivät välttämättä vastaa tuttuja API-avainten muotoja, joten yleiset salaisuuksien tunnistustyökalut voivat jättää ne huomaamatta. Agenttien asetustiedostot, keskustelulokit ja muut työstötiedot voivat myös sisältää tunnistetietoja. Voimassa oleva avain voi avata reitin tietokantaan, pilvitiliin tai ohjelmistojen toimitusketjuun; sen tarjoama pääsy riippuu siitä, mihin sillä pääsee.
Mitä Anthropic ja organisaatiot voivat tehdä
Claude Coden johtaja Boris Cherny myönsi ongelman ja kertoi yhtiön selvittävän suojatoimia, kuten automaattista tilaa ja perustason salaisuuksien skannausta. Viimeisimpien tietojen mukaan nämä olivat ehdotuksia, eivät vahvistettu korjaus tai julkaisuaikataulu.
Organisaatiot voivat etsiä tiedostoja repositorioistaan ja niiden historiasta, uusia paljastuneet tunnistetiedot sekä poistaa versionhallintaan lisätyt kopiot tai siivota ne. Pelkkä tiedoston poistaminen ei voi tehdä jo julkaistusta tunnistetiedosta jälleen salaista.