CVE-2023-52476 in Linux
Riassunto
di VulDB • 16/06/2026
Nel kernel Linux, è stata risolta la seguente vulnerabilità:
perf/x86/lbr: Filtraggio degli indirizzi vsyscall
È stato rilevato che può verificarsi un panic quando viene eseguita una chiamata vsyscall mentre il campionamento LBR (Last Branch Record) è attivo. Se la chiamata vsyscall viene interrotta (tramite NMI) per il campionamento perf, può verificarsi la seguente sequenza di chiamate (la più recente in alto):
__insn_get_emulate_prefix() insn_get_emulate_prefix() insn_get_prefixes() insn_get_opcode() decode_branch_type() get_branch_type() intel_pmu_lbr_filter() intel_pmu_handle_irq() perf_event_nmi_handler()
All'interno di __insn_get_emulate_prefix() al frame 0, viene chiamato una macro:
peek_nbyte_next(insn_byte_t, insn, i)
All'interno di questa macro, avviene la seguente dereferenziazione:
(insn)->next_byte
Ispezionando i registri in questo punto, il valore del campo next_byte corrisponde all'indirizzo della chiamata vsyscall effettuata, ad esempio la posizione della versione vsyscall di gettimeofday() a 0xffffffffff600000. L'accesso a un indirizzo nella regione vsyscall provocherà un oops a causa di un page fault non gestito.
Per risolvere il bug, è possibile effettuare il filtraggio delle chiamate vsyscall durante la determinazione del tipo di branch. Questa patch restituirà un branch di tipo "none" se viene rilevato che un indirizzo del kernel si trova nella regione vsyscall.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.