🇰🇷 한글 설명
Linux 커널의 Mellanox 스위치 드라이버(mlxsw)에서 ACL TCAM 청크 마이그레이션 중 빈 리스트에 대한 list_first_entry() API를 확인 없이 호출하는 문제입니다. 이로 인해 커널 경고가 발생합니다.
💡 쉬운 설명
Linux 커널의 Mellanox 네트워크 드라이버에서 데이터 목록을 처리할 때 목록 확인 없이 접근하는 버그입니다. 커널 경고를 유발하지만 시스템 기능 장애는 경미합니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
mlxsw: spectrum_acl_tcam: Fix incorrect list API usage
Both the function that migrates all the chunks within a region and the
function that migrates all the entries within a chunk call
list_first_entry() on the respective lists without checking that the
lists are not empty. This is incorrect usage of the API, which leads to
the following warning [1].
Fix by returning if the lists are empty as there is nothing to migrate
in this case.
[1]
WARNING: CPU: 0 PID: 6437 at drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_tcam.c:1266 mlxsw_sp_acl_tcam_vchunk_migrate_all+0x1f1/0>
Modules linked in:
CPU: 0 PID: 6437 Comm: kworker/0:37 Not tainted 6.9.0-rc3-custom-00883-g94a65f079ef6 #39
Hardware name: Mellanox Technologies Ltd. MSN3700/VMOD0005, BIOS 5.11 01/06/2019
Workqueue: mlxsw_core mlxsw_sp_acl_tcam_vregion_rehash_work
RIP: 0010:mlxsw_sp_acl_tcam_vchunk_migrate_all+0x1f1/0x2c0
[...]
Call Trace:
<TASK>
mlxsw_sp_acl_tcam_vregion_rehash_work+0x6c/0x4a0
process_one_work+0x151/0x370
worker_thread+0x2cb/0x3e0
kthread+0xd0/0x100
ret_from_fork+0x34/0x50
ret_from_fork_asm+0x1a/0x30
</TASK>
📍 영향받는 시스템
Linux kernel 6.9.0-rc3 이전 버전의 Mellanox switch driver (mlxsw) 탑재 시스템
⚔️ 공격 벡터
시스템 내부에서 ACL TCAM 영역 재해시(rehash) 자동 트리거되는 내부 취약점 (외부 공격 불가)
🛡️ 대응 방법
Linux kernel을 6.9.0-rc3 이상 버전으로 업데이트
🔧 검증 코드
커널 버전이 6.9.0 이상이면 패치됨, mlxsw가 로드되지 않으면 영향 없음
uname -r && lsmod | grep mlxsw