CVE-2023-38497
WysokieCVSS 7.9Prawdopodobieństwo exploitacji (EPSS)
Podwyższone ryzykoPercentyl 51 - wyżej niż 51% wszystkich znanych CVE
Streszczenie
Cargo przed wersją 0.72.2, dostarczany z Rust przed wersją 1.71.1, nie respektował umask przy ekstrakcji archiwów crate na systemach podobnych do UNIX. To mogło pozwolić innym lokalnym użytkownikom na modyfikację kodu źródłowego kompilowanego i wykonywanego przez aktualnego użytkownika.
Ocena ryzyka
Ryzyko polega na tym, że złośliwy lokalny użytkownik może zmienić kod źródłowy, co prowadzi do potencjalnego uruchomienia nieautoryzowanego lub złośliwego kodu. Może to wpłynąć na bezpieczeństwo aplikacji oraz integralność danych.
Rekomendacja
Zaleca się aktualizację Cargo do wersji 0.72.2 lub nowszej oraz Rust do wersji 1.71.1 lub nowszej. Dodatkowo, należy skonfigurować system w taki sposób, aby uniemożliwić innym lokalnym użytkownikom dostęp do katalogu Cargo, zazwyczaj znajdującego się w `~/.cargo`.
Inne podatności w Cargo
Zobacz wszystkie- CVE-2026-5223Średnie
Cargo nieprawidłowo obsługuje dowiązania symboliczne w archiwach crate'ów pobranych z rejestrów stron trzecich, co pozwala złośliwemu crate'owi nadpisać kod źródłowy innego crate'a z tego samego rejestru. Luka ma średnią dotkliwość dla użytkowników rejestrów stron trzecich; użytkownicy crates.io nie są zagrożeni, ponieważ crates.io zabrania przesyłania crate'ów zawierających dowiązania symboliczne.
- CVE-2026-5222Średnie
Cargo między wersjami 1.68 a 1.96 nieprawidłowo normalizował adresy URL rejestrów stron trzecich używających protokołu indeksu rozproszonego. Jeśli dostawca hostingu umożliwiał hostowanie wielu rejestrów z dowolnymi nazwami w tej samej domenie, atakujący mógł uzyskać poświadczenia innych użytkowników tego samego rejestru. Podatność ma niski priorytet ze względu na bardzo specyficzne wymagania.
- CVE-2023-40030Średnie
Cargo w wersjach od 1.60.0 do 1.72 nie uciekał nazw funkcji Cargo w raportach generowanych przez `cargo build --timings`, co mogło prowadzić do wstrzykiwania złośliwego HTML. Złośliwy pakiet jako zależność mógł wprowadzić kod JavaScript, co stwarzało ryzyko ataków typu cross-site scripting.
Oryginalny opis (angielski, źródło NVD)
Cargo downloads the Rust project’s dependencies and compiles the project. Cargo prior to version 0.72.2, bundled with Rust prior to version 1.71.1, did not respect the umask when extracting crate archives on UNIX-like systems. If the user downloaded a crate containing files writeable by any local user, another local user could exploit this to change the source code compiled and executed by the current user. To prevent existing cached extractions from being exploitable, the Cargo binary version 0.72.2 included in Rust 1.71.1 or later will purge caches generated by older Cargo versions automatically. As a workaround, configure one's system to prevent other local users from accessing the Cargo directory, usually located in `~/.cargo`.

