🇰🇷 한글 설명
Linux 커널의 gve 드라이버에서 queue 개수 변경 시 메모리 통계 영역이 손상되는 취약점입니다. Queue 수 증가 시 할당된 영역을 넘어 메모리 손상이 발생하고, 감소 시 부정확한 통계 보고가 나타납니다.
💡 쉬운 설명
네트워크 카드 드라이버가 처리 큐 개수 변경 시 메모리 크기를 제대로 조정하지 못해 데이터 손상이 발생하는 문제입니다. 이는 시스템 정보가 잘못되거나 메모리가 파괴될 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
gve: Fix stats report corruption on queue count change
The driver and the NIC share a region in memory for stats reporting.
The NIC calculates its offset into this region based on the total size
of the stats region and the size of the NIC's stats.
When the number of queues is changed, the driver's stats region is
resized. If the queue count is increased, the NIC can write past
the end of the allocated stats region, causing memory corruption.
If the queue count is decreased, there is a gap between the driver
and NIC stats, leading to incorrect stats reporting.
This change fixes the issue by allocating stats region with maximum
size, and the offset calculation for NIC stats is changed to match
with the calculation of the NIC.
📍 영향받는 시스템
Google Virtual Ethernet (gve) 드라이버를 사용하는 Linux 커널 시스템 전체
⚔️ 공격 벡터
로컬 공격자가 queue count 변경을 통해 메모리 손상 유발 (관리자 권한 필요)
🛡️ 대응 방법
Linux 커널을 최신 버전으로 업데이트하여 gve 드라이버 패치 적용
🔧 검증 코드
GVE 드라이버가 로드되어 있으면 표시된 커널 버전의 취약점 패치 상태를 확인하여 커널 업그레이드 필요 여부 결정
grep gve /proc/modules && echo 'Vulnerable driver loaded' && uname -r || echo 'GVE driver not active'