CVE-2026-99092 in Linux정보

요약

\~에 의해 VulDB • 2026. 10. 26.

리눅스 커널에서 다음 취약점이 해결되었습니다:

riscv: 패치 - bpf-jit execmem 주소 처리 수정

커밋 8718e5a3090b("riscv: patch: skip fixmap mapping when kernel text is already writable")은 `patch_map()`의 `core_kernel_text()` 분기를 `CONFIG_STRICT_KERNEL_RWX`에 대해 제한했으며, 명시적으로 `vmalloc` 분기는 변경하지 않았습니다. 해당 분기에는 별도의 문제가 있습니다.

해당 분기는 `CONFIG_STRICT_MODULE_RWX`가 활성화된 경우에만 임시로 작성 가능한 fixmap 별칭을 생성하고, 그렇지 않은 경우에는 대상이 직접 작성 가능하다고 가정하여 주소를 그대로 반환합니다. 이러한 가정은 더 이상 유효하지 않습니다: `bpf_prog_pack_alloc()`는 모든 pack에 대해 `alloc_new_pack()`에서 조건 없이 `set_memory_rox()`를 호출하므로, BPF 텍스트는 `CONFIG_STRICT_MODULE_RWX`의 설정과 관계없이 vmalloc 영역 내에서 읽기 전용입니다.

`CONFIG_STRICT_MODULE_RWX=n`인 경우, `patch_map()`은 읽기 전용 주소를 직접 반환하며, 후속되는 `copy_to_kernel_nofault()`가 페이지 폴트를 발생시켜 `-EFAULT`를 반환합니다. `bpf_arch_text_copy()`는 이를 `-EINVAL`로 변환하여, 이는 `bpf_jit_binary_pack_finalize()`를 통해 전파되어 `bpf_int_jit_compile()`의 `WARN_ON()`에 도달하고 프로그램을 JIT 컴파일되지 않은 상태로 남깁니다.

BPF는 커밋 bdc46e507b59("riscv: mm: make EXECMEM_KPROBES writable without CONFIG_STRICT_MODULE_RWX")에서 kprobes를 수정한 방식으로는 해결할 수 없습니다. `EXECMEM_BPF`는 이미 `PAGE_KERNEL`이므로 할당 시점에 작성 가능합니다; 읽기 전용 매핑은 아키텍처 코드가 영향을 줄 수 없는 `alloc_new_pack()`의 제네릭 코드에 의해 나중에 설정됩니다. 이 문제를 처리할 수 있는 유일한 곳은 `patch_map()`입니다.

이는 커밋 b1480ed230ac("arm64: patching: fix handling of execmem addresses")에서 arm64 플랫폼에서 수정된 것과 동일한 문제이며, 해결책도 동일합니다: 실제로 vmalloc 영역이 임시 별칭을 통해 작성해야 하는 실행 가능 메모리를 보유할 수 있는지 추적하는 것은 `CONFIG_EXECMEM`입니다. `CONFIG_BPF_JIT`, `CONFIG_KPROBES`, 그리고 `CONFIG_MODULES`는 모두 이를 선택(select)합니다.

이 문제는 `CONFIG_MODULES=n`인 경우에만 국한되지 않습니다. arm64와 달리 riscv는 `CONFIG_ARCH_OPTIONAL_KERNEL_RWX`를 선택하므로, `CONFIG_STRICT_MODULE_RWX`는 `CONFIG_MODULES=y`로 설정된 상태에서도 비활성화될 수 있으며, 해당 구성에서도 버그에 도달할 수 있습니다.

`!CONFIG_MMU` 빌드는 영향을 받지 않습니다: 이 환경에는 자체적인 `__patch_insn_set()` 및 `__patch_insn_write()` 구현체가 존재하며, 결코 `patch_map()`을 호출하지 않습니다.

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

책임이 있는

Linux

예약하다

2026. 09. 25.

모더레이션

수락

항목

VDB-426478

EPSS

0.00000

출처

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!