🇰🇷 한글 설명
Linux 커널의 netem 모듈에서 패킷 복제 기능 사용 시 패킷이 무한 루프에 빠지는 취약점이 발견되었습니다. 기존의 방식은 qdisc 상태를 변경하여 동시성 문제가 있었으나, 이제 skb의 tc_depth 필드를 사용하여 패킷 자체에 중복 여부를 표시함으로써 문제를 해결했습니다.
💡 쉬운 설명
네트워크 테스트 도구가 패킷을 복제할 때, 복제된 패킷이 다시 복제되는 과정이 무한히 반복되어 컴퓨터 메모리가 가득 차는 현상이 발생할 수 있습니다. 이 패킷에 '이미 복제됨'이라는 표시를 남겨서 무한 반복을 방지하도록 수정되었습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
net/sched: fix packet loop on netem when duplicate is on
When netem duplicates a packet it re-enqueues the copy at the root qdisc.
If another netem sits in the tree the copy can be duplicated
again, recursing until the stack or memory is exhausted.
The original duplication guard temporarily zeroed q->duplicate around
the re-enqueue, but that does not cover all cases because it is
per-qdisc state shared across all concurrent enqueue paths
and is not safe without additional locking.
Use the skb tc_depth field introduced in an earlier patch:
- increment it on the duplicate before re-enqueue
- skip duplication for any skb whose tc_depth is already non-zero.
This marks the packet itself rather than mutating qdisc state,
therefore it is safe regardless of tree topology or concurrency.
📍 영향받는 시스템
Linux kernel (netem module 사용 환경)
⚔️ 공격 벡터
네트워크 트래픽 제어 설정(netem)을 통해 특정 패킷을 복제하도록 유도하여 시스템 자원 고갈 유도
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이후인지 확인