🇰🇷 한글 설명
Linux 커널의 TIPC 프로토콜에서 복호화 수행 전 목적지 참조 횟수(dst refcount)를 강제로 증가시키지 않아 발생하는 취약점입니다. 비동기 암호화 요청 처리 과정에서 RCU 보호 영역을 벗어날 때 참조 횟수가 적절히 관리되지 않아 시스템 충돌(Crash)이 발생할 수 있습니다.
💡 쉬운 설명
데이터를 암호화 해제하는 과정에서 컴퓨터가 데이터의 위치를 잊어버려 시스템이 갑자기 멈추거나 꺼질 수 있는 문제입니다. 데이터 처리 순서가 꼬이면서 발생하는 오류입니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
tipc: force a dst refcount before doing decryption
As it says in commit 3bc07321ccc2 ("xfrm: Force a dst refcount before
entering the xfrm type handlers"):
"Crypto requests might return asynchronous. In this case we leave the
rcu protected region, so force a refcount on the skb's destination
entry before we enter the xfrm type input/output handlers."
On TIPC decryption path it has the same problem, and skb_dst_force()
should be called before doing decryption to avoid a possible crash.
Shuang reported this issue when this warning is triggered:
[] WARNING: include/net/dst.h:337 tipc_sk_rcv+0x1055/0x1ea0 [tipc]
[] Kdump: loaded Tainted: G W --------- - - 4.18.0-496.el8.x86_64+debug
[] Workqueue: crypto cryptd_queue_worker
[] RIP: 0010:tipc_sk_rcv+0x1055/0x1ea0 [tipc]
[] Call Trace:
[] tipc_sk_mcast_rcv+0x548/0xea0 [tipc]
[] tipc_rcv+0xcf5/0x1060 [tipc]
[] tipc_aead_decrypt_done+0x215/0x2e0 [tipc]
[] cryptd_aead_crypt+0xdb/0x190
[] cryptd_queue_worker+0xed/0x190
[] process_one_work+0x93d/0x17e0
📍 영향받는 시스템
TIPC 프로토콜이 활성화된 Linux 커널 (특히 4.18.0-496.el8.x86_64 버전 포함)
⚔️ 공격 벡터
TIPC 프로토콜을 사용하는 네트워크 환경에서 특수하게 조작된 암호화 패킷을 전송하여 커널 패닉 유도
🛡️ 대응 방법
커널 패치(commit 3bc07321ccc2 관련 수정 사항)를 적용하거나 TIPC 모듈을 비활성화
🔧 검증 코드
출력된 커널 버전이 취약점이 해결된 최신 패치 버전인지 확인