🔍 CVE-2025-40189

0.0
CVSS Score
UNKNOWN
2025-11-12
2026-10-19 21:10
✅ 완료

🇰🇷 한글 설명

Linux 커널의 lan78xx 드라이버에서 EEPROM 읽기 작업 중 타임아웃 오류(-ETIMEDOUT)가 발생했을 때 이를 제대로 처리하지 못하는 취약점이 발견되었습니다. 이로 인해 오류가 발생했음에도 불구하고 호출자가 데이터 버퍼를 유효한 것으로 잘못 판단하여 초기화되지 않은 값을 사용할 수 있는 문제가 발생합니다.

💡 쉬운 설명

장치에서 정보를 읽어오려다 시간이 초과되어 실패했는데, 시스템이 이를 성공한 것으로 착각하는 오류입니다. 이 때문에 잘못된 데이터나 쓰레기 값이 시스템에 사용되어 오작동을 일으킬 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: net: usb: lan78xx: Fix lost EEPROM read timeout error(-ETIMEDOUT) in lan78xx_read_raw_eeprom Syzbot reported read of uninitialized variable BUG with following call stack. lan78xx 8-1:1.0 (unnamed net_device) (uninitialized): EEPROM read operation timeout ===================================================== BUG: KMSAN: uninit-value in lan78xx_read_eeprom drivers/net/usb/lan78xx.c:1095 [inline] BUG: KMSAN: uninit-value in lan78xx_init_mac_address drivers/net/usb/lan78xx.c:1937 [inline] BUG: KMSAN: uninit-value in lan78xx_reset+0x999/0x2cd0 drivers/net/usb/lan78xx.c:3241 lan78xx_read_eeprom drivers/net/usb/lan78xx.c:1095 [inline] lan78xx_init_mac_address drivers/net/usb/lan78xx.c:1937 [inline] lan78xx_reset+0x999/0x2cd0 drivers/net/usb/lan78xx.c:3241 lan78xx_bind+0x711/0x1690 drivers/net/usb/lan78xx.c:3766 lan78xx_probe+0x225c/0x3310 drivers/net/usb/lan78xx.c:4707 Local variable sig.i.i created at: lan78xx_read_eeprom drivers/net/usb/lan78xx.c:1092 [inline] lan78xx_init_mac_address drivers/net/usb/lan78xx.c:1937 [inline] lan78xx_reset+0x77e/0x2cd0 drivers/net/usb/lan78xx.c:3241 lan78xx_bind+0x711/0x1690 drivers/net/usb/lan78xx.c:3766 The function lan78xx_read_raw_eeprom failed to properly propagate EEPROM read timeout errors (-ETIMEDOUT). In the fallthrough path, it first attempted to restore the pin configuration for LED outputs and then returned only the status of that restore operation, discarding the original timeout error. As a result, callers could mistakenly treat the data buffer as valid even though the EEPROM read had actually timed out with no data or partial data. To fix this, handle errors in restoring the LED pin configuration separately. If the restore succeeds, return any prior EEPROM timeout error correctly to the caller.

📍 영향받는 시스템

Linux kernel (lan78xx USB Ethernet driver 사용 시스템)

⚔️ 공격 벡터

물리적 장치 연결 또는 하드웨어 응답 지연을 유도하여 타임아웃 발생 시 초기화되지 않은 메모리 값 참조 유도

🛡️ 대응 방법

Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 lan78xx_read_raw_eeprom 함수의 오류 처리 로직을 수정해야 합니다.

🔧 검증 코드

출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인합니다.

Shell / Script
uname -r

💻 영향받는 소프트웨어

Linux Kernel