🇰🇷 한글 설명
Linux 커널의 VXLAN 구현에서 changelink 작업 시 장치가 속한 네트워크 네임스페이스(netns)에 대한 CAP_NET_ADMIN 권한 검사가 누락되었습니다. 이로 인해 특정 네임스페이스에서 권한을 가진 사용자가 다른 네임스페이스에 있는 VXLAN 장치의 설정을 임의로 변경할 수 있는 취약점이 존재합니다.
💡 쉬운 설명
네트워크 설정 권한이 제한된 사용자가 권한이 없는 다른 네트워크 영역의 설정을 마음대로 바꿀 수 있는 보안 허점이 발견되었습니다. 이로 인해 네트워크 통신 경로가 조작될 위험이 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
vxlan: require CAP_NET_ADMIN in the device netns for changelink
A tunnel changelink() operates on at most two netns, dev_net(dev) and
the sticky underlay netns vxlan->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 vxlan->net can rewrite a vxlan
device whose underlay lives in vxlan->net.
vxlan_changelink() validates and applies the new configuration against
vxlan->net (vxlan_config_validate(vxlan->net, ...)) and can reopen the
underlay socket in that netns, so the same reasoning as the tunnel
changelink series applies here.
Gate vxlan_changelink() with rtnl_dev_link_net_capable(), at the top of
the op before any attribute is parsed, matching ipgre_changelink() and
the rest of the "require CAP_NET_ADMIN in the device netns for
changelink" series.
Found by 0sec automated security-research tooling (https://0sec.ai).
📍 영향받는 시스템
CAP_NET_ADMIN 권한 검사가 미흡한 Linux 커널 버전 (VXLAN 모듈 포함)
⚔️ 공격 벡터
권한이 있는 네트워크 네임스페이스에서 다른 네임스페이스에 속한 VXLAN 장치의 changelink 요청을 전송
🛡️ 대응 방법
VXLAN changelink 작업 시 장치가 속한 네임스페이스의 권한을 확인하도록 커널 패치 적용
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 패치된 최신 보안 업데이트 버전인지 확인