🇰🇷 한글 설명
uutils coreutils의 cp 유틸리티에서 발생하는 TOCTOU(검사 시점과 사용 시점 간 경쟁 조건) 취약점입니다. 프로그램이 경로 기반 메타데이터로 원본이 심볼릭 링크인지 확인한 뒤 O_NOFOLLOW 없이 파일을 열기 때문에, 그 사이 공격자가 일반 파일을 심볼릭 링크로 바꿔치기할 수 있습니다. 이로 인해 권한이 있는 cp 프로세스가 민감한 파일의 내용을 공격자가 지정한 대상으로 복사할 수 있습니다.
💡 쉬운 설명
파일을 복사하는 프로그램이 파일을 확인하는 순간과 실제로 여는 순간 사이에 파일이 다른 것으로 바뀔 수 있습니다. 이를 악용하면 프로그램이 원래 읽으면 안 되는 중요한 파일의 내용을 공격자가 볼 수 있는 곳으로 복사하게 만들 수 있습니다.
🇺🇸 원문 (English)
A Time-of-Check to Time-of-Use (TOCTOU) vulnerability in the cp utility of uutils coreutils allows an attacker to bypass no-dereference intent. The utility checks if a source path is a symbolic link using path-based metadata but subsequently opens it without the O_NOFOLLOW flag. An attacker with concurrent write access can swap a regular file for a symbolic link during this window, causing a privileged cp process to copy the contents of arbitrary sensitive files into a destination controlled by the attacker.
📍 영향받는 시스템
uutils coreutils의 cp를 사용하는 시스템 (해당 패치 이전 버전, 정확한 버전 범위는 공지 확인 필요)
⚔️ 공격 벡터
동시 쓰기 권한을 가진 공격자가 확인과 열기 사이의 짧은 시간에 일반 파일을 심볼릭 링크로 교체하여 권한 있는 cp가 민감 파일을 복사하도록 유도
🛡️ 대응 방법
uutils coreutils를 공급사가 제공하는 수정 버전으로 업데이트하고, 신뢰할 수 없는 사용자의 디렉터리 쓰기 권한을 제한
🔧 검증 코드
출력에 uutils 문자열이 나타나면 uutils coreutils를 사용 중이며, 표시된 버전을 보안 공지의 패치 버전과 비교해 취약 여부를 판단합니다. 출력이 GNU coreutils이거나 없으면 이 취약점의 직접 영향은 없습니다.
cp --version 2>/dev/null | head -n 1