Kritikus sérülékenység a Rust-ban

Editors' PickSecurityVulns

A Rust Security Response munkacsoport egy kritikus, Rust szabványos könyvtárban található biztonsági sebezhetőséget hozott nyilvánosságra, amely különösen az argumentumok kezelését érinti, amikor Windowson a Command API-n keresztül kötegelt fájlokat hívunk meg. A CVE-2024-24576 néven azonosított hiba az argumentumok elégtelen kezelése miatt keletkezik, ami potenciálisan lehetővé teszi a támadó számára tetszőleges shell parancsok végrehajtását. Ez a probléma akkor kritikus, ha a Windows rendszerben a kötegelt fájlokat nem megbízható argumentumokkal hívják meg, de más platformokra nincs hatással.

A probléma lényege abban rejlik, hogy a cmd.exe (amely többek között kötegelt fájlokat hajt végre) a szabványos C futtatási időtől eltérő módon elemzi az argumentumokat, ami egyéni menekülési logikát tesz szükségessé a Rust szabványos könyvtárában. Azonban kiderült, hogy a megvalósított escaping nem megfelelő, ami a sebezhetőséghez vezetett. Válaszul a Rust-csapat nem talált univerzális megoldást az összes argumentum biztonságos kikerülésére a cmd.exe összetettsége miatt. Ehelyett továbbfejlesztették a meglévő escaping kód robusztusságát, és módosították a Command API-t, hogy InvalidInput hibát adjon ki azokban az esetekben, amikor a biztonságos escaping nem megvalósítható. Ez az átmeneti javítás a Rust 1.77.2 kiadásának része lesz.

A sebezhetőség a Rust minden olyan, 1.77.2 előtti verzióját érinti Windowson, ahol a kötegelt fájlok nem megbízható bemenettel kerülnek végrehajtásra. A hiba elhárításának lépései közé tartozik a Rust 1.77.2-es verzióra való frissítés annak megjelenésekor, és adott esetben a CommandExt::raw_arg módszer használata a szabványos könyvtár megbízható bemenetekre vonatkozó escaping mechanizmusának megkerülésére. A közlemény elismeri a Rust közösségen belüli különböző személyek hozzájárulását is, akik jelentős szerepet játszottak a sebezhetőség felfedésében és kezelésében.

(forrás)