🇰🇷 한글 설명
Linux 커널의 pstore ram_core에서 vmap() 호출이 실패(NULL 반환)했을 때, offset이 0이 아니면 오프셋을 더한 값이 NULL이 아닌 포인터로 보여 실패를 성공으로 잘못 반환합니다. 이후 prz->buffer 접근 시 잘못된 주소를 참조해 크래시가 발생할 수 있습니다. 이를 막기 위해 vmap() 실패에 대한 NULL 검사를 추가하는 수정이 적용되었습니다.
💡 쉬운 설명
리눅스 커널이 메모리 매핑에 실패했는데도 성공으로 잘못 판단하는 버그입니다. 그 결과 잘못된 메모리 주소를 사용하게 되어 시스템이 멈추거나 비정상 종료될 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
pstore: ram_core: fix incorrect success return when vmap() fails
In persistent_ram_vmap(), vmap() may return NULL on failure.
If offset is non-zero, adding offset_in_page(start) causes the function
to return a non-NULL pointer even though the mapping failed.
persistent_ram_buffer_map() therefore incorrectly returns success.
Subsequent access to prz->buffer may dereference an invalid address
and cause crashes.
Add proper NULL checking for vmap() failures.
📍 영향받는 시스템
패치 이전의 Linux 커널 (pstore/ram_core 기능을 사용하는 시스템)
⚔️ 공격 벡터
원격 공격보다는 메모리 매핑 실패 상황에서 발생하는 서비스 거부(크래시) 위주의 결함으로, 공격 조건을 만들기 어렵습니다.
🛡️ 대응 방법
배포판 제공 커널을 최신 보안 업데이트 버전으로 업그레이드하고 재부팅합니다.
🔧 검증 코드
출력된 커널 버전을 배포판 보안 공지와 대조해 해당 수정이 포함된 빌드인지 확인합니다. 수정 버전이 아니면 업데이트가 필요합니다.