🔍 CVE-2026-23386

5.5
CVSS Score
MEDIUM
2026-03-25
2026-11-05 22:18
✅ 완료

🇰🇷 한글 설명

Linux 커널 gve 드라이버의 DQ-QPL 모드에서 gve_tx_clean_pending_packets() 함수가 잘못된 RDA 버퍼 정리 경로를 사용하여 DMA 배열 범위를 벗어난 접근(out-of-bounds)이 발생합니다. 수정은 QPL 모드를 올바르게 확인하고 gve_free_tx_qpl_bufs()로 버퍼를 회수하도록 변경하는 것입니다.

💡 쉬운 설명

Google 가상 네트워크 드라이버가 네트워크 전송 버퍼를 잘못된 방식으로 정리하여 메모리 범위를 벗어난 접근이 일어날 수 있는 문제입니다. 커널 업데이트로 올바른 정리 방식을 사용하도록 고쳐집니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: gve: fix incorrect buffer cleanup in gve_tx_clean_pending_packets for QPL In DQ-QPL mode, gve_tx_clean_pending_packets() incorrectly uses the RDA buffer cleanup path. It iterates num_bufs times and attempts to unmap entries in the dma array. This leads to two issues: 1. The dma array shares storage with tx_qpl_buf_ids (union). Interpreting buffer IDs as DMA addresses results in attempting to unmap incorrect memory locations. 2. num_bufs in QPL mode (counting 2K chunks) can significantly exceed the size of the dma array, causing out-of-bounds access warnings (trace below is how we noticed this issue). UBSAN: array-index-out-of-bounds in drivers/net/ethernet/drivers/net/ethernet/google/gve/gve_tx_dqo.c:178:5 index 18 is out of range for type 'dma_addr_t[18]' (aka 'unsigned long long[18]') Workqueue: gve gve_service_task [gve] Call Trace: <TASK> dump_stack_lvl+0x33/0xa0 __ubsan_handle_out_of_bounds+0xdc/0x110 gve_tx_stop_ring_dqo+0x182/0x200 [gve] gve_close+0x1be/0x450 [gve] gve_reset+0x99/0x120 [gve] gve_service_task+0x61/0x100 [gve] process_scheduled_works+0x1e9/0x380 Fix this by properly checking for QPL mode and delegating to gve_free_tx_qpl_bufs() to reclaim the buffers.

📍 영향받는 시스템

Linux 커널 gve 드라이버(Google Compute Engine 가상 NIC)를 사용하는 수정 전 커널 버전

⚔️ 공격 벡터

로컬 권한이 있는 사용자 또는 드라이버 재설정 상황에서 발생하는 메모리 접근 오류로, 원격 공격 경로는 명확하지 않음

🛡️ 대응 방법

배포판 제공 최신 Linux 커널 보안 업데이트를 적용하고 재부팅

🔧 검증 코드

출력된 커널 버전이 배포판의 패치된 버전(또는 해당 수정 커밋이 포함된 버전)보다 최신인지 배포판 보안 공지와 대조하여 확인하며, 패치 적용 여부는 changelog(예: apt changelog linux-image-$(uname -r))로도 확인할 수 있습니다.

Shell / Script
uname -r

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H

💻 영향받는 소프트웨어

Linux Kernel