🇰🇷 한글 설명
Linux 커널의 octeontx2-af 드라이버에서 rvu_mbox_handler_rep_event_notify 함수가 요청 본문의 pcifunc 값을 검증 없이 처리하여 발생하는 취약점입니다. 공격자가 조작된 pcifunc 값을 전달할 경우, 할당된 배열 범위를 벗어난 메모리에 데이터를 쓰는 Out-of-Bounds(OOB) 쓰기 오류가 발생할 수 있습니다.
💡 쉬운 설명
네트워크 장치 드라이버가 잘못된 번호가 적힌 명령을 받았을 때, 이를 확인하지 않고 메모리의 엉뚱한 곳에 기록하여 시스템을 망가뜨릴 수 있는 문제입니다. 공격자가 이 허점을 이용하면 시스템의 중요한 정보를 조작하거나 제어권을 얻을 위험이 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
octeontx2-af: validate body pcifunc in rvu_mbox_handler_rep_event_notify
rvu_mbox_handler_rep_event_notify() in drivers/net/ethernet/marvell/
octeontx2/af/rvu_rep.c queues a sender-controlled REP_EVENT_NOTIFY
request body verbatim, and rvu_rep_up_notify() then forwards
event->pcifunc (the nested body field, distinct from the
AF-normalised header pcifunc) into rvu_get_pfvf(), rvu_get_pf() and
the AF->PF mailbox device index without any bounds check.
A VF attached to a PF that has been put into switchdev
representor mode reaches this path: the VF mailbox handler
otx2_pfvf_mbox_handler() forwards every message id including
MBOX_MSG_REP_EVENT_NOTIFY to AF without an allowlist, and the AF
dispatcher rewrites only msg->pcifunc, leaving struct
rep_event::pcifunc attacker-controlled. The sibling
rvu_mbox_handler_esw_cfg() refuses requests whose header pcifunc
is not rvu->rep_pcifunc; this handler has no equivalent gate.
An out-of-range body pcifunc selects an &rvu->pf[]/&rvu->hwvf[]
element past the allocated array and, for RVU_EVENT_MAC_ADDR_CHANGE,
turns into a six-byte attacker-chosen OOB ether_addr_copy() target
inside the queued worker; KASAN reports a slab-out-of-bounds write
in rvu_rep_wq_handler.
Reject malformed requests at the handler entry by gating on
is_pf_func_valid(), which is already the canonical PF/VF range check
in this driver; expose it via rvu.h so callers in rvu_rep.c can use
it instead of open-coding the same range arithmetic.
📍 영향받는 시스템
Linux kernel (octeontx2-af driver components)
⚔️ 공격 벡터
조작된 REP_EVENT_NOTIFY 메시지를 포함한 VF mailbox 요청을 통한 메모리 OOB 쓰기
🛡️ 대응 방법
is_pf_func_valid() 함수를 사용하여 rvu_mbox_handler_rep_event_notify 진입 시 pcifunc 범위를 검증하도록 커널 패치 적용
🔧 검증 코드
출력된 커널 버전을 확인하여 해당 취약점이 해결된 최신 보안 패치 버전인지 확인합니다.