Software-update: Rust 1.77.2

Rust logo (79 pix)Rust is een programmeertaal bedacht door Graydon Hoare en oorspronkelijk ontwikkeld door Mozilla. Het is deels geïnspireerd op de programmeertaal C, maar kent syntactische en semantische verschillen. Het focust op veiligheid en beoogt moderne computersystemen efficiënter te benutten. Het wordt ingezet door onder andere Cloudflare, OVH, Mozilla, Deliveroo, Coursera, AppSignal en Threema. Versie 1.77.2 is uitgebracht en de releasenotes voor die uitgave kunnen hieronder worden gevonden.

What's in 1.77.2

This release includes a fix for CVE-2024-24576. Before this release, the Rust standard library did not properly escape arguments when invoking batch files (with the bat and cmd extensions) on Windows using the Command API. An attacker able to control the arguments passed to the spawned process could execute arbitrary shell commands by bypassing the escaping.

This vulnerability is CRITICAL if you are invoking batch files on Windows with untrusted arguments. No other platform or use is affected. You can learn more about the vulnerability in the dedicated advisory.

Rust

Versienummer 1.77.2
Releasestatus Final
Website The Rust Programming Language Blog
Download https://www.rust-lang.org/install.html
Licentietype Voorwaarden (GNU/BSD/etc.)

Door Bart van Klaveren

Downloads en Best Buy Guide

11-04-2024 • 15:26

7

Submitter: danmark_ori

Bron: The Rust Programming Language Blog

Update-historie

27-06 Rust 1.88.0 8
16-05 Rust 1.87.0 1
04-04 Rust 1.86.0 0
21-02 Rust 1.85.0 0
31-01 Rust 1.84.1 0
10-01 Rust 1.84.0 0
29-11 Rust 1.83.0 5
09-'24 Rust 1.81.0 1
07-'24 Rust 1.80.0 8
04-'24 Rust 1.77.2 7
Meer historie

Reacties (7)

7
7
7
0
0
0
Wijzig sortering
Die CVE een 10 uit 10 meegeven is een beetje overdreven
Nee, de 10 uit 10 was niet meer dan terecht. De documentatie van Command::arg zegt namelijk dat de input veilig doorgeeft en gegarandeerd dat het bijvoorbeeld niet door de shell uitgevoerd zal worden. Of wel: je hoeft user-input niet te valideren, want het wordt veilig doorgeven. Op Windows bleek dat in combinatie met cmd.exe dus toch niet zo te zijn. Daardoor is het een serieuze bug/kwetsbaarheid. Zie bijvoorbeeld deze eenvoudige PoC: https://github.com/frostb1ten/CVE-2024-24576-PoC
Wat zijn de voorwaarden om 10/10 te geven? 10/10 suggereert voor mij dat het een ontzettend gevaarlijk lek is waar een enorme groep gebruikers direct door geraakt worden - zoals het xz gevalletje van vorige week. Dat is hier totaal niet aan de hand en hoewel het vervelende dingen had kunnen doen was er bijv. geen gevaar voor privilege escalation.
Er zijn volgens mij geen harde voorwaarden maar wel richtlijnen. En ik denk als er te vaak met 10 wordt gegooid dat het een beetje zijn waarde verliest. 10 is naar mijn mening alleen voor makkelijk te uit te voeren RCE zonder gebruiker interactie in een veel gebruikt software product.
Hoeveel mensen door de kwetsbaarheid geraak worden is eigenlijk niet eens relevant, en dat heeft dus ook slechts een zeer beperkte invloed op de score van de kwetsbaarheid. Het gaat om de (mogelijke) gevolgen. Hoe groter de gevolgen, hoe groter het risico, en dus hoe hoger de score van de kwetsbaarheid. In dit geval kun je (potentieel) op afstand relatief eenvoudig, zonder speciale rechten, zonder user-interaction, ieder willekeurig commando uitvoeren op het systeem. Een username als: biteMark" & shutdown zou dat al kunnen veroorzaken. De gevolgen van deze kwetsbaarheid zijn niet te overzien en dus krijgt het, zoals de meeste RCE aanvallen, de hoogste score.
Een "beetje" overdreven ga ik zelf voor.

https://www.youtube.com/watch?v=wLpBJKZckl0

Dit komt natuurlijk wel in het kielzog van het witte huis wat heeft lopen verkondigen dat iedereen "veilige talen" moet gebruiken. Lees: Rust. Dat samen met de andere recente exploit ontwikkelingen maakt denk ik wel dat we even een periode van overcorrectie ingaan waarbij alles wat een exploit is meteen code rood krijgt.
Wat ik tot nu toe begrijp is het vooral een probleem van Windows CMD, zo'n beetje iedere taal (behalve C omdat ze er al omheen gewerkt hadden) heeft dit probleem met CMD. Toevallig is het voor het eerst ontdekt met Rust maar het had ook met Perl, Ruby, Java etc. ontdekt kunnen worden.

Dit is wel een aardig draadje onder het artikel op The Register.

[Reactie gewijzigd door Maurits van Baerle op 22 juli 2024 19:24]

Op dit item kan niet meer gereageerd worden.