Anthropic meldt dat Claude 493 problemen met het aanvalsoppervlak vond in 25 opensourceprojecten. Dat zijn geen 493 bewezen, direct uitbuitbare kwetsbaarheden: de bevindingen gaan over code die onnodig bereikbaar was en over beveiligingsinstellingen die niet goed samenwerkten. In de 11 projecten met afgeschermde code waren de gemelde problemen volgens Anthropic niet direct afzonderlijk uit te buiten.

Een aanvalsoppervlak is het deel van een programma dat van buitenaf bereikbaar is. Minder onnodig bereikbare code kan volgens Anthropic het risico van onbekende kwetsbaarheden verkleinen.

Wat Claude analyseerde

De 25 projecten omvatten samen meer dan vijf miljoen regels C, C++, Java, PHP en Python. Claude inventariseerde meer dan 17.000 configuratieopties; 3.842 daarvan betroffen beveiligingsinstellingen of -functies.

Anthropic verdeelde de projecten in drie groepen: 10 openbaar toegankelijke projecten, 11 projecten met afgeschermde code en 4 privéprojecten. De bevindingen gaan dus over verschillende manieren waarop code en instellingen zich gedragen, niet over één soort beveiligingslek.

Wat de bevindingen over configuratie en toegang betekenen

In de 11 projecten met afgeschermde code telde Anthropic drie afzonderlijke soorten problemen: 93 onnodige toegangspunten vóór authenticatie in standaardconfiguraties, 37 plekken waar code werd uitgevoerd of status werd vastgelegd vóór authenticatie, en 61 combinaties van instellingen die een beveiligingsmaatregel vóór authenticatie verzwakten.

Authenticatie is de controle waarmee een systeem vaststelt wie toegang probeert te krijgen. Code die al vóór die controle bereikbaar is, vergroot het deel van een programma dat een onbekende fout kan bevatten. Dat maakt zo’n toegangspunt nog niet automatisch tot een werkende aanval.

Los daarvan rapporteerde Anthropic 162 beveiligingsgevoelige combinaties van instellingen die zonder waarschuwing werden geaccepteerd en waarvan het verwachte gedrag niet was gedocumenteerd. In 94 gevallen schakelde de combinatie stilzwijgend een beveiligingsmaatregel uit; 68 andere combinaties leidden tot inconsistenties.

Hoe OpenSSH de controles aanscherpte

In OpenSSH 10.4 kon een niet-geauthenticeerde client volgens Anthropic in de standaardconfiguratie ongeveer 4.500 regels experimentele ML-DSA-44-handtekeningcode bereiken voordat de relevante configuratiecontrole plaatsvond. ML-DSA-44 stond niet standaard ingeschakeld. Die regels vormden volgens Anthropic ongeveer 16 procent van de code die vóór authenticatie bereikbaar was.

OpenSSH 10.5 verplaatste een controle naar vóór het parsen van gegevens. In vervolgonderzoek vond Anthropic nog hiaten rond het sleuteltype in een sleutelbestand en de controle van de CA-handtekening bij certificaten. De definitieve wijzigingen kwamen volgens Anthropic in OpenSSH 10.6: controles op toegestane sleuteltypen en CA-handtekeningalgoritmen vinden plaats vóór het deserialiseren van gegevens of het verifiëren van handtekeningen.

Anthropic schatte dat de wijzigingen ongeveer een vijfde van de code ontoegankelijk maakten die in een standaardbuild eerder bereikbaar was voor niet-geauthenticeerde clients. Dat percentage slaat op die eerder bereikbare code, niet op de volledige OpenSSH-codebasis.

Hoe Anthropic voorgestelde wijzigingen controleerde

Anthropic beschrijft een aanpak met dynamische programmatraces om bevindingen te controleren. Voor wijzigingen aan controles in de standaardconfiguratie vergeleek het team de aangepaste build met de oorspronkelijke versie, met tests van het project en een aparte regressietest als controle. Wijzigingen die niet-standaardconfiguraties raakten, liet Anthropic over aan menselijke beoordeling.

Anthropic beschreef ook de integratie van de herbruikbare analysevaardigheid in OSS-Scanner als werk in uitvoering.