🇰🇷 한글 설명
Linux 커널의 ethtool CMIS 구성 요소에서 펌웨어 업데이트 시 모듈로부터 전달받은 페이로드 크기를 검증 없이 memcpy에 직접 사용합니다. 이로 인해 악의적인 모듈이나 손상된 응답이 전달될 경우 지정된 버퍼 크기를 초과하여 메모리에 쓰는 OOB(Out-of-Bounds) Write 취약점이 발생할 수 있습니다.
💡 쉬운 설명
하드웨어 모듈이 보내는 데이터의 크기를 확인하지 않고 그대로 받아 적는 과정에서 메모리 공간을 넘쳐흐르게 만드는 문제입니다. 이를 통해 해커가 시스템의 메모리를 조작하거나 오류를 일으킬 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
ethtool: cmis: validate start_cmd_payload_size from module
The CMIS firmware update code reads start_cmd_payload_size from
the module's FW Management Features CDB reply and uses it directly
as the byte count for memcpy. The destination buffer is 112 bytes
(ETHTOOL_CMIS_CDB_LPL_MAX_PL_LENGTH - 8). So a malicious
module (or corrupted response) can cause a OOB write later on in
cmis_fw_update_start_download().
Let's error out. If modules that expect longer LPL writes actually
exist we should revisit.
struct cmis_cdb_start_fw_download_pl's definition has to move,
no change there.
📍 영향받는 시스템
Linux kernel (ethtool/cmis 관련 모듈 포함 버전)
⚔️ 공격 벡터
악의적으로 조작된 CMIS 펌웨어 관리 응답을 보내는 모듈을 통한 메모리 오버라이트
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 cmis_fw_update_start_download() 함수의 검증 로직을 적용해야 합니다.
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이후인지 확인합니다.