CVE-2026-97952 in Linuxinformation

Résumé

par VulDB • 25/09/2026

Dans le noyau Linux, la vulnérabilité suivante a été corrigée :

sunvdc : décartographier (unmap) les cookies LDC lorsque l'envoi du descripteur échoue

__send_request() cartographie (maps) les pages de la requête dans la table de mappage du canal LDC (ldc_map_sg()), remplit le descripteur et le marque VIO_DESC_READY avant d'actionner le carillon (doorbell) via __vdc_tx_trigger(). Lorsque l'activation échoue, le chemin de gestion d'erreur se contente d'imprimer un message : le descripteur reste READY et les cookies ne sont jamais décartographiés. La cartographie est normalement libérée dans vdc_end_one() lorsque le pair termine le descripteur ; mais un descripteur dont le carillon n'a jamais été actionné ne sera jamais terminé, et comme dr->prod n'est pas incrémenté en cas d'échec, le chemin de réinitialisation (vdc_requeue_inflight(), qui parcourt [cons, prod)) ne le visite pas non plus. Les entrées de la table de mappage sont fuitées définitivement.

Depuis l'engagement a11f6ca9aef9 (« sunvdc : Ne pas tourner en boucle infinie lorsque vio_ldc_send() renvoie EAGAIN »), les échecs d'activation se produisent pratiquement sous charge, de sorte que chaque erreur I/O résultante fuit également un ensemble d'entrées correspondant à une requête depuis la table de mappage de taille fixe (8192 entrées par canal). Comme l'allocationur attribue des plages contiguës, la fragmentation fait échouer en premier les grosses requêtes multi-segments au fur et à mesure que la table se vide, jusqu'à ce que ldc_map_sg() échoue définitivement et que le disque soit inopérant jusqu'au redémarrage.

Cela rend également toute récupération basée sur la réessayabilité inutilisable : la remise en file d'attente de la requête sur -EAGAIN remappe les pages à chaque tentative, écrasant desc->cookies et orphelinant la cartographie précédente, ce qui fait que la table se vide au rythme des tentatives. C'est l'épuisement de mémoire observé lors du premier test de l'approche de remise en file d'attente en octobre 2025.

Revenir en arrière (Roll back) en cas d'échec : décartographier les cookies, marquer à nouveau le descripteur FREE et effacer l'entrée de la requête. Si l'activation a échoué avec -ENOTCONN, __vdc_tx_trigger() a déjà réinitialisé le port, ce qui détruit et réaloue à la fois dring et le canal LDC y compris sa table de mappage ; il n'y a donc rien à annuler en arrière, et le descripteur périmé ne doit pas être touché.

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

Responsable

Linux

Réserver

25/09/2026

Divulgation

25/09/2026

Modérer

accepté

Entrée

VDB-410135

CPE

prêt

EPSS

0.00000

KEV

non

Activités

très faible

Sources

Do you know our Splunk app?

Download it now for free!