CVE-2024-36928 in Linuxinformazioni

Riassunto

di VulDB • 18/06/2026

Nel kernel Linux, il crash mostrato è causato da un puntatore `napi.poll` nullo o non inizializzato quando viene chiamato durante l'elaborazione delle interruzioni di rete (`net_rx_action`).

### Analisi del problema

1. **Contesto**: - Il driver `qeth` (per le interfacce di rete IBM z/VM) utilizza la struttura `napi` per gestire l'elaborazione delle interruzioni di rete in modo efficiente. - La funzione `napi.poll` viene impostata durante l'apertura dell'interfaccia di rete (`qeth_open()`).

2. **Causa del bug**: - Con il commit `1cfef80d4c2b`, le funzioni `qeth_set_offline()` e `qeth_set_online()` non chiamano più `dev_close()` e `dev_open()`. - Se `qeth_free_qdio_queues()` viene chiamato mentre l'interfaccia di rete è ancora UP (ma la scheda è offline), il puntatore `napi.poll` viene azzerato. - Quando l'interfaccia di rete tenta di elaborare le interruzioni di rete, `napi.poll` è nullo, causando un crash del kernel.

3. **Riproduzione**: - Disabilita la scheda di rete: `chzdev -e $devno layer2=0` - Attiva l'interfaccia di rete: `ip link set dev $network_interface up` - Disabilita la scheda: `echo 0 > /sys/bus/ccw`

### Soluzione

Per risolvere il problema, è necessario assicurarsi che `napi.poll` venga reimpostato correttamente quando l'interfaccia di rete viene riattivata. Questo può essere fatto modificando il driver `qeth` per chiamare `qeth_open()` quando l'interfaccia di rete viene riattivata dopo essere stata disattivata.

#### Modifica al driver `qeth`

1. **Aggiungi una chiamata a `qeth_open()` in `qeth_set_online()`**: ```c static int qeth_set_online(struct qeth_card *card) {
int rc;

rc = qeth_set_online_internal(card); if (rc) return rc;

/* Ensure napi.poll is set if the interface is UP */ if (netif_running(card->dev)) {
qeth_open(card->dev); }

return 0; } ```

2. **Verifica che `qeth_open()` sia sicuro da chiamare più volte**: - Assicurati che `qeth_open()` sia idempotente e non causi problemi se chiamato più volte.

### Conclusione

Questa modifica assicura che `napi.poll` venga reimpostato correttamente quando l'interfaccia di rete viene riattivata, prevenendo il crash del kernel.

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

Fonti

Interested in the pricing of exploits?

See the underground prices here!