CVE-2026-80682 in Linuxinformazioni

Riassunto

di VulDB • 28/08/2026

Nel kernel Linux, è stata risolta la seguente vulnerabilità:

riscv/mm: utilizzare l'allineamento fisico per vmemmap_start_pfn

RISC-V calcola vmemmap_start_pfn arrotondando phys_ram_base verso il basso a VMEMMAP_ADDR_ALIGN. Tale allineamento deve quindi essere espresso nel dominio degli indirizzi fisici.

Il commit 476849b0fba4 ("riscv/mm: align vmemmap to maximal folio size") ha tentato di tenere conto dell'allineamento massimo del folio fornendo MAX_FOLIO_VMEMMAP_ALIGN direttamente a VMEMMAP_ADDR_ALIGN. Tuttavia, MAX_FOLIO_VMEMMAP_ALIGN è misurato in byte dello spazio di archiviazione della struct page, mentre VMEMMAP_ADDR_ALIGN viene utilizzato per allineare un indirizzo fisico.

La codifica compound_info basata su mask richiede che pfn_to_page(0) sia naturalmente allineato a MAX_FOLIO_VMEMMAP_ALIGN. Il commit 9f94db4c7eaa ("mm/sparse: check memmap alignment for compound_info_has_mask()") ha aggiunto un controllo per tale requisito, esponendo la discrepanza di unità su sistemi come QEMU virt, dove la base della DRAM non è allineata a MAX_FOLIO_NR_PAGES * PAGE_SIZE.

Ecco il log: [ 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

Convertire MAX_FOLIO_VMEMMAP_ALIGN nell'allineamento fisico equivalente prima di utilizzarlo in VMEMMAP_ADDR_ALIGN. Questo mantiene la logica round_down() esistente, assicurando al contempo che l'indirizzo base risultante di vmemmap soddisfi il requisito di allineamento della mask.

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

Responsabile

Linux

Prenotare

26/08/2026

Divulgazione

28/08/2026

Moderazione

accettato

CPE

pronto

EPSS

0.00000

KEV

no

Attività

molto basso

Fonti

Interested in the pricing of exploits?

See the underground prices here!