🇰🇷 한글 설명
Linux 커널의 vti6 터널 인터페이스에서 네트워크 네임스페이스 이동 시 발생하는 취약점입니다. 인터페이스가 다른 네임스페이스로 이동할 때 생성 당시의 네임스페이스 정보가 남아 있어, 네임스페이스 삭제 시 해제된 메모리에 접근하는 커널 버그가 발생합니다.
💡 쉬운 설명
네트워크 가상 공간을 옮기는 과정에서 시스템이 예전 정보를 잘못 참조하여 오류를 일으키는 문제입니다. 이를 통해 권한이 낮은 사용자가 시스템을 불안정하게 만들거나 충돌을 유도할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
ip6: vti: Use ip6_tnl.net in vti6_changelink().
ip netns add ns1
ip netns add ns2
ip -n ns1 link add vti6_test type vti6 remote ::1 local ::2 key 7
ip -n ns1 link set vti6_test netns ns2
ip -n ns2 link set vti6_test type vti6 remote ::3 local ::4 key 9
ip netns del ns2
ip netns del ns1
[ 132.495484] ------------[ cut here ]------------
[ 132.497609] kernel BUG at net/core/dev.c:12376!
Commit 61220ab34948 ("vti6: Enable namespace changing") dropped
NETIF_F_NETNS_LOCAL from vti6 devices. A vti6 tunnel can then
move through IFLA_NET_NS_FD. After the move dev_net(dev) points
at the new netns while t->net stays at the creation netns.
vti6_changelink() and vti6_update() still use dev_net(dev) and
dev_net(t->dev). They unlink from one per netns hash and relink
into another. The creation netns is left with a stale entry.
cleanup_net() of that netns later walks freed memory.
Reachable from an unprivileged user namespace (unshare --user
--map-root-user --net). Cross tenant scope on container hosts.
📍 영향받는 시스템
Linux kernel (vti6 관련 기능이 활성화된 버전)
⚔️ 공격 벡터
비특권 사용자 네임스페이스를 생성하여 vti6 인터페이스를 네임스페이스 간에 이동시키는 방식
🛡️ 대응 방법
vti6_changelink() 및 vti6_update() 함수가 수정된 최신 Linux 커널 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 패치된 최신 보안 업데이트 버전인지 확인하십시오.