🇰🇷 한글 설명
Linux 커널의 mlx5 드라이버에서 devlink를 통한 펌웨어 활성화 시, 동기식 리셋 언로드 이벤트 처리 과정에서 중복 잠금(double-locking) 문제가 발생합니다. 이로 인해 lockdep 어설션 경고가 발생하며 시스템 안정성에 영향을 줄 수 있습니다. 해당 문제는 언로드 이벤트 처리를 devlink 콜백 프로세스로 위임하여 해결되었습니다.
💡 쉬운 설명
네트워크 장치의 소프트웨어를 업데이트하는 과정에서 시스템 내부의 잠금 장치가 중복으로 작동하여 충돌이 발생하는 문제입니다. 이로 인해 시스템에 경고가 발생하거나 불안정해질 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
net/mlx5: Fix lockdep assertion on sync reset unload event
Fix lockdep assertion triggered during sync reset unload event. When the
sync reset flow is initiated using the devlink reload fw_activate
option, the PF already holds the devlink lock while handling unload
event. In this case, delegate sync reset unload event handling back to
the devlink callback process to avoid double-locking and resolve the
lockdep warning.
Kernel log:
WARNING: CPU: 9 PID: 1578 at devl_assert_locked+0x31/0x40
[...]
Call Trace:
<TASK>
mlx5_unload_one_devl_locked+0x2c/0xc0 [mlx5_core]
mlx5_sync_reset_unload_event+0xaf/0x2f0 [mlx5_core]
process_one_work+0x222/0x640
worker_thread+0x199/0x350
kthread+0x10b/0x230
? __pfx_worker_thread+0x10/0x10
? __pfx_kthread+0x10/0x10
ret_from_fork+0x8e/0x100
? __pfx_kthread+0x10/0x10
ret_from_fork_asm+0x1a/0x30
</TASK>
📍 영향받는 시스템
Linux kernel (mlx5_core 드라이버를 사용하는 시스템)
⚔️ 공격 벡터
로컬 권한을 가진 사용자가 devlink를 통해 펌웨어 재활성화를 시도할 때 발생 가능
🛡️ 대응 방법
mlx5 드라이버의 lockdep 어설션 수정 사항이 반영된 최신 Linux 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 패치된 최신 버전인지 확인