🇰🇷 한글 설명
Linux 커널의 mlx5e 드라이버 내 mlx5_tc_ct_entry_add_rule() 함수에서 오류 발생 시 초기화되지 않은 zone_rule->attr를 참조하여 NULL 포인터 역참조가 발생하는 취약점입니다. 이로 인해 커널 패닉이 발생하여 시스템이 중단될 수 있습니다.
💡 쉬운 설명
네트워크 장치 드라이버가 작업을 처리하다가 오류가 났을 때, 잘못된 메모리 주소를 참조하여 컴퓨터 시스템이 갑자기 멈추거나 꺼질 수 있는 문제입니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
net/mlx5e: CT: Fix null-ptr-deref in add rule err flow
In error flow of mlx5_tc_ct_entry_add_rule(), in case ct_rule_add()
callback returns error, zone_rule->attr is used uninitiated. Fix it to
use attr which has the needed pointer value.
Kernel log:
BUG: kernel NULL pointer dereference, address: 0000000000000110
RIP: 0010:mlx5_tc_ct_entry_add_rule+0x2b1/0x2f0 [mlx5_core]
…
Call Trace:
<TASK>
? __die+0x20/0x70
? page_fault_oops+0x150/0x3e0
? exc_page_fault+0x74/0x140
? asm_exc_page_fault+0x22/0x30
? mlx5_tc_ct_entry_add_rule+0x2b1/0x2f0 [mlx5_core]
? mlx5_tc_ct_entry_add_rule+0x1d5/0x2f0 [mlx5_core]
mlx5_tc_ct_block_flow_offload+0xc6a/0xf90 [mlx5_core]
? nf_flow_offload_tuple+0xd8/0x190 [nf_flow_table]
nf_flow_offload_tuple+0xd8/0x190 [nf_flow_table]
flow_offload_work_handler+0x142/0x320 [nf_flow_table]
? finish_task_switch.isra.0+0x15b/0x2b0
process_one_work+0x16c/0x320
worker_thread+0x28c/0x3a0
? __pfx_worker_thread+0x10/0x10
kthread+0xb8/0xf0
? __pfx_kthread+0x10/0x10
ret_from_fork+0x2d/0x50
? __pfx_kthread+0x10/0x10
ret_from_fork_asm+0x1a/0x30
</TASK>
📍 영향받는 시스템
Linux kernel (mlx5_core 드라이버를 사용하는 시스템)
⚔️ 공격 벡터
특정 네트워크 규칙(Connection Tracking) 추가 과정에서 의도적으로 오류를 유발하여 커널 패닉을 일으키는 방식
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인하십시오.