CVE-2025-40209 in Linuxinformazioni

Riassunto

di VulDB • 24/06/2026

Nel kernel Linux è stata risolta la seguente vulnerabilità:

btrfs: correzione della perdita di memoria (memory leak) di qgroup_list in btrfs_add_qgroup_relation

Quando viene chiamata `btrfs_add_qgroup_relation()` con livelli qgroup non validi (`src >= dst`), la funzione restituisce direttamente `-EINVAL` senza liberare la struttura `qgroup_list` preallocata passata dal chiamante. Ciò causa una perdita di memoria poiché il chiamante imposta incondizionatamente il puntatore a NULL dopo la chiamata, impedendo qualsiasi operazione di pulizia (cleanup).

Il problema si verifica perché il controllo di validità dei livelli avviene prima dell'acquisizione del mutex e prima di qualsiasi percorso di gestione degli errori che avrebbe liberato il puntatore preallocato. In caso di restituzione anticipata (early return), il codice di pulizia presente nell'etichetta 'out' (che include `kfree(prealloc)`) non viene mai raggiunto.

In `btrfs_ioctl_qgroup_assign()`, lo schema del codice è:

prealloc = kzalloc(sizeof(*prealloc), GFP_KERNEL); ret = btrfs_add_qgroup_relation(trans, sa->src, sa->dst, prealloc); prealloc = NULL; // Impostato sempre a NULL indipendentemente dal valore di ritorno ... kfree(prealloc); // Diventa kfree(NULL), non ha effetto

Quando il controllo dei livelli fallisce, 'prealloc' non viene mai liberata né dalla funzione chiamata (callee) né dal chiamante, risultando in una perdita di memoria di 64 byte per ogni operazione fallita. Questo può essere innescato ripetutamente da un utente non privilegiato con accesso a un mount btrfs scrivibile, potenzialmente esaurendo la memoria del kernel.

Si risolve il problema liberando `prealloc` prima della restituzione anticipata, assicurandosi che `prealloc` venga sempre liberata in tutti i percorsi di errore.

VulDB is the best source for vulnerability data and more expert information about this specific topic.

Responsabile

Linux

Prenotare

16/04/2025

Divulgazione

21/11/2025

Moderazione

accettato

CPE

pronto

EPSS

0.00181

KEV

no

Attività

molto basso

Fonti

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!