
CVE-2026-80844(DirtyAH6) 연구 저장소로, Linux 커널 IPv6 AH6/XFRM 로컬 권한 상승 취약점에 대한 PoC, 근본 원인 및 패치 분석을 포함합니다.
DirtyAH6
CVE-2026-80844는 IPv6 Authentication Header (AH6) / XFRM 서브시스템에 영향을 미치는 Linux 커널 취약점입니다.
이 취약점은 IPv6 Routing Header의 segments_left 필드에 대한 불충분한 검증으로
인해 발생하며, 잠재적으로 범위를 벗어난 메모리 연산과 커널 메모리 손상을 초래할
수 있습니다.
이 저장소는 승인된 보안 연구, 취약점 분석, CTF 및 방어적 테스트 용도로만 사용하도록 의도되었습니다.
소유하지 않았거나 명시적인 테스트 허가를 받지 않은 시스템에 이 연구를 사용하지 마십시오.
이 취약점은 IPv6 AH6 처리 경로에 존재합니다.
영향받는 코드는 다음을 통해 라우팅 헤더 조작을 수행합니다:
net/ipv6/ah6.c
구체적으로, 취약한 로직은 다음을 포함합니다:
ipv6_rearrange_rthdr()
이 함수는 다음 두 값 사이의 관계를 적절히 검증하지 못했습니다:
hdrlen
그리고:
segments_left
따라서 특수하게 조작된 IPv6 패킷을 공급할 수 있는 공격자는 커널이 예상된 라우팅 헤더 경계를 벗어난 메모리를 조작하도록 만들 수 있습니다.
이는 다음과 같은 결과를 초래할 수 있습니다:
Malformed IPv6 packet
│
▼
AH6 / XFRM processing
│
▼
Invalid routing-header state
│
▼
Out-of-bounds memory operation
│
▼
Kernel memory corruption
│
▼
Potential privilege escalation
근본적인 문제는 IPv6 Routing Header의 segments_left 값에 대한 불충분한
검증입니다.
개념적으로, 취약한 조건은 다음과 같이 표현할 수 있습니다:
segments_left > available routing-header addresses
커널은 연관된 주소 데이터를 조작하기 전에 라우팅 헤더가 요청한 세그먼트 수가 실제 헤더 길이와 일치하는지 확인해야 합니다.
이러한 검증이 없으면 이후의 메모리 연산이 유효한 버퍼 경계를 넘어 수행될 수 있습니다.
성공적인 익스플로잇은 필요한 로컬 권한/환경을 가진 공격자가 커널 메모리를 손상시킬 수 있게 합니다.
잠재적인 결과는 다음과 같습니다:
정확한 익스플로잇 가능성은 커널 구성, 사용 가능한 네임스페이스/권한 및 기타 환경 조건에 따라 달라집니다.
net/ipv6/ah6.c
관련 처리:
AH6
└── IPv6 Routing Header
└── ipv6_rearrange_rthdr()
문제가 되는 시나리오는 일관성 없는 라우팅 헤더 메타데이터를 포함합니다.
예를 들어, 개념적으로:
hdrlen → describes a limited number of addresses
segments_left → claims more addresses than are available
이러한 불일치는 커널이 주소 재배치를 수행하기 전에 거부되어야 합니다.
업스트림 수정은 커널이 취약한 연산을 수행하기 전에 Routing Header의
segments_left 값에 대한 검증을 도입합니다.
관련 업스트림 커밋은 다음과 같습니다:
7bad4bda74dc4713f398d3b7624ff05478e3a568
xfrm: ah6: validate routing header segments_left
보안 수정은 다음과 같이 요약할 수 있습니다:
Before:
Trust segments_left
↓
Rearrange addresses
↓
Potential OOB access
After:
Validate segments_left
↓
Reject malformed header
↓
Safe AH6 processing
영향받는 버전은 업스트림 및 벤더 백포트 이력에 따라 달라집니다.
사용자는 업스트림 버전 번호에만 의존하지 말고 해당 배포판의 보안 권고를 확인해야 합니다.
패치된 업스트림 안정 릴리스의 예는 다음과 같습니다:
실행 중인 커널을 확인합니다:
uname -a
또는:
uname -r
자세한 커널 정보를 확인합니다:
cat /proc/version
Debian/Kali 기반 시스템의 경우:
apt-cache policy linux-image-amd64
RPM 기반 시스템의 경우:
rpm -q kernel
배포판 커널은 업스트림 버전을 명확하게 변경하지 않고 보안 수정을 백포트하는 경우가 자주 있습니다. 항상 벤더 권고/변경 로그를 확인하십시오.
주요 완화 방법은 보안 수정이 포함된 커널로 업그레이드하는 것입니다.
Debian/Kali:
sudo apt update
sudo apt full-upgrade
그런 다음 재부팅합니다:
sudo reboot
확인:
uname -r
프로덕션 시스템의 경우, 커널 업데이트를 적용하기 전에 Linux 배포판의 공식 보안 권고를 참조하십시오.
권장되는 격리 환경:
Host
│
├── Kali Linux
│
└── Vulnerable Linux VM
│
├── Debug kernel
├── IPv6 enabled
├── AH6/XFRM support
└── Kernel symbols
유용한 디버깅 도구:
gdb
gef
pwndbg
crash
dmesg
pahole
objdump
readelf
커널 디버깅:
sudo dmesg -w
커널 심볼 검사:
cat /proc/kallsyms
CVE-2026-80844-DirtyAH6/
│
├── README.md
│
├── exploit/
│ ├── poc.c
│ └── Makefile
│
├── analysis/
│ ├── vulnerability.md
│ ├── root-cause.md
│ └── patch-analysis.md
│
├── kernel/
│ ├── vulnerable.patch
│ └── fixed.patch
│
├── docs/
│ └── research-notes.md
│
├── screenshots/
│
└── LICENSE
PoC 자료는 격리된 실험실 환경 내에서만 실행해야 합니다.
연구 구현은 조작된 IPv6 Routing Header 조건을 시연하고 그로 인한 커널 동작을 관찰하는 데 초점을 맞춥니다.
예상되는 연구 워크플로:
Craft malformed IPv6 header
↓
Transmit inside isolated lab
↓
AH6/XFRM processing
↓
Observe kernel behavior
↓
Capture dmesg / crash information
↓
Compare vulnerable vs patched kernel
모니터링 예시:
sudo dmesg -w
패치된 커널은 취약한 메모리 연산에 도달하지 않고 조작된 입력을 거부해야 합니다.
이 취약점은 커널 네트워크 파서가 공격자가 제공한 길이 또는 개수 필드를 절대 신뢰해서는 안 되는 이유를 보여줍니다.
보안에 중요한 파싱은 다음을 따라야 합니다:
Input
↓
Bounds validation
↓
Relationship validation
↓
State validation
↓
Memory operation
다음이 아니라:
Input
↓
Memory operation
↓
Validation
두 패킷 메타데이터 필드 사이의 작은 불일치조차도 커널 수준의 메모리 안전성 취약점이 될 수 있습니다.
7bad4bda74dc4713f398d3b7624ff05478e3a568xfrm: ah6: validate routing header segments_leftLinux 커널 보안 연구
CVE-2026-80844 · IPv6 · AH6 · XFRM · LPE
Research • Analyze • Understand • Harden
| 항목 | 세부 정보 |
|---|
| CVE | CVE-2026-80844 |
| 코드명 | DirtyAH6 |
| 구성 요소 | Linux 커널 |
| 서브시스템 | IPv6 / XFRM / AH6 |
| 취약점 유형 | 로컬 권한 상승 |
| 공격 벡터 | 로컬 |
| 공격 복잡도 | 낮음 |
| 필요 권한 | 낮음 |
| 사용자 상호작용 | 없음 |
| CVSS v3.1 | 7.8 — 높음 |
| 영향받는 코드 | net/ipv6/ah6.c |
| 상태 | 패치됨 |
| 커널 브랜치 | 패치된 릴리스 |
|---|
| 5.10 | 5.10.270 |
| 5.15 | 5.15.221 |
| 6.1 | 6.1.188 |
| 6.6 | 6.6.157 |
| 6.12 | 6.12.109 |
| 6.18 | 6.18.50 |
| 7.2 | 7.2.4 |
| 동작 | 취약한 커널 | 패치된 커널 |
|---|
조작된 segments_left | 불충분한 검증 | 검증됨 |
| 라우팅 헤더 처리 | 계속될 수 있음 | 유효하지 않으면 거부 |
| OOB 메모리 연산 | 잠재적으로 도달 가능 | 방지됨 |
| 커널 손상 | 가능 | 완화됨 |
| 권한 상승 | 잠재적 | 완화됨 |