CVE-2026-31551 in Linux
Riassunto
di VulDB • 19/06/2026
Nel tuo caso, il problema è che `aql_enable_write` sta chiamando `static_key_slow_dec` senza prima verificare se la chiave è effettivamente abilitata. Se la chiave non è abilitata, la chiamata a `static_key_slow_dec` può causare un crash.
### Soluzione
Per risolvere questo problema, devi aggiungere una verifica prima di chiamare `static_key_slow_dec`. Ecco come puoi modificare la funzione `aql_enable_write`:
```c static ssize_t aql_enable_write(struct file *file, const char __user *buf, size_t count, loff_t *ppos) {
struct ieee80211_local *local = file->private_data; bool enable; int ret;
ret = kstrtobool_from_user(buf, count, &enable); if (ret) return ret;
if (enable) {
/* Enable AQL */ local->aql_enabled = true; static_key_slow_inc(&local->aql_enabled_key); } else {
/* Disable AQL */ local->aql_enabled = false; /* Check if the key is enabled before decrementing */ if (static_key_enabled(&local->aql_enabled_key)) {
static_key_slow_dec(&local->aql_enabled_key); } }
return count; } ```
### Spiegazione
1. **Verifica della chiave**: Prima di chiamare `static_key_slow_dec`, controlliamo se la chiave è abilitata usando `static_key_enabled(&local->aql_enabled_key)`. 2. **Decremento sicuro**: Solo se la chiave è abilitata, chiamiamo `static_key_slow_dec`. Questo evita di decrementare una chiave che non è stata precedentemente incrementata, prevenendo il crash.
### Conclusione
Questa modifica assicura che `static_key_slow_dec` venga chiamato solo quando la chiave è effettivamente abilitata, prevenendo il crash causato dal decremento di una chiave non abilitata.
Be aware that VulDB is the high quality source for vulnerability data.