🔍 CVE-2023-53142

7.8
CVSS Score
HIGH
2025-05-02
2026-11-05 21:17
✅ 완료

🇰🇷 한글 설명

Linux 커널의 ice 드라이버에서 ice_get_module_eeprom() 함수가 모듈 EEPROM을 8바이트 블록 단위로 읽을 때, 버퍼 오버플로를 막는 조건이 마지막 블록을 누락시켜 실제 데이터가 아닌 0으로 채워진 블록이 반환되는 문제입니다. 이 결함은 ethtool -m 결과의 정확성에 영향을 주며, 해당 커밋 이후 발생한 회귀 버그입니다.

💡 쉬운 설명

네트워크 카드에 꽂힌 광 모듈의 정보를 읽을 때 마지막 부분의 데이터가 빠져서 0으로 표시됩니다. 보안 침해보다는 장치 정보 조회가 부정확해지는 기능적 오류에 가깝습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: ice: copy last block omitted in ice_get_module_eeprom() ice_get_module_eeprom() is broken since commit e9c9692c8a81 ("ice: Reimplement module reads used by ethtool") In this refactor, ice_get_module_eeprom() reads the eeprom in blocks of size 8. But the condition that should protect the buffer overflow ignores the last block. The last block always contains zeros. Bug uncovered by ethtool upstream commit 9538f384b535 ("netlink: eeprom: Defer page requests to individual parsers") After this commit, ethtool reads a block with length = 1; to read the SFF-8024 identifier value. unpatched driver: $ ethtool -m enp65s0f0np0 offset 0x90 length 8 Offset Values ------ ------ 0x0090: 00 00 00 00 00 00 00 00 $ ethtool -m enp65s0f0np0 offset 0x90 length 12 Offset Values ------ ------ 0x0090: 00 00 01 a0 4d 65 6c 6c 00 00 00 00 $ $ ethtool -m enp65s0f0np0 Offset Values ------ ------ 0x0000: 11 06 06 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0060: 00 00 00 00 00 00 00 00 00 00 00 00 00 01 08 00 0x0070: 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 patched driver: $ ethtool -m enp65s0f0np0 offset 0x90 length 8 Offset Values ------ ------ 0x0090: 00 00 01 a0 4d 65 6c 6c $ ethtool -m enp65s0f0np0 offset 0x90 length 12 Offset Values ------ ------ 0x0090: 00 00 01 a0 4d 65 6c 6c 61 6e 6f 78 $ ethtool -m enp65s0f0np0 Identifier : 0x11 (QSFP28) Extended identifier : 0x00 Extended identifier description : 1.5W max. Power consumption Extended identifier description : No CDR in TX, No CDR in RX Extended identifier description : High Power Class (> 3.5 W) not enabled Connector : 0x23 (No separable connector) Transceiver codes : 0x88 0x00 0x00 0x00 0x00 0x00 0x00 0x00 Transceiver type : 40G Ethernet: 40G Base-CR4 Transceiver type : 25G Ethernet: 25G Base-CR CA-N Encoding : 0x05 (64B/66B) BR, Nominal : 25500Mbps Rate identifier : 0x00 Length (SMF,km) : 0km Length (OM3 50um) : 0m Length (OM2 50um) : 0m Length (OM1 62.5um) : 0m Length (Copper or Active cable) : 1m Transmitter technology : 0xa0 (Copper cable unequalized) Attenuation at 2.5GHz : 4db Attenuation at 5.0GHz : 5db Attenuation at 7.0GHz : 7db Attenuation at 12.9GHz : 10db ........ ....

📍 영향받는 시스템

Intel ice 드라이버를 사용하는 Linux 커널 (해당 리팩터링 커밋 이후 버전)

⚔️ 공격 벡터

로컬 사용자가 ethtool -m 등으로 모듈 EEPROM을 조회할 때 잘못된 데이터가 반환되는 형태이며, 원격 공격 경로는 확인되지 않음

🛡️ 대응 방법

수정 커밋이 포함된 최신 Linux 커널 또는 배포판 보안/업데이트 패키지로 커널을 업그레이드

🔧 검증 코드

커널 버전과 ice 드라이버 정보를 출력하며, 사용 중인 커널이 수정이 포함된 배포판 업데이트 버전인지 배포판 changelog나 보안 공지와 대조하여 판단합니다.

Shell / Script
uname -r && (modinfo ice 2>/dev/null | grep -E '^(version|srcversion|filename)')

📊 CVSS Vector String

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

💻 영향받는 소프트웨어

Linux Kernel