🇰🇷 한글 설명
리눅스 커널의 tcp_ao_established_key() 함수에서 twsk 구조체에 대한 경계 외 접근(out-of-bounds access) 취약점이 발견되었습니다. TCP_TIME_WAIT 상태의 소켓에 대해 lockdep_sock_is_held()를 호출할 때 sk_lock이 없어 발생하는 문제로, 이를 수정하기 위해 해당 함수 호출을 제거했습니다.
💡 쉬운 설명
리눅스 운영체제의 네트워크 통신을 관리하는 핵심 코드에서 메모리의 잘못된 영역을 참조하는 오류가 있었습니다. 이 오류는 시스템의 안정성을 해칠 수 있으며, 보안 검사 도구가 잘못된 위치를 확인하려다 발생한 문제입니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
tcp: Fix out-of-bounds access for twsk in tcp_ao_established_key().
lockdep_sock_is_held() was added in tcp_ao_established_key()
by the cited commit.
It can be called from tcp_v[46]_timewait_ack() with twsk.
Since it does not have sk->sk_lock, the lockdep annotation
results in out-of-bound access.
$ pahole -C tcp_timewait_sock vmlinux | grep size
/* size: 288, cachelines: 5, members: 8 */
$ pahole -C sock vmlinux | grep sk_lock
socket_lock_t sk_lock; /* 440 192 */
Let's not use lockdep_sock_is_held() for TCP_TIME_WAIT.
📍 영향받는 시스템
Linux Kernel (TCP_TIME_WAIT 관련 기능이 포함된 버전)
⚔️ 공격 벡터
직접적인 공격보다는 커널의 메모리 오류를 유발하여 시스템 불안정성을 초래할 수 있는 로컬/원격 네트워크 트래픽
🛡️ 대응 방법
해당 취약점이 수정된 최신 리눅스 커널 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 커널 버전이 해당 패치가 적용된 최신 배포판의 버전인지 확인하십시오.