Onderzoekers ontdekken een kwetsbaarheid in kernen die het omzeilen van handtekeningen en het uitvoeren van code mogelijk maakt

Er is een zeer ernstige beveiligingsfout onthuld in Nuclei van ProjectDiscovery, een veelgebruikte open-source kwetsbaarheidsscanner die, indien succesvol misbruikt, aanvallers in staat zou kunnen stellen handtekeningcontroles te omzeilen en mogelijk kwaadaardige code uit te voeren.

Bijgehouden als CVE-2024-43405, heeft het een CVSS-score van 7,4 op een maximum van 10,0. Het heeft invloed op alle versies van Nuclei later dan 3.0.0.

“De kwetsbaarheid komt voort uit een discrepantie tussen de manier waarop het handtekeningverificatieproces en de YAML-parser omgaan met nieuweregeltekens, gecombineerd met de manier waarop meerdere handtekeningen worden verwerkt”, aldus een beschrijving van de kwetsbaarheid.

“Hierdoor kan een aanvaller kwaadaardige inhoud in een sjabloon injecteren, terwijl een geldige handtekening voor het goedaardige deel van de sjabloon behouden blijft.”

Nuclei is een kwetsbaarheidsscanner die is ontworpen om moderne applicaties, infrastructuur, cloudplatforms en netwerken te onderzoeken om beveiligingsfouten te identificeren. De scanengine maakt gebruik van sjablonen, die niets anders zijn dan YAML-bestanden, om specifieke verzoeken te verzenden om de aanwezigheid van een fout vast te stellen.

Bovendien kan het de uitvoering van externe code op het hostbesturingssysteem mogelijk maken met behulp van het codeprotocol, waardoor onderzoekers meer flexibiliteit krijgen bij het testen van de beveiliging.

Cloudbeveiligingsbedrijf Wiz, dat CVE-2024-43405 ontdekte, zei dat de kwetsbaarheid zijn oorsprong vindt in het verificatieproces van sjabloonhandtekeningen, dat wordt gebruikt om de integriteit te garanderen van de sjablonen die beschikbaar worden gesteld in de officiële sjablonenrepository.

Succesvol misbruik van de kwetsbaarheid is een omzeiling van deze cruciale verificatiestap, waardoor aanvallers kwaadaardige sjablonen kunnen maken die willekeurige code kunnen uitvoeren en toegang kunnen krijgen tot gevoelige gegevens van de host.

“Aangezien deze handtekeningverificatie momenteel de enige methode is die beschikbaar is voor het valideren van Nuclei-sjablonen, vertegenwoordigt dit een potentieel single point of Failure”, zei Wiz-onderzoeker Guy Goldenberg in een analyse van vrijdag.

In de kern komt het probleem voort uit het gebruik van reguliere expressies (ook wel regex genoemd) voor handtekeningvalidatie en het parseerconflict dat ontstaat als gevolg van het gebruik van zowel regex als YAML-parser, waardoor de deur wordt geopend naar een scenario waarin een aanvaller een ” r”-teken zodanig dat het de op regex gebaseerde handtekeningverificatie omzeilt en door de YAML-parser wordt geïnterpreteerd als een regeleinde.

Anders gezegd: deze inconsistenties bij het parseren kunnen aan elkaar worden gekoppeld om een ​​Nuclei-sjabloon te maken die “r” gebruikt om een ​​tweede regel “# digest:” op te nemen die het handtekeningverificatieproces omzeilt, maar wordt geparseerd en uitgevoerd door de YAML-interpreter.

“Go’s op regex gebaseerde handtekeningverificatie beschouwt \r als onderdeel van dezelfde regel, terwijl de YAML-parser het interpreteert als een regeleinde. Door deze mismatch kunnen aanvallers inhoud injecteren die de verificatie omzeilt, maar wordt uitgevoerd door de YAML-parser”, legt Goldenberg uit. .

“De verificatielogica valideert alleen de eerste # digest: regel. Extra # digest: regels worden genegeerd tijdens de verificatie, maar blijven in de inhoud om te worden geparseerd en uitgevoerd door YAML.”

Bovendien omvat het verificatieproces een stap om de handtekeningregel uit te sluiten van de sjablooninhoud, maar doet dit op een manier dat alleen de eerste regel gevalideerd wordt, waardoor de volgende regels niet geverifieerd maar wel uitvoerbaar blijven.

Na verantwoorde openbaarmaking werd het probleem op 4 september 2024 door ProjectDiscovery aangepakt met versie 3.3.2. De huidige versie van Nuclei is 3.3.7.

“Aanvallers kunnen kwaadaardige sjablonen maken met gemanipuleerde # digest-regels of zorgvuldig geplaatste regeleinden om de handtekeningverificatie van Nuclei te omzeilen”, aldus Goldenberg.

“Een aanvalsvector voor dit beveiligingslek ontstaat wanneer organisaties niet-vertrouwde of door de gemeenschap bijgedragen sjablonen gebruiken zonder de juiste validatie of isolatie. Een aanvaller zou deze functionaliteit kunnen misbruiken om kwaadaardige sjablonen te injecteren, wat kan leiden tot willekeurige uitvoering van opdrachten, gegevensonderschepping of systeemcompromis.”

Thijs Van der Does