🇰🇷 한글 설명
Linux 커널의 HSR(High-availability Seamless Redundancy) 네트워크 모듈에서 슬레이브 장치가 등록 해제될 때 VLAN 정보가 제대로 삭제되지 않아 메모리 누수가 발생하는 취약점입니다. HSR 마스터가 슬레이브에 동기화한 VLAN ID를 제거하지 않아, 슬레이브 장치 파괴 시에도 관련 구조체가 메모리에 남아 있게 됩니다.
💡 쉬운 설명
네트워크 장치를 연결했다가 해제할 때, 사용하던 메모리를 깨끗이 치우지 않고 남겨두는 버그가 있습니다. 이 문제가 반복되면 컴퓨터의 메모리가 조금씩 낭비되어 시스템 성능에 영향을 줄 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
net: hsr: fix memory leak on slave unregistration by removing synced VLANs
When an HSR master device is brought UP, it auto-adds VLAN 0 via
vlan_vid0_add(), which propagates VID 0 to its slave devices (slave A and B).
If a slave device is later unregistered while HSR is active (e.g., during
netns cleanup or interface destruction), hsr_del_port() is called to
detach the slave port from the HSR master. However, hsr_del_port() currently
does not delete the VLAN IDs that were synced to the slave device by HSR.
As a result, the slave device retains a refcount on VID 0 (and any other
synced VLANs). When the slave device is destroyed, its vlan_info /
vlan_vid_info structure remains allocated, leading to a memory leak.
Fix this by calling vlan_vids_del_by_dev(port->dev, master->dev) in
hsr_del_port() before unlinking slave A or slave B ports, matching the
propagation logic in hsr_ndo_vlan_rx_add_vid() / hsr_ndo_vlan_rx_kill_vid()
and the cleanup behavior in bonding and team drivers.
📍 영향받는 시스템
Linux kernel (HSR 모듈을 사용하는 버전)
⚔️ 공격 벡터
직접적인 공격은 어려우나, 네트워크 인터페이스를 반복적으로 생성 및 삭제하여 메모리 고갈을 유도할 수 있음
🛡️ 대응 방법
HSR 관련 메모리 누수 수정 패치가 적용된 최신 Linux 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 버전인지 배포판 보안 공지를 통해 확인