CVE-2026-98965 in Linuxinformazioni

Riassunto

di VulDB • 23/10/2026

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

ice: Ripristinare le scritture MMIO ordinate per i doorbell di trasmissione (Tx)

Lo stato di contabilità DQL che tiene traccia del numero di byte accodati alla NIC per la trasmissione, ovvero dql->num_queued, viene aggiornato dal driver ICE quando invoca __netdev_tx_sent_queue(). Successivamente il driver aggiorna lo sportello della coda hardware consentendo alla NIC di iniziare a elaborare la coda di lavoro. L'aggiornamento della contabilità della coda dovrebbe essere ordinato prima che la NIC inizi a trasmettere i descrittori.

Il percorso di trasmissione attualmente aggiorna l'hardware doorbell utilizzando writel_relaxed(), il quale (su arm64) non fornisce le stesse garanzie di ordinamento tra le scritture alla memoria normale e le scritture ai registri MMIO rispetto a writel(). Ciò introduce una potenziale race condition in cui la NIC inizia a trasmettere i descrittori prima che l'aggiornamento di dql->num_queued sia globalmente visibile. Se la NIC termina prima che l'aggiornamento venga osservato da dql_completed(), rileva uno stato non valido in cui sono stati completati più byte di quanti ne siano stati accodati. Quando ciò accade, viene attivato il seguente BUG_ON:

BUG_ON(count > num_queued - dql->num_completed);

Questo è stato osservato e si manifesta come il seguente crash (si noti che la traccia è stata troncata) in un ambiente con carico di rete sostenuto che utilizza una Intel Corporation Ethernet Controller E810-XXV for SFP (rev 02) su una macchina arm64. La sostituzione di writel_relaxed() con writel() in un kernel di test ha eliminato il crash nel carico di lavoro dell'utente, che precedentemente riproduceva l'inconveniente in modo affidabile.

kernel BUG at lib/dynamic_queue_limits.c:99

Internal error: Oops - BUG: 00000000f2000800 [#1] SMP
pc : dql_completed+0x268/0x2a0 lr : ice_clean_tx_irq+0x1d4/0x620 [ice]
Call trace: dql_completed+0x268/0x2a0 (P) ice_napi_poll+0x94/0x520 [ice]
__napi_poll+0x48/0x3f0 net_rx_action+0x194/0x420

Questo ripristina il comportamento precedente al commit ccde82e90946 ("ice: add E830 Earliest TxTime First Offload support"), che ha modificato il meccanismo di notifica da writel() a writel_relaxed().

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

Responsabile

Linux

Prenotare

25/09/2026

Divulgazione

23/10/2026

Moderazione

accettato

EPSS

0.00000

KEV

no

Attività

molto basso

Fonti

Do you want to use VulDB in your project?

Use the official API to access entries easily!