2025.07.31, 13:05~16:00 - 전체참여 (온라인)
시나리오 풀이에 앞서 Dirty Pipe 취약점 분석 → 조사한 내용 각자 발표 후 취합
< Dirty Pipe >
- 리눅스 로컬권한 상승 취약점.
리눅스 커널의 Pipe기능에서 발생하기 때문에 Dirty Pipe라는 별칭이 붙음
- 취약 소프트웨어 버전: Linux Kernel 5.8 ~ 5.16.11, 5.15.25, 5.10.102
- 공격 시나리오
- 공격자가 취약한 리눅스 서버에 일반 사용자로 로그인
- Dirty Pipe 취약점 이용하여 계정 정보 파일 변조 or SUID 바이너리 하이재킹
- 리눅스 서버 관리자 권한 획득 (root shell)
- 중요 정보 탈취 및 추가 악성 행위 수행
취약점 상세 분석
- 취약점 발생 개요
- Dirty Pipe는 리눅스 커널의 Pipe 기능을 이용해 파일의 Page Cache에 악의적 내용을 덮어 씌울 수 있는 취약점.
- 리눅스: 한 번 읽은 파일데이터 → Page Cache 메모리 영역에 올려둠 → 재호출시 매번 참조 ⇒ 변조하면? 변조된 파일을 읽게 만들 수 있다
- Page Cache부분에 기존데이터를 덮어쓰기 하면 변조가 가능함
취약점 대응방안
- Dirty Pipe(CVE-2022-0847) 취약점은 5.8 버전 이후에 배포된 리눅스 커널에서 발생하며 최신 커널 업그레이드로 조치 가능
- 활성화 되어있는 우분투 저장소 정보를 최신으로 갱신
$sudo apt update
업그레이드 가능한 패키지 목록 확인
$apt list –upgradable
리스트 내 최신 커널로 업그레이드
$sudo apt install –only-upgrade [설치할 커널]
- 기본 저장소 통해 업그레이드 가능한 커널 버전 확인
$sudo apt-cache search linux-image-5
리스트 내 커널로 업그레이드
$sudo apt-get install [설치할 커널]
→ 해당 방법들을 통하여 커널 업그레이드 시 시스템 리부팅 후 컴파일된 POC 코드를 실행했을 때 읽기전용파일이 수정되지 않음을 확인 가능