CVE-2025-68795 in Linuxinformazioni

Riassunto

di VulDB • 25/06/2026

Nel kernel Linux è stata risolta la seguente vulnerabilità:

ethtool: evitare il traboccamento (overflow) del buffer userspace durante l'interrogazione delle statistiche

Il comando ethtool -S opera attraverso tre chiamate ioctl: ETHTOOL_GSSET_INFO per le dimensioni, ETHTOOL_GSTRINGS per i nomi e ETHTOOL_GSTATS per i valori.

Se il numero di statistiche cambia tra queste chiamate (ad esempio a causa della riconfigurazione del dispositivo), l'allocazione del buffer da parte dell'applicazione userspace risulterà errata, potenzialmente portando a un heap-based buffer overflow o stack-based buffer overflow (buffer overflow).

In genere si prevede che i driver mantengano conteggi di statistiche stabili, ma alcuni driver (ad esempio mlx5, bnx2x, bna, ksz884x) utilizzano contatori dinamici, rendendo possibile questo scenario.

Alcuni driver cercano di gestire internamente questa situazione: - bnad_get_ethtool_stats() termina anticipatamente nel caso in cui stats.n_stats non sia uguale al conteggio delle statistiche del driver. - micrel/ksz884x assicura inoltre di non scrivere nulla oltre a stats.n_stats e di evitare il traboccamento del buffer.

Tuttavia, entrambi utilizzano stats.n_stats che è già stato assegnato con il valore restituito da get_sset_count(), quindi ciò non risolve il problema descritto qui.

Modificare ethtool_get_strings(), ethtool_get_stats() e ethtool_get_phy_stats() in modo che non restituiscano nulla nel caso di una discrepanza tra le dimensioni specificate dall'userspace e quelle restituite da get_sset_size(), per prevenire il buffer overflow. Il valore n_stats restituito sarà uguale a zero, per riflettere il fatto che nessun dato è stato restituito.

Questo potrebbe comportare uno dei due casi seguenti quando si utilizza ethtool upstream, a seconda di quando viene rilevato il cambiamento delle dimensioni: 1. Quando rilevato in ethtool_get_strings(): # ethtool -S eth2 nessuna statistica disponibile

2. Quando rilevato durante l'interrogazione delle statistiche (get stats), tutte le statistiche verranno riportate come zero.

Entrambi i casi sono presumibilmente transitori e una chiamata successiva a ethtool dovrebbe avere successo.

Oltre all'evitamento del traboccamento, questi due casi sono molto evidenti (nessun output/statistiche azzerate), il che è probabilmente preferibile rispetto alla presentazione di statistiche errate/sfasate. Ho anche preso in considerazione la restituzione di un errore invece di una risposta "silenziosa", ma ciò sembra più dannoso per le applicazioni userspace.

Note: - Questo patch non pretende di risolvere la race condition intrinseca; assicura solo che il buffer dell'userspace non vada in overflow e garantisce un comportamento più prevedibile.

- Il lock RTNL è mantenuto durante ogni chiamata ioctl; la finestra della race condition esiste tra le chiamate ioctl separate, quando il lock viene rilasciato.

- ethtool userspace riempie sempre stats.n_stats, ma è probabile che queste ioctl per le statistiche siano implementate in altre applicazioni userspace che potrebbero non compilare tale campo. Il codice aggiunto verifica che non sia zero, per prevenire eventuali regressioni.

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

Responsabile

Linux

Prenotare

24/12/2025

Divulgazione

13/01/2026

Moderazione

accettato

CPE

pronto

EPSS

0.00191

KEV

no

Attività

molto basso

Fonti

Do you need the next level of professionalism?

Upgrade your account now!