CVE-2023-42456
sudo-rs 세션 파일 상대 경로 탐색 취약점
- 게시됨
- 2023. 9. 21.
- 업데이트됨
- 2026. 6. 10.
- CNA 할당 중
- GitHub_M
- 증거 관찰됨
- 2026. 8. 8.
기본 CVSS
nvd · CVSS 3.1
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H낮음 · 다음 30일
- 백분위수
- 48.9%
- 모델 날짜
- 2026. 10. 17.
EPSS는 통계적 추정치이지 확실성이나 영향의 척도가 아닙니다. 이를 CVSS, KEV 상태, 노출 및 환경과 결합하세요.
요약
# Sudo-rs 취약점: 경로 순회를 통한 임의 파일 삭제 Sudo-rs는 sudo와 su의 메모리 안전 구현체로, 사용자가 모든 sudo 시도마다 인증을 입력하지 않아도 되며, 각 터미널 또는 프로세스 그룹에서 일정 시간 간격으로만 인증을 요구합니다. 구성 가능한 타임아웃이 지난 후에만 사용자가 다시 인증해야 합니다. 이 기능을 지원하기 위해 각 사용자에 대한 세션 파일(타임스탬프) 세트가 `/var/run/sudo-rs/ts`에 저장됩니다. 이 파일들은 sudo 시도가 이루어지는 사용자 이름(원본 사용자)에 따라 이름이 지정됩니다. 0.2.1 이전 버전에서 `.` 및 `/` 문자를 포함하는 사용자 이름이 파일 시스템의 특정 파일을 손상시킬 수 있는 문제가 발견되었습니다. 사용자 이름은 일반적으로 포함할 수 있는 문자에 제한이 없으므로, 상대 경로로 보이는 사용자 이름을 구성할 수 있습니다. 예를 들어 `../../../../bin/cp`라는 사용자 이름을 가진 사용자를 시스템에 추가할 수 있습니다. 해당 이름으로 로그인한 사용자는 `sudo -K`를 실행하여 세션 기록 파일을 지울 수 있습니다. 세션 코드는 사용자 이름을 세션 파일 저장 디렉터리에 연결하여 세션 파일 경로를 구성하며, 그 결과 확인된 경로는 `/bin/cp`가 됩니다. 그런 다음 코드는 해당 파일을 지워 `cp` 바이너리가 사실상 시스템에서 제거됩니다. 공격자는 구성된 사용자 이름으로 로그인할 수 있어야 합니다. 이러한 사용자 이름이 기존 시스템에 존재할 가능성이 낮으므로, 공격자는 구성된 사용자 이름으로 사용자를 생성할 수 있어야 합니다. 이 문제는 sudo-rs 0.2.1 버전에서 패치되었습니다. Sudo-rs는 이제 파일 이름을 결정할 때 사용자 이름 대신 사용자의 uid를 사용합니다. 이 버전으로 업그레이드하면 기존 세션 파일이 무시되고 사용자가 다시 인증해야 합니다. 또한 uid는 항상 정수 값이므로 경로 순회 가능성이 완전히 제거됩니다. `sudo -K` 및 `sudo -k` 명령은 사용자에게 sudo 액세스 권한이 없어도 실행할 수 있습니다. 해결 방법으로, 시스템에 특수하게 조작된 사용자 이름을 가진 사용자가 없는지 확인하십시오. 이 경우와 신뢰할 수 없는 사용자가 시스템에서 임의의 사용자를 생성할 수 없는 경우, 이 문제를 악용할 수 없어야 합니다.
소스
CVE-2023-42456에 대한 개념 증명(PoC) 익스플로잇으로, chroot 주입을 통한 sudo NSS 라이브러리 하이재킹으로 권한 상승을 시연합니다. 자동화된 버전 탐지, 페이로드 생성, 승인된 보안 테스트를 위한 chroot 탈출 기능을 포함합니다.
책임 있는 사용
귀하가 소유하고 있거나 테스트할 권한이 있는 시스템에 대해서만 취약점 정보를 사용하십시오. Kitploit은 공개 연구 메타데이터에 연결되며 익스플로잇 코드나 악성 페이로드를 저장하지 않습니다.