🇰🇷 한글 설명
Linux 커널의 네트워크 스케줄러에서 act_ct(연결 추적 액션)가 egress 경로에 잘못 적용되어 defragmentation 엔진이 패킷에 접근할 때 Use-After-Free 취약점을 유발하는 문제. act_ct를 clsact/ingress qdiscs 및 shared blocks에만 제한하여 해결.
💡 쉬운 설명
Linux 커널에서 네트워크 트래픽을 제어하는 도구(act_ct)가 잘못된 경로에서 사용되어 메모리 오류 발생. 이를 통해 시스템 충돌이나 권한 상승이 가능합니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
net/sched: Only allow act_ct to bind to clsact/ingress qdiscs and shared blocks
As Paolo said earlier [1]:
"Since the blamed commit below, classify can return TC_ACT_CONSUMED while
the current skb being held by the defragmentation engine. As reported by
GangMin Kim, if such packet is that may cause a UaF when the defrag engine
later on tries to tuch again such packet."
act_ct was never meant to be used in the egress path, however some users
are attaching it to egress today [2]. Attempting to reach a middle
ground, we noticed that, while most qdiscs are not handling
TC_ACT_CONSUMED, clsact/ingress qdiscs are. With that in mind, we
address the issue by only allowing act_ct to bind to clsact/ingress
qdiscs and shared blocks. That way it's still possible to attach act_ct to
egress (albeit only with clsact).
[1] https://lore.kernel.org/netdev/674b8cbfc385c6f37fb29a1de08d8fe5c2b0fbee.1771321118.git.pabeni@redhat.com/
[2] https://lore.kernel.org/netdev/
[email protected]/
📍 영향받는 시스템
Linux kernel 4.9 이상 (구체적 버전은 배포판별 백포트 상황에 따라 다름)
⚔️ 공격 벡터
관리자 권한으로 tc(traffic control) 명령을 통해 act_ct를 egress qdiscs에 잘못 설정하여 트리거
🛡️ 대응 방법
커널을 최신 패치 버전으로 업그레이드하거나 act_ct 사용을 clsact/ingress로만 제한
🔧 검증 코드
커널 버전 확인 후 CVE 패치 적용 여부 확인. 패치된 버전이면 safe, 아니면 업그레이드 필요
uname -r | grep -E 'patched|fixed' || git log --oneline | grep -i 'act_ct.*clsact' 2>/dev/null || echo 'Kernel version check required'