🇰🇷 한글 설명
Linux 커널의 TLS 구현에서 TCP의 공격적인 skb 압축 과정으로 인해 발생하는 Use-After-Free 취약점입니다. TLS 수신 큐를 확인할 때 이미 해제된 오래된 skb에 접근하여 메모리 오류를 유발할 수 있습니다.
💡 쉬운 설명
컴퓨터가 네트워크 데이터를 처리할 때 이미 삭제된 데이터 조각을 다시 사용하려고 시도하여 발생하는 오류입니다. 이로 인해 시스템이 멈추거나 보안 문제가 생길 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
tls: always refresh the queue when reading sock
After recent changes in net-next TCP compacts skbs much more
aggressively. This unearthed a bug in TLS where we may try
to operate on an old skb when checking if all skbs in the
queue have matching decrypt state and geometry.
BUG: KASAN: slab-use-after-free in tls_strp_check_rcv+0x898/0x9a0 [tls]
(net/tls/tls_strp.c:436 net/tls/tls_strp.c:530 net/tls/tls_strp.c:544)
Read of size 4 at addr ffff888013085750 by task tls/13529
CPU: 2 UID: 0 PID: 13529 Comm: tls Not tainted 6.16.0-rc5-virtme
Call Trace:
kasan_report+0xca/0x100
tls_strp_check_rcv+0x898/0x9a0 [tls]
tls_rx_rec_wait+0x2c9/0x8d0 [tls]
tls_sw_recvmsg+0x40f/0x1aa0 [tls]
inet_recvmsg+0x1c3/0x1f0
Always reload the queue, fast path is to have the record in the queue
when we wake, anyway (IOW the path going down "if !strp->stm.full_len").
📍 영향받는 시스템
Linux kernel (net-next/6.16.0-rc5 및 관련 TLS 모듈 사용 버전)
⚔️ 공격 벡터
조작된 TCP 패킷을 전송하여 커널의 skb 압축 및 TLS 수신 로직을 트리거함으로써 발생
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 커널 버전이 취약점이 해결된 최신 패치 버전인지 확인하십시오.