🇰🇷 한글 설명
Linux 커널의 ethtool 구성 요소에서 EEPROM Netlink 폴백 경로의 경계 검사 미흡으로 인한 취약점입니다. 기존 ioctl 방식과 달리 오프셋과 길이를 합산한 전체 범위 검증이 누락되어 메모리 경계를 벗어날 위험이 있습니다.
💡 쉬운 설명
네트워크 장비의 정보를 읽어오는 과정에서 데이터의 범위를 제대로 확인하지 않아 발생하는 문제입니다. 이로 인해 허용되지 않은 메모리 영역에 접근하거나 잘못된 데이터를 읽을 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
ethtool: eeprom: add more safeties to EEPROM Netlink fallback
The Netlink fallback path for reading module EEPROM
(fallback_set_params()) validates that offset < eeprom_len,
but does not check that offset + length stays within eeprom_len.
The ioctl equivalent (ethtool_get_any_eeprom() in ioctl.c) has
always enforced both bounds:
if (eeprom.offset + eeprom.len > total_len)
return -EINVAL;
This could lead to surprises in both drivers and device FW.
Add the missing offset + length validation to fallback_set_params(),
mirroring the ioctl.
Similarly - ethtool core in general, and ethtool_get_any_eeprom()
in particular tries to zero-init all buffers passed to the drivers
to avoid any extra work of zeroing things out. eeprom_fallback()
uses a plain kmalloc(), change it to zalloc.
📍 영향받는 시스템
Linux Kernel (ethtool 모듈 포함 버전)
⚔️ 공격 벡터
Netlink 인터페이스를 통해 조작된 오프셋 및 길이 값을 전달하여 경계 검사 우회
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트
🔧 검증 코드
현재 실행 중인 커널 버전을 확인하여 취약점이 해결된 패치 버전인지 확인합니다.