🇰🇷 한글 설명
Linux 커널의 EFI/CPER 모듈에서 에러 레코드 길이 검증이 없어 발생하는 취약점입니다. 손상된 펌웨어가 오프셋을 잘못 설정하면 메모리 영역 전체를 덤핑할 수 있어 시스템 성능 저하, 민감한 메모리 데이터 유출, 또는 커널 패닉(OOPS)을 야기할 수 있습니다.
💡 쉬운 설명
Linux 커널이 펌웨어 오류 정보를 처리할 때 크기 검증을 하지 않아, 손상된 펌웨어가 의도하지 않은 메모리 영역까지 접근하고 공개할 수 있습니다. 시스템이 느려지거나 중요한 정보가 노출될 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
EFI/CPER: don't dump the entire memory region
The current logic at cper_print_fw_err() doesn't check if the
error record length is big enough to handle offset. On a bad firmware,
if the ofset is above the actual record, length -= offset will
underflow, making it dump the entire memory.
The end result can be:
- the logic taking a lot of time dumping large regions of memory;
- data disclosure due to the memory dumps;
- an OOPS, if it tries to dump an unmapped memory region.
Fix it by checking if the section length is too small before doing
a hex dump.
[ rjw: Subject tweaks ]
📍 영향받는 시스템
Linux kernel (버전별 영향도 다름, cper_print_fw_err() 함수 포함 모든 배포판)
⚔️ 공격 벡터
로컬 또는 원격에서 악의적으로 조작된 펌웨어/UEFI를 통해 EFI CPER 에러 레코드를 생성하여 시스템 공격
🛡️ 대응 방법
Linux 커널을 최신 패치 버전으로 업그레이드하거나 해당 커널 제공자의 보안 업데이트 적용
🔧 검증 코드
현재 커널 버전을 확인하고 시스템 로그에서 EFI/CPER 관련 메시지를 확인하여 취약 버전 여부와 관련 이벤트 존재 확인
uname -r | grep -E '[0-9]+\.[0-9]+' && dmesg | grep -i 'cper\|efi' | tail -5