
비무장화된 CVE-2016-5195(Dirty COW) 분석 및 검증 하네스로, 근본 원인 연구, 업스트림 패치 검토, 확인된 커널을 위한 안전한 실험실 전용 PoC를 포함합니다.
CVE-2016-5195(Dirty COW)에 대한 방어적 연구, 비무기화 검증 및 패치 분석입니다. 이 취약점은 읽기 전용 매핑과 연관된 데이터를 로컬 사용자가 수정하고 권한을 상승시킬 수 있게 하는 Linux 커널의 copy-on-write(COW) 레이스 조건입니다.
| 필드 | 값 |
|---|---|
| 구성 요소 | Linux 커널 메모리 관리 / get_user_pages() |
| 약점 | CWE-362: 공유 리소스를 사용하는 동시 실행 및 부적절한 동기화 |
| 심각도 | 높음, CVSS 3.1: 7.0 |
| 벡터 | CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H |
| 공격 전제 조건 | 로컬의 낮은 권한 액세스 |
| 업스트림 수정 | 19be0eaffa3ac7d8eb6784ad9bdbc7d67ed8e619 |
| 최초 수정 업스트림 릴리스 | Linux 4.8.3; 배포판 백포트는 다양함 |
Dirty COW는 강제 쓰기와 copy-on-write(COW) 매핑을 처리하는 Linux 커널의 레이스입니다. 로컬 사용자는 /proc/self/mem을 통한 쓰기와 페이지 무효화를 경합시킬 수 있습니다. 영향을 받는 커널에서는 이 레이스로 인해 명목상 읽기 전용인 개인 매핑과 연관된 데이터가 기본 파일에 다시 기록될 수 있습니다.
공개적 영향은 공격자가 이 프리미티브를 보안에 민감한 파일에 적용할 수 있는 경우 로컬 권한 상승입니다. 이 취약점은 2016년 10월에 실제 환경에서 악용되었습니다. 이 저장소는 해당 권한 상승 경로를 자동화하지 않습니다.
기본 하네스는 의도적으로 제한되어 있습니다:
cc -std=c11 -Wall -Wextra -Wpedantic -Werror -O2 \
poc.c -o dirtycow-safe -pthread
랩 전용 익스플로잇 프리미티브는 별도로 빌드할 수 있습니다:
cc -std=c11 -Wall -Wextra -Wpedantic -Werror -O2 \
exploit.c -o dirtycow-exploit -pthread
./dirtycow-safe
선택적 제한 반복 횟수:
./dirtycow-safe --iterations 5000000
가능한 결과:
marker-observed: 일회용 inode에서 취약한 동작이 관찰되었습니다.marker-not-observed: 결론적이지 않음. 레이스가 발생하지 않았다고 해서 커널이 수정되었음을 입증하지는 않습니다.77: 필요한 Linux /proc/self/mem 인터페이스를 사용할 수 없습니다.PoC 결과를 기본 패치 상태 확인으로 사용하지 마십시오. 실행 중인 배포판의 커널 패키지 권고를 확인하고 재부팅 후 패치된 커널이 활성화되어 있는지 검증하십시오.
exploit.c는 명시적 파일과 교체 접두사를 받아 영향을 받는 커널에서 임의 파일 쓰기 프리미티브를 시연합니다. 리터럴 --i-understand 확인을 요구하고, 제한된 페이로드 및 반복 한도를 적용하며, 권한 상승 페이로드를 생성하지 않습니다.
선택한 파일은 영구적으로 수정될 수 있습니다. 소유하거나 테스트할 명시적 권한이 있는 격리된 일회용 랩에서만 사용하십시오. 전체 레이스 및 상태 전이 분석은 ROOT_CAUSE.md에 있습니다.
evidence/evidence.json은 공식 수정 전 및 수정된 Linux 리비전에서 관찰된 소스 시그니처, 경고 없는 PoC 빌드 결과 및 검증 안전 속성을 기록합니다. evidence/validation.log는 간결한 요약을 제공합니다. 캡처된 검증은 레이스를 실행하지 않았습니다.
공급업체가 제공한 커널 업데이트를 설치하고 패치된 커널로 재부팅하십시오. 업스트림 버전 문자열만으로 노출 여부를 판단하지 마십시오. 엔터프라이즈 및 배포판 커널은 업스트림 버전 번호를 채택하지 않고 수정 사항을 백포트하는 경우가 일반적입니다. 컨테이너는 호스트 커널을 사용하므로 수정 범위에 호스트가 포함되어야 합니다.
정확한 업스트림 변경 사항은 PATCH_ANALYSIS.md를, 검증 지침은 VULNERABILITY_REPORT.md를 참조하십시오.
이 자료는 소유한 시스템이나 테스트할 명시적 권한이 있는 시스템에서만 사용하십시오.
| 경로 | 목적 |
|---|
poc.c | 링크 해제된 임시 inode만 사용하는 비무기화 검증 |
exploit.c | 승인된 일회용 랩을 위한 임의 파일 쓰기 프리미티브 |
ROOT_CAUSE.md | 상세한 취약 상태 전이 및 레이스 분석 |
VULNERABILITY_REPORT.md | 전제 조건, 근본 원인, 영향 및 수정 |
PATCH_ANALYSIS.md | 업스트림 FOLL_COW 수정의 라인 단위 분석 |
evidence/ | 구조화된 검증 출력 및 해석 노트 |