🇰🇷 한글 설명
리눅스 커널의 ip_gre 및 erspan 터널링 구현에서 권한 검증 미흡으로 인해 발생하는 취약점입니다. 특정 네트워크 네임스페이스(netns)에서 권한이 있는 사용자가 자신이 권한이 없는 다른 네임스페이스에 속한 터널 설정을 임의로 변경할 수 있습니다.
💡 쉬운 설명
네트워크 설정 권한이 제한된 사용자가 시스템의 보안 경계를 넘어 다른 네트워크 통로의 설정을 몰래 바꿀 수 있는 문제입니다. 이는 네트워크 트래픽을 가로채거나 조작하는 데 악용될 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
net: ip_gre: require CAP_NET_ADMIN in the device netns for changelink
A tunnel changelink() operates on at most two netns, dev_net(dev) and
the tunnel link netns t->net. They differ once the device is created in
or moved to a netns other than the one the request runs in. The rtnl
changelink path checks CAP_NET_ADMIN only against dev_net(dev), so a
caller privileged there but not in t->net can rewrite a tunnel that
lives in t->net.
Add rtnl_dev_link_net_capable() next to rtnl_get_net_ns_capable() in
net/core/rtnetlink.c. It requires CAP_NET_ADMIN in the link netns and is
skipped when the link netns is dev_net(dev), where the rtnl path already
checked it. The other patches in this series use the same helper.
Gate ipgre_changelink() and erspan_changelink() with it, at the top of
the op before any attribute is parsed, because the parsers update live
tunnel fields first. ipgre_netlink_parms() sets t->collect_md before
ip_tunnel_changelink() runs.
Commit 8b484efd5cb4 ("ip6: vti: Use ip6_tnl.net in
vti6_siocdevprivate().") added the same check on the ioctl path. This
adds it on RTM_NEWLINK.
📍 영향받는 시스템
CAP_NET_ADMIN 권한 검증이 누락된 특정 버전의 Linux Kernel (ip_gre, erspan 관련 모듈 포함)
⚔️ 공격 벡터
권한이 있는 네트워크 네임스페이스에서 다른 네임스페이스에 속한 터널 링크에 대한 changelink 요청을 전송
🛡️ 대응 방법
해당 취약점이 수정된 최신 버전의 리눅스 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 패치된 보안 업데이트 버전인지 배포판 보안 공지를 통해 확인