🇰🇷 한글 설명
Linux 커널의 sparx5 네트워크 드라이버에서 PTP(Precision Time Protocol) 초기화가 건너뛰어진 경우, 드라이버 해제 시 초기화되지 않은 tx_skbs 큐를 정리하려다 NULL 포인터 역참조가 발생합니다. 이로 인해 커널 패닉이 발생하여 시스템이 충돌할 수 있습니다.
💡 쉬운 설명
네트워크 장치의 시간 동기화 기능을 사용하지 않을 때, 장치를 제거하려고 하면 컴퓨터 시스템이 갑자기 멈추거나 꺼질 수 있는 오류입니다. 초기화되지 않은 메모리 영역을 잘못 건드려서 발생하는 문제입니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
net: sparx5: skip ptp deinit if init was skipped
sparx5_ptp_init() returns early on the base lan969x variants
because they do not have the SPX5_FEATURE_PTP flag. It also returns early
when no "ptp" interrupt is described. Unbinding the driver then causes a
NULL pointer dereference when cleaning up uninitialized tx_skbs queues:
Unable to handle kernel NULL pointer dereference at virtual address
0000000000000008
Call trace:
skb_queue_purge_reason+0x68/0x120 (P)
sparx5_ptp_deinit+0x64/0xc0
mchp_sparx5_remove+0x38/0x70
platform_remove+0x20/0x30
device_remove+0x4c/0x80
Before per-port tx_skbs were added, a NULL dereference would have happened
when calling ptp_clock_unregister() on the never-registered PTP clocks.
Fix by returning early in sparx5_ptp_deinit() if PTP is not used.
📍 영향받는 시스템
Linux kernel (sparx5 network driver components)
⚔️ 공격 벡터
로컬 공격자가 드라이버를 언바인딩(Unbinding)하거나 장치를 제거하는 동작을 유도하여 커널 패닉 유발
🛡️ 대응 방법
PTP가 사용되지 않는 경우 deinit 과정을 건너뛰도록 수정된 최신 Linux 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인