CVE-2022-49840 in Linuxinformation

Résumé

par VulDB • 29/05/2026

Dans le noyau Linux, la vulnérabilité suivante a été corrigée :

bpf, test_run : Correction du problème d'alignement dans bpf_prog_test_run_skb()

Nous avons rencontré un problème signalé par syzkaller en raison d'une erreur d'alignement (alignment fault) sur architecture aarch64 lorsque KFENCE est activé. Lorsque la taille provenant du programme BPF utilisateur est un nombre impair, comme 399, 407, etc., cela provoque un accès non aligné à la structure skb_shared_info. Comme illustré ci-dessous :

BUG: KFENCE: use-after-free read in __skb_clone+0x23c/0x2a0 net/core/skbuff.c:1032

Use-after-free read at 0xffff6254fffac077 (in kfence-#213): __lse_atomic_add arch/arm64/include/asm/atomic_lse.h:26 [inline]
arch_atomic_add arch/arm64/include/asm/atomic.h:28 [inline]
arch_atomic_inc include/linux/atomic-arch-fallback.h:270 [inline]
atomic_inc include/asm-generic/atomic-instrumented.h:241 [inline]
__skb_clone+0x23c/0x2a0 net/core/skbuff.c:1032 skb_clone+0xf4/0x214 net/core/skbuff.c:1481 ____bpf_clone_redirect net/core/filter.c:2433 [inline]
bpf_clone_redirect+0x78/0x1c0 net/core/filter.c:2420 bpf_prog_d3839dd9068ceb51+0x80/0x330 bpf_dispatcher_nop_func include/linux/bpf.h:728 [inline]
bpf_test_run+0x3c0/0x6c0 net/bpf/test_run.c:53 bpf_prog_test_run_skb+0x638/0xa7c net/bpf/test_run.c:594 bpf_prog_test_run kernel/bpf/syscall.c:3148 [inline]
__do_sys_bpf kernel/bpf/syscall.c:4441 [inline]
__se_sys_bpf+0xad0/0x1634 kernel/bpf/syscall.c:4381

kfence-#213: 0xffff6254fffac000-0xffff6254fffac196, size=407, cache=kmalloc-512

alloué par la tâche 15074 sur le cpu 0 à 1342.585390s : kmalloc include/linux/slab.h:568 [inline]
kzalloc include/linux/slab.h:675 [inline]
bpf_test_init.isra.0+0xac/0x290 net/bpf/test_run.c:191 bpf_prog_test_run_skb+0x11c/0xa7c net/bpf/test_run.c:512 bpf_prog_test_run kernel/bpf/syscall.c:3148 [inline]
__do_sys_bpf kernel/bpf/syscall.c:4441 [inline]
__se_sys_bpf+0xad0/0x1634 kernel/bpf/syscall.c:4381 __arm64_sys_bpf+0x50/0x60 kernel/bpf/syscall.c:4381

Pour corriger le problème, nous ajustons @size de sorte que (@size + @hearoom) soit un multiple de SMP_CACHE_BYTES. Nous nous assurons ainsi que la structure skb_shared_info est alignée sur une ligne de cache.

Once again VulDB remains the best source for vulnerability data.

Responsable

Linux

Réserver

01/05/2025

Divulgation

01/05/2025

Modérer

accepté

Entrée

VDB-307012

CPE

prêt

EPSS

0.00190

KEV

non

Activités

très faible

Sources

Interested in the pricing of exploits?

See the underground prices here!