
두 가지 Linux 페이지 캐시 손상 LPE(DirtyClone CVE-2026-43503, pedit COW CVE-2026-46331)를 위한 교육적 방어 키트: 강화, 탐지, 검증, seccomp + 검증 도구. 탐지 및 예방 전용 — 익스플로잇 코드 없음. TLP:CLEAR.
Linux 페이지 캐시 손상 로컬 권한 상승 두 가지 — DirtyClone (CVE-2026-43503) 및 pedit COW (CVE-2026-46331) — 에 대한 방어를 탐지, 차단 및 검증합니다. 호스트 및 컨테이너 대상.
이것은 교육적이고 방어적인 보안 키트입니다. 두 취약점이 시스템 호출 수준에서 어떻게 작동하는지 설명하고, 강화, 탐지, 검증 및 seccomp 도구를 제공합니다. 또한 실제 커널에서 도구가 작동함을 입증하는 검증 하네스를 포함합니다. 의도적으로 익스플로잇, 셸코드 또는 대상 오프셋을 포함하지 않습니다.
두 CVE 모두 권한 없는 로컬 사용자가 루트가 될 수 있도록 /usr/bin/su와 같은 setuid-root 바이너리의 페이지 캐시 (RAM 복사본)를 손상시킵니다. 디스크의 파일은 전혀 건드리지 않습니다. 따라서 은밀합니다: 파일 무결성 모니터링은 정상으로 보이고, 디스크 포렌식은 아무것도 찾지 못하며, 손상은 재부팅 시 사라집니다.
커널 패치가 진정한 해결책입니다. 하지만 패치 적용 기간 동안, 그리고 이후 심층 방어로서 공격 경로를 차단하고, 공격 체인을 감시하며, 보안 태세를 검증해야 합니다. 이것이 이 키트가 제공하는 기능이며, 모든 제어 항목은 익스플로잇 체인의 문서화된 단계에 매핑되어 왜 작동하는지 확인할 수 있습니다.
두 버그는 동일한 결함 클래스입니다: 커널이 비공개라고 믿는 버퍼에 쓰기를 수행하지만, 해당 버퍼는 여전히 공유된 파일 기반 페이지 캐시 메모리에 의해 뒷받침됩니다. 두 체인의 모든 변종을 제어하는 두 가지 구조적 게이트가 있습니다:
안정적인 포인트 릴리스에서 업스트림 수정됨 (DirtyClone ≥ 6.12.91 / 7.0.10; pedit COW 6.12.94 / 7.0.13) 및 벤더 백포트 포함; 메인라인 7.1이 최종입니다. 커널을 배포판의 추적기와 대조하여 확인하세요 — docs/analysis.md §8 참조.
Linux 호스트 전용. 이 스크립트는 실제 커널 상태를 읽고 씁니다. 강화는 사용자가 제어하는 호스트에서 실행하고, 파괴적인 검증 하네스는 임시 VM에서 실행하세요. 요구 사항 참조.
# 1. Preview the host containment changes (writes nothing)
sudo ./kit/harden-pagecache-lpe.sh --dry-run
# 2. Apply userns restrictions + vulnerable-module blocks
sudo ./kit/harden-pagecache-lpe.sh
# 3. Verify posture — run the functional probe as an UNPRIVILEGED user
sudo -u nobody ./kit/verify-pagecache-lpe.sh # exit: 0=PASS 1=WARN 2=FAIL
# 4. (Optional) Watch the attack chain live with eBPF
sudo bpftrace ./kit/detect-pagecache-lpe.bt
컨테이너의 경우 seccomp 오버레이를 적용하세요
(kit/seccomp-pagecache-lpe.json):
docker run --security-opt seccomp=kit/seccomp-pagecache-lpe.json <image>
새로 오셨나요? **START-HERE.md**를 읽어보세요 — 근본 원인부터 전체 검증 실행까지 안내하는 강의 스타일의 설명서입니다.
.
├── START-HERE.md Guided walkthrough — the recommended entry point
├── docs/ The "why": analysis and operator guidance
│ ├── analysis.md Root-cause analysis, attack chains, detection engineering
│ ├── HARDENING-GUIDE.md Operator containment guide (host → systemd → Docker → Kubernetes)
│ └── plain-language-summary.md Gentler, plain-English overview of both bugs
├── kit/ The "what you run": four self-contained artifacts
│ ├── harden-pagecache-lpe.sh Apply host containment (sysctl + module blocks)
│ ├── verify-pagecache-lpe.sh Read-only posture check (PASS/WARN/FAIL)
│ ├── detect-pagecache-lpe.bt bpftrace/eBPF telemetry for the staging chain
│ └── seccomp-pagecache-lpe.json Container seccomp overlay denying the chain's syscalls
└── testkit/ The "proof": validation harness + SHOWCASE.md writeup
harden, verify): bash, sysctl, modprobe, unshare가 있는 Linux 호스트. 강화에는 루트 권한 필요; 검증 프로브는 루트가 아닌 사용자로 실행하세요.detect-pagecache-lpe.bt): 루트, bpftrace ≥ 0.16, 커널 BTF (/sys/kernel/btf/vmlinux). 일부 kprobes는 특정 커널에서 인라인될 수 있습니다 — 스크립트의 헤더에서 적응 방법을 설명합니다.testkit/): 임시 Linux VM — 실제 설정을 쓰고 커널 모듈을 언로드합니다. EC2 실행기는 AWS CLI v2와 jq가 필요합니다. SSH는 사용되지 않습니다 (전송은 AWS SSM). macOS 사용자는 로컬 Docker 스모크 테스트를 실행할 수 있지만, 전체 검증은 Linux가 필요합니다.TLP:CLEAR — 공개, 무제한 배포. 이 저장소는 탐지 및 예방 전용입니다. 의도적으로 다음을 포함합니다:
…그리고 의도적으로 제외합니다:
이 접근 방식의 정직한 한계 — 검증이 증명하는 것과 증명하지 않는 것 — 는 testkit/SHOWCASE.md §8에 문서화되어 있습니다. 소유하거나 테스트 권한이 있는 시스템에서만 사용하세요. 강화는 차단일 뿐 치료제가 아닙니다: 커널을 패치하세요.
START-HERE.md — 안내 워크스루 (여기서 시작)docs/analysis.md — 전체 기술 분석docs/plain-language-summary.md — 보다 쉬운 평이한 영어 개요이슈 및 풀 리퀘스트를 환영합니다 — CONTRIBUTING.md 참조. 제어 항목이 여러 파일에 걸쳐 미러링되어 있으므로 (모듈 목록, userns 노브, 탐지 비트맵), 공격 표면을 변경하기 전에 해당 가이드의 동기화 불변성을 읽어주세요.
Apache License 2.0에 따라 라이선스가 부여됩니다.
| 게이트 | 설명 | 제어 강도 |
|---|
| 1. 권한 경로 | CAP_NET_ADMIN을 권한 없는 사용자 네임스페이스를 통해 획득 (unshare(CLONE_NEWUSER|CLONE_NEWNET)) | 강력한 차단점 — 알려진 변종과 알려지지 않은 변종을 포함한 모든 변종이 이곳을 통과해야 합니다. 먼저 차단하세요. |
| 2. 모듈 표면 | 취약한 모듈: act_pedit, esp4/esp6, rxrpc, xt_TEE, nf_dup_ipv4/nf_dup_ipv6 | 심층 방어 — 알려진 프리미티브만 제거합니다; 새로운 싱크는 이를 우회할 수 있습니다. |
| 구성 요소 | 역할 |
|---|
docs/analysis.md | 진리의 원천: 근본 원인, 동작 공격 체인, 탐지 엔지니어링, 강화, 비교 표. |
docs/HARDENING-GUIDE.md | 호스트, systemd 유닛, Docker/Podman, Kubernetes를 위한 계층형 차단. |
kit/ | 네 가지 산출물. 이 디렉터리를 호스트에 복사하여 방어하세요. |
testkit/ | 실제 커널에서 재현 가능한 검증 (로컬 Docker + 임시 EC2), 및 SHOWCASE.md — 테스트가 증명하는 것과 증명하지 못하는 것에 대한 정직한 평가. |