CVE-2022-21658
rustlang의 std::fs::remove_dir_all 경쟁 조건
- 게시됨
- 2022. 1. 20.
- 업데이트됨
- 2025. 4. 22.
- CNA 할당 중
- GitHub_M
- 증거 관찰됨
- 2026. 8. 4.
기본 CVSS
nvd · CVSS 3.1
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:N/I:L/A:H낮음 · 다음 30일
- 백분위수
- 70.4%
- 모델 날짜
- 2026. 9. 21.
EPSS는 통계적 추정치이지 확실성이나 영향의 척도가 아닙니다. 이를 CVSS, KEV 상태, 노출 및 환경과 결합하세요.
요약
Rust는 성능과 안전성, 특히 안전한 동시성(concurrency)을 위해 설계된 다중 패러다임 범용 프로그래밍 언어입니다. Rust Security Response WG는 표준 라이브러리 함수인 `std::fs::remove_dir_all`이 심볼릭 링크 추적(symlink following)을 가능하게 하는 경쟁 조건(race condition)에 취약하다는 사실(CWE-363)을 통보받았습니다. 공격자는 이 보안 문제를 악용하여 권한이 있는 프로그램을 속여, 공격자가 달리 접근하거나 삭제할 수 없는 파일과 디렉터리를 삭제하도록 만들 수 있습니다. Rust 1.0.0부터 Rust 1.58.0까지가 이 취약점의 영향을 받으며, 1.58.1에 패치가 포함되어 있습니다. 다음 빌드 대상은 공격을 적절히 완화할 수 있는 사용 가능한 API가 없으므로, 패치된 툴체인을 사용하더라도 여전히 취약합니다: macOS 10.10(Yosemite) 이전 버전 및 REDOX. 특히 권한이 있는 컨텍스트(시스템 데몬 및 setuid 바이너리 포함)에서 실행될 것으로 예상되는 프로그램을 개발하는 사람들은 가능한 한 빨리 Rust 1.58.1로 업데이트할 것을 권장합니다. 이러한 프로그램은 이 취약점의 영향을 받을 위험이 가장 높기 때문입니다. 코드베이스에서 `remove_dir_all`을 호출하기 전에 검사(checks)를 추가하는 것은 취약점을 완화하지 못한다는 점에 유의하십시오. 그러한 검사도 `remove_dir_all` 자체와 마찬가지로 경쟁 조건에 취약하기 때문입니다. 기존 완화 조치는 경쟁 조건이 아닌 상황에서는 의도한 대로 작동합니다.
소스
1CVE-2022-21658용 POC
책임 있는 사용
귀하가 소유하고 있거나 테스트할 권한이 있는 시스템에 대해서만 취약점 정보를 사용하십시오. Kitploit은 공개 연구 메타데이터에 연결되며 익스플로잇 코드나 악성 페이로드를 저장하지 않습니다.