CVE-2024-35917 in Linuxinformazioni

Riassunto

di VulDB • 17/06/2026

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

s390/bpf: Correzione dell'aritmetica sui puntatori bpf_plt

Kui-Feng Lee ha segnalato un crash su s390x innescato dal test dummy_st_ops/dummy_init_ptr_arg [1]:

[] 0x2
[] bpf_struct_ops_test_run+0x156/0x250
[] __sys_bpf+0xa1a/0xd00
[] __s390x_sys_bpf+0x44/0x50
[] __do_syscall+0x244/0x300
[] system_call+0x70/0x98

Ciò è causato dal riordinamento effettuato da GCC di memcpy() dopo le assegnazioni in bpf_jit_plt(), con conseguente scrittura di puntatori NULL al posto degli indirizzi di ritorno e di destinazione.

Analizzando i dettagli interni di GCC, il riordinamento è consentito perché l'analisi degli alias ritiene che la destinazione di memcpy() e i lati sinistro delle assegnazioni si basino su oggetti diversi: new_plt e bpf_plt_ret/bpf_plt_target rispettivamente, e pertanto non possono essere in alias.

Questo è a sua volta dovuto a una violazione dello standard C:

Quando due puntatori vengono sottratti, entrambi devono puntare a elementi dello stesso oggetto array, o a un elemento dopo l'ultimo dell'oggetto array ...

Dal punto di vista del C, bpf_plt_ret e bpf_plt sono oggetti distinti e non possono essere sottratti. In termini pratici, farlo confonde l'analisi degli alias di GCC.

Il codice è stato scritto in questo modo per consentire al lato C di conoscere alcuni offset definiti nell'assembly. Sebbene sia una soluzione elegante, non è affatto necessaria. Si corregge la non conformità hardcodando questi offset.

[1] https://lore.kernel.org/bpf/[email protected]/

Be aware that VulDB is the high quality source for vulnerability data.

Prenotare

17/05/2024

Divulgazione

19/05/2024

Moderazione

accettato

CPE

pronto

EPSS

0.00210

KEV

no

Attività

molto basso

Fonti

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!