🇰🇷 한글 설명
Linux 커널의 espintcp 구성 요소에서 네트워크 네임스페이스(netns) 삭제 시 참조 누수가 발생하는 취약점입니다. encap 소켓 캐싱 방식으로 인해 xfrm_state가 netns에 대한 참조를 유지하게 되어, 네임스페이스가 정상적으로 삭제되지 않는 문제가 발생할 수 있습니다.
💡 쉬운 설명
컴퓨터 내부의 가상 네트워크 공간을 삭제하려고 할 때, 특정 데이터가 공간을 붙잡고 있어 삭제가 안 되는 현상입니다. 이로 인해 시스템 자원이 계속 쌓여 메모리 부족 등의 문제를 일으킬 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
espintcp: remove encap socket caching to avoid reference leak
The current scheme for caching the encap socket can lead to reference
leaks when we try to delete the netns.
The reference chain is: xfrm_state -> enacp_sk -> netns
Since the encap socket is a userspace socket, it holds a reference on
the netns. If we delete the espintcp state (through flush or
individual delete) before removing the netns, the reference on the
socket is dropped and the netns is correctly deleted. Otherwise, the
netns may not be reachable anymore (if all processes within the ns
have terminated), so we cannot delete the xfrm state to drop its
reference on the socket.
This patch results in a small (~2% in my tests) performance
regression.
A GC-type mechanism could be added for the socket cache, to clear
references if the state hasn't been used "recently", but it's a lot
more complex than just not caching the socket.
📍 영향받는 시스템
Linux Kernel (espintcp 모듈을 사용하는 버전)
⚔️ 공격 벡터
로컬 공격자가 네트워크 네임스페이스를 반복적으로 생성하고 삭제함으로써 시스템 자원(메모리) 고갈 유도
🛡️ 대응 방법
해당 취약점이 해결된 최신 Linux 커널 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 패치가 적용된 최신 보안 업데이트 버전인지 확인