CVE-2026-80682 in Linux정보

요약

\~에 의해 VulDB • 2026. 08. 28.

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

riscv/mm: vmemmap_start_pfn에 물리적 정렬(physical alignment) 사용

RISC-V는 phys_ram_base를 VMEMMAP_ADDR_ALIGN로 내림(round down)하여 vmemmap_start_pfn을 계산합니다. 따라서 해당 정렬 값은 물리 주소 도메인에서 표현되어야 합니다.

커밋 476849b0fba4("riscv/mm: align vmemmap to maximal folio size")는 MAX_FOLIO_VMEMMAP_ALIGN를 VMEMMAP_ADDR_ALIGN에 직접 전달하여 최대 folio 정렬을 고려하려고 시도했습니다. 그러나 MAX_FOLIO_VMEMMAP_ALIGN는 struct page 저장소의 바이트 단위로 측정되는 반면, VMEMMAP_ADDR_ALIGN는 물리 주소를 정렬하는 데 사용됩니다.

마스크 기반 compound_info 인코딩은 pfn_to_page(0)이 MAX_FOLIO_VMEMMAP_ALIGN에 자연스럽게 정렬되도록 요구합니다. 커밋 9f94db4c7eaa("mm/sparse: check memmap alignment for compound_info_has_mask()")는 해당 요구 사항을 확인하는 검사를 추가했으며, DRAM 기본 주소가 MAX_FOLIO_NR_PAGES * PAGE_SIZE로 정렬되지 않은 QEMU virt와 같은 시스템에서 단위 불일치를 노출시켰습니다.

다음은 로그입니다: [ 0.000000][ C0] ------------[ cut here ]------------
[ 0.000000][ C0] WARNING: mm/sparse.c:365 at sparse_init+0x58a/0x6fe, CPU#0: swapper/0
[ 0.000000][ C0] Modules linked in:
[ 0.000000][ C0] CPU: 0 UID: 0 PID: 0 Comm: swapper Not tainted 7.2.0-rc3-g1d8304bdd65f #2 PREEMPT
[ 0.000000][ C0] Hardware name: riscv-virtio,qemu (DT)
[ 0.000000][ C0] epc : sparse_init+0x58a/0x6fe
[ 0.000000][ C0] ra : sparse_init+0x58a/0x6fe
[ 0.000000][ C0] epc : ffffffff86851c88 ra : ffffffff86851c88 sp : ffffffff88807a30
[ 0.000000][ C0] gp : ffffffff8a3bf240 tp : ffffffff88842080 t0 : ff600000ffab6000
[ 0.000000][ C0] t1 : 000000017fab6000 t2 : 65203a6573726363 s0 : ffffffff88807bc0
[ 0.000000][ C0] s1 : 000000000e000000 a0 : 0000000000000007 a1 : 0000000000000000
[ 0.000000][ C0] a2 : 0000000000000002 a3 : ffffffff86851c88 a4 : 0000000000000000
[ 0.000000][ C0] a5 : ffffffff88843080 a6 : 0000000000000003 a7 : 0000000000000000
[ 0.000000][ C0] s2 : ff60000000000000 s3 : 0040000000000000 s4 : 0004000000000000
[ 0.000000][ C0] s5 : ffffffff8a4d92e0 s6 : ff600000ffab55e0 s7 : ffffffff88384d00
[ 0.000000][ C0] s8 : 0000000000000003 s9 : ffffffff88384cc1 s10: ffffffff88384cc0
[ 0.000000][ C0] s11: ffffffff8a4daae0 t3 : ffffffff915e8b20 t4 : ffffffff915e8b20
[ 0.000000][ C0] t5 : ffffffff915e8b20 t6 : ffffffff915e8bc8 ssp : 0000000000000000
[ 0.000000][ C0] status: 0000000200000100 badaddr: ffffffff86851c88 cause: 0000000000000003
[ 0.000000][ C0] [<ffffffff86851c88>] sparse_init+0x58a/0x6fe
[ 0.000000][ C0] [<ffffffff8683d396>] mm_core_init_early+0x116/0x1e30
[ 0.000000][ C0] [<ffffffff86801edc>] start_kernel+0xd2/0x848

VMEMMAP_ADDR_ALIGN에서 사용하기 전에 MAX_FOLIO_VMEMMAP_ALIGN를 해당하는 물리적 정렬 값으로 변환합니다. 이는 기존 round_down() 로직을 유지하면서 결과적인 vmemmap 기본 주소가 마스크 정렬 요구 사항을 충족하도록 합니다.

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

책임이 있는

Linux

예약하다

2026. 08. 26.

모더레이션

수락

항목

VDB-396631

EPSS

0.00000

출처

Might our Artificial Intelligence support you?

Check our Alexa App!