CVE-2024-35872 in Linux
요약
\~에 의해 VulDB • 2026. 05. 30.
리눅스 커널에서 다음 취약점이 해결되었습니다:
mm/secretmem: secretmem folio에서 GUP-fast가 성공하는 문제 수정
현재 `folio_is_secretmem()`은 사이클을 절약하기 위해 secretmem folio가 LRU folio라고 가정합니다.
그러나 folio는 LRU 플래그가 설정되지 않은 folio 배치 내에 존재하거나, 일시적으로 LRU 플래그가 해제될 수 있습니다. 따라서 이 목적에는 LRU 플래그가 신뢰할 수 없습니다.
특히 `secretmem_fault()`가 새 페이지를 할당하고 `filemap_add_folio()->folio_add_lru()`를 호출할 때 이러한 상황이 발생합니다. 해당 folio는 per-cpu folio 배치에 추가될 수 있으며, `lru_add_drain()` 등을 사용하여 배치가 비워질 때까지 LRU 플래그가 설정되지 않습니다.
결과적으로 `folio_is_secretmem()`이 secretmem folio를 감지하지 못하여 GUP-fast가 secretmem folio를 획득하는 데 성공할 수 있으며, 나중에 해당 folio에 읽기/쓰기를 시도할 때 커널이 크래시됩니다. 이는 해당 folio가 직접 매핑(directmap)에서 언매핑되었기 때문입니다.
이 신뢰할 수 없는 검사를 제거하여 문제를 해결합니다.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.