Rust стандарт номын сангийн эмзэг байдал

std::fs::remove_dir_all() функц дэх уралдааны нөхцлийн улмаас Rust стандарт номын санд эмзэг байдал (CVE-2022-21658) илэрсэн. Хэрэв энэ функцийг давуу эрхтэй програмын түр зуурын файлуудыг устгахад ашигладаг бол халдагчид ихэвчлэн устгах эрхгүй дурын системийн файлууд болон лавлахуудыг устгаж чадна.

Эмзэг байдал нь лавлахуудыг рекурсив устгахын өмнө симбол холбоосыг шалгах ажиллагааг буруу хэрэгжүүлснээс үүдэлтэй. Тэмдэгт холбоосыг дагахаас урьдчилан сэргийлэхийн оронд remove_dir_all() эхлээд тухайн файлыг сим холбоос мөн эсэхийг шалгадаг. Хэрэв холбоос тодорхойлогдсон бол түүнийг файл хэлбэрээр устгаж, хэрэв энэ нь лавлах бол рекурсив контент устгах үйлдлийг дуудна. Асуудал нь шалгах болон устгах ажиллагаа эхлэх хооронд бага зэрэг саатал гарсанд оршино.

Шалгалт аль хэдийн хийгдсэн боловч устгах сангуудыг тоолох ажил хараахан эхлээгүй байгаа үед халдагч уг санг түр зуурын файлуудаар бэлгэдлийн холбоосоор сольж болно. Хэрэв энэ нь зөв цагт таарвал remove_dir_all() функц нь симбол холбоосыг лавлах гэж үзэж, холбоосын зааж буй контентыг устгаж эхэлнэ. Хэдийгээр довтолгооны амжилт нь сонгосон лавлахыг солих хугацаа, зөв ​​мөчийг анх удаа цохихоос шалтгаална гэсэн хэдий ч туршилтын явцад судлаачид хэдхэн цагийн дотор мөлжлөгийг гүйцэтгэсний дараа давтагдах амжилттай халдлагад хүрч чадсан байна. секунд.

Rust-ийн 1.0.0-аас 1.58.0 хүртэлх бүх хувилбарууд нөлөөлсөн. Асуудлыг одоохондоо нөхөөс хэлбэрээр шийдсэн (засварыг хэдхэн цагийн дотор 1.58.1 хувилбарт оруулах болно). Та Debian, RHEL, SUSE, Fedora, Ubuntu, Arch, FreeBSD гэсэн хуудсууд дээрх түгээлтийн эмзэг байдлыг арилгахыг хянах боломжтой. Rust програмын бүх хэрэглэгчид өндөр эрхтэйгээр ажиллаж байгаа бөгөөд устгах_dir_all функцийг ашиглан Rust програмыг 1.58.1 хувилбар руу яаралтай шинэчлэхийг зөвлөж байна. Гаргасан нөхөөс нь бүх систем дээрх асуудлыг шийдэж чадахгүй байгаа нь сонирхолтой юм; жишээлбэл, REDOX OS болон macOS-ийн 10.10 (Yosemite)-ээс өмнөх хувилбаруудад O_NOFOLLOW туг байхгүй тул эмзэг байдлыг хаадаггүй бөгөөд энэ нь дараах симболыг идэвхгүй болгодог. холбоосууд.

Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх