🇰🇷 한글 설명
Linux 커널 octeon_ep 드라이버에서 디바이스가 하트비트 메시지를 잃었을 때 드라이버가 ndo_stop을 호출해 리소스를 해제하는데, 드라이버 언로드 시 이미 해제된 리소스를 다시 해제하려다 호스트가 멎는 문제가 있었습니다. 수정으로 디바이스별 stop 함수 대신 dev_close를 호출하도록 변경되었습니다.
💡 쉬운 설명
서버의 특정 네트워크 장치가 재부팅되는 상황에서 같은 정리 작업이 두 번 실행되면서 서버 전체가 멈출 수 있었습니다. 이제는 장치가 이미 꺼져 있으면 중복 정리가 일어나지 않도록 고쳐졌습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
octeon_ep: Fix host hang issue during device reboot
When the host loses heartbeat messages from the device,
the driver calls the device-specific ndo_stop function,
which frees the resources. If the driver is unloaded in
this scenario, it calls ndo_stop again, attempting to free
resources that have already been freed, leading to a host
hang issue. To resolve this, dev_close should be called
instead of the device-specific stop function.dev_close
internally calls ndo_stop to stop the network interface
and performs additional cleanup tasks. During the driver
unload process, if the device is already down, ndo_stop
is not called.
📍 영향받는 시스템
Marvell OCTEON 기반 장치를 사용하는 Linux 커널 (octeon_ep 드라이버 탑재 버전)
⚔️ 공격 벡터
네트워크 공격이 아닌 장치 하트비트 손실 및 드라이버 언로드 과정에서 발생하는 결함으로, 로컬 권한 환경에서 장치 재부팅 상황을 유발해 호스트 행(hang)을 일으킬 수 있습니다.
🛡️ 대응 방법
Linux 커널을 해당 CVE 수정이 포함된 최신 안정 버전으로 업데이트하고 재부팅합니다.
🔧 검증 코드
출력된 커널 버전이 배포판의 CVE 수정 패치 버전 이상이면 수정된 것이고, octeon_ep 모듈이 없으면 해당 드라이버가 설치되지 않은 것이므로 영향이 없습니다.
uname -r; (modinfo octeon_ep 2>/dev/null | grep -E '^(version|srcversion|filename)'); (dpkg -l linux-image-$(uname -r) 2>/dev/null | tail -1)