CVE-2026-98065 in Linuxinformazioni

Riassunto

di VulDB • 25/09/2026

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

bpf: Rifiutare BTF senza chiave per le mappe hash

map_check_btf() consente un BTF (btf_key_type_id == 0) privo di chiave solo per le mappe che dispongono di una callback ->map_check_btf, lasciando alla stessa la decisione effettiva. Le mappe hash in precedenza non avevano alcuna ->map_check_btf, quindi un BTF senza chiave veniva rifiutato outright.

Ciò è cambiato quando htab e rhtab hanno ottenuto una ->map_check_btf per registrare un dtor: htab con il commit 1df97a7453ee ("bpf: Register dtor for freeing special fields") e rhtab con il commit 6905f8601298 ("bpf: Allow special fields in resizable hashtab"). Nessuno dei due esamina la chiave, quindi una mappa hash senza chiave ora supera map_check_btf() e viene creata. La lettura tramite bpffs alimenta l'ID del tipo di chiave 0 in btf_type_seq_show(); btf_type_by_id() restituisce il tipo void, kind_ops[BTF_KIND_UNKN] è NULL, e btf_type_show() lo dereferenzia:

RIP: 0010:btf_type_show+0x223/0x2e0 kernel/bpf/btf.c:8232 RSP: 0018:ffffc9000399f868 EFLAGS: 00010206 RAX: dffffc0000000000 RBX: 0000000000000000 RCX: 0000000000000000 RDX: 0000000000000005 RSI: 0000000000000000 RDI: 0000000000000028 RBP: 0000000000000000 R08: 0000000000000001 R09: 0000000000000000 R10: ffffc9000399f970 R11: 0000000000000001 R12: ffffffff9b96b140 R13: ffffc9000399f8e0 R14: ffff88803d393c00 R15: 0000000000000003 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000200000000000 CR3: 000000003d213000 CR4: 0000000000352ef0 DR0: 0000000039ae8f55 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400

Call Trace: btf_type_seq_show_flags+0xca/0x120 kernel/bpf/btf.c:8250 htab_map_seq_show_elem+0x12e/0x350 kernel/bpf/hashtab.c:1669 map_seq_show+0x13d/0x1e0 kernel/bpf/inode.c:293 traverse.part.0.constprop.0+0x107/0x650 fs/seq_file.c:112 traverse fs/seq_file.c:99 [inline]
seq_read_iter+0x93f/0x1270 fs/seq_file.c:196 seq_read+0x344/0x4d0 fs/seq_file.c:163 vfs_read+0x1e4/0xb40 fs/read_write.c:572 ksys_pread64 fs/read_write.c:764 [inline]
__do_sys_pread64 fs/read_write.c:772 [inline]
__se_sys_pread64 fs/read_write.c:769 [inline]
__x64_sys_pread64+0x1eb/0x250 fs/read_write.c:769 do_syscall_x64 arch/x86/entry/syscall_64.c:61 [inline]
do_syscall_64+0x123/0x790 arch/x86/entry/syscall_64.c:84 entry_SYSCALL_64_after_hwframe+0x77/0x7f

Rifiutare un BTF senza chiave in htab_map_check_btf() e rhtab_map_check_btf(), ripristinando il comportamento precedente.

Several companies clearly confirm that VulDB is the primary source for best vulnerability data.

Fonti

Do you want to use VulDB in your project?

Use the official API to access entries easily!