Een kritieke kwetsbaarheid is onlangs ontdekt in de programmeertaal Rust, waardoor aanvallers mogelijk kwaadaardige commando's kunnen uitvoeren op Windows-machines. Het Rust-team heeft snel versie 1.77.2 uitgebracht om de kwetsbaarheid te verhelpen, hoewel het gevaar niet enkel voor Rust geldt.
De kwetsbaarheid is CVE-2024-24576 en heeft een severity-score 10 gekregen (de hoogste). Pietro Albini van de Rust Security Response Working Group meldt dat de kwetsbaarheid zit in de onjuiste afhandeling van argumenten in de Rust standaardbibliotheek bij het uitvoeren van batchbestanden op Windows met behulp van de Command API. The Register schrijft dat deze fout aanvallers in staat stelt willekeurige shell-commando's uit te voeren door het escapingmechanisme te omzeilen.
Nieuwe versie 1.77.2 snel uitgebracht
De complexiteit van Windows' CMD.exe programma, dat verschillende parsingregels heeft, verergert het probleem. Albini benadrukt dat verschillen in argument-splitsingslogica tussen Windows' Command Prompt en andere platformen een meer ingewikkelde oplossing noodzakelijk maken. Het Rust-team heeft hierover een blog gepubliceerd, geschreven door Albini.
Rust heeft zo snel mogelijk versie 1.77.2 uitgebracht om de kwetsbaarheid te verhelpen, en benadrukt daarbij het belang van vlot updaten omdat eerdere versies kwetsbaar blijven. Chris Denton, een medewerker van het team, heeft de fix ontwikkeld, verbeterde de escape code en zorgde ervoor dat de Command API op de juiste manier ongeldige invoer afhandelt. Vanwege de complexiteit van CMD.exe is een oplossing die in alle mogelijke gevallen werkt echter nog buiten bereik.
Kwetsbaarheid gaat verder dan Rust
De kwetsbaarheid is 'BatBadBut' genoemd door onderzoeker RyotaK, als knipoog naar batchbestanden en de ernst van de kwetsbaarheid. Volgens hem gaat deze verder dan Rust en beïnvloedt deze ook andere talen en systemen als Erlang, Go, Python en Ruby. Node.js en PHP zijn al patches aan het ontwikkelen, terwijl Rust en Haskell hun fixes al hebben geïmplementeerd. Java blijft echter gevoelig, zonder dat er concrete plannen zijn voor een oplossing.
RyotaK waarschuwde om niet alleen te vertrouwen op de CVSS-rating om de ernst in te schatten, omdat de impact afhankelijk van individuele applicaties kan variëren. Programmeurs moeten onmiddellijk updaten en op hun hoede blijven voor potentiële securityrisico's.