🇰🇷 한글 설명
Linux 커널의 TIPC 프로토콜 구현에서 tipc_msg_validate() 함수 호출 후 기존 skb(socket buffer)가 해제됨에도 불구하고, 해제된 메모리의 control block(cb)을 참조하여 발생하는 Use-After-Free 취약점입니다. 이로 인해 시스템 크래시나 권한 상승이 발생할 수 있습니다.
💡 쉬운 설명
이미 사용이 끝나서 버려진 메모리 주소를 프로그램이 다시 사용하려고 시도할 때 발생하는 오류입니다. 이 오류를 이용하면 컴퓨터 시스템을 멈추게 하거나 해커가 시스템 제어권을 뺏을 위험이 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
tipc: re-fetch skb cb after tipc_msg_validate
As the call trace shows, the original skb was freed in tipc_msg_validate(),
and dereferencing the old skb cb would cause an use-after-free crash.
BUG: KASAN: use-after-free in tipc_crypto_rcv_complete+0x1835/0x2240 [tipc]
Call Trace:
<IRQ>
tipc_crypto_rcv_complete+0x1835/0x2240 [tipc]
tipc_crypto_rcv+0xd32/0x1ec0 [tipc]
tipc_rcv+0x744/0x1150 [tipc]
...
Allocated by task 47078:
kmem_cache_alloc_node+0x158/0x4d0
__alloc_skb+0x1c1/0x270
tipc_buf_acquire+0x1e/0xe0 [tipc]
tipc_msg_create+0x33/0x1c0 [tipc]
tipc_link_build_proto_msg+0x38a/0x2100 [tipc]
tipc_link_timeout+0x8b8/0xef0 [tipc]
tipc_node_timeout+0x2a1/0x960 [tipc]
call_timer_fn+0x2d/0x1c0
...
Freed by task 47078:
tipc_msg_validate+0x7b/0x440 [tipc]
tipc_crypto_rcv_complete+0x4b5/0x2240 [tipc]
tipc_crypto_rcv+0xd32/0x1ec0 [tipc]
tipc_rcv+0x744/0x1150 [tipc]
This patch fixes it by re-fetching the skb cb from the new allocated skb
after calling tipc_msg_validate().
📍 영향받는 시스템
TIPC 프로토콜이 활성화된 Linux 커널 버전
⚔️ 공격 벡터
조작된 TIPC 메시지를 전송하여 메모리 해제 후 참조(Use-After-Free) 유도
🛡️ 대응 방법
TIPC 관련 보안 패치가 적용된 최신 Linux 커널로 업데이트
🔧 검증 코드
현재 실행 중인 커널 버전을 확인하여 보안 패치가 적용된 버전인지 확인합니다.