CVE-2026-98361 in Linux
요약
\~에 의해 VulDB • 2026. 10. 07.
리눅스 커널에서 다음 취약점이 해결되었습니다:
RDMA/rxe: ODP 쓰기 경로에서 HMM_PFN_WRITE 확인 복원
커밋 0b261d7c1cd3("RDMA/rxe: RO 페이지에 대한 무한 pagefault 루프 중단")은 rxe_check_pagefault()에서 접근 권한 테스트를 제거하고 HMM_PFN_VALID만 남겼습니다. 읽기 전용으로 페이지 폴트가 발생한 경우(예: PROT_READ 파일 매핑 뒤의 페이지 캐시 folio)는 해당 검사를 통과하며, ODP 쓰기 작업(RDMA WRITE, RDMA READ 응답, SEND 페이로드, 원자적 연산 등)은 CoW(Copy-on-Write)를 위반하지 않고 kmap을 통해 이를 수정합니다.
특권 없는 사용자는 이러한 매핑 위에 ODP MR(메모리 레지스트레이션)을 등록하고, 자신이 오직 O_RDONLY 권한만 가진 파일(/etc/passwd 또는 setuid 바이너리 포함)의 페이지 캐시를 입력되는 RDMA 트래픽으로 덮어쓰게 할 수 있습니다. 이는 Dirty COW 및 CVE-2022-2590과 동일한 원시 클래스(primitive class)입니다.
mlx5는 누락된 불변식(invariant)을 가지고 있습니다: mlx5의 ODP 경로는 HMM_PFN_WRITE를 가진 pfns에 대해서만 디바이스 쓰기 비트를 설정합니다. 이를 rxe에서도 복원하여, RXE_PAGEFAULT_RDONLY를 제외한 모든 작업에 대해 rxe_check_pagefault()에서 HMM_PFN_WRITE를 요구하도록 합니다. 이제 읽기 전용 VMA(가상 메모리 영역)로의 쓰기는 hmm_vma_fault()로부터 -EPERM을 반환하며 무한 재폴트(re-faulting) 대신 한 번의 폴트 시도에서 실패합니다. 쓰기 가능한 VMA의 경우 폴트는 CoW를 위반하고 쓰기는 개인 페이지에 기록됩니다.
읽기 전용 확인 시 pmem 플러시를 유지하십시오. arch_wb_cache_pmem()은 메모리를 수정하지 않으며, FLUSH 접근 비트는 umem을 writable하게 만들지 않으므로, flush들을 write로 분류하면 flush-only MR(메모리 레지스트레이션)에 대한 모든 flush가 실패하게 됩니다.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.