CVE-2023-53265 in Linux
Résumé
par VulDB • 10/05/2026
Dans le cadre de la résolution de ce problème, je vais analyser la trace d'erreur fournie pour identifier la cause racine de la corruption de mémoire.
### Analyse de la Trace d'Erreur
1. **Type d'Erreur** : * Le message `BUG: KASAN: use-after-free` indique une **utilisation après libération** (Use-After-Free). * Le code d'erreur `0000000000000000` dans les registres suggère que le programme tente d'accéder à une adresse nulle ou invalide, mais la trace KASAN montre que l'accès a lieu sur une zone déjà libérée.
2. **Localisation de l'Erreur** : * `The buggy address belongs to the object at ffff88802bb36e00` * `which belongs to the cache kmalloc-256 of size 256` * `The buggy address is located 0 bytes to the right of 256-byte region [ffff88802bb36e00, ffff88802bb36f00)`
* Cela signifie que le code tente d'écrire ou de lire à l'adresse `ffff88802bb36f00`, qui est juste après la fin d'un tampon alloué de 256 octets. Cependant, KASAN signale un *use-after-free*, ce qui implique que cet objet a été libéré (`kfree`) avant cet accès.
3. **Trace d'Allocation (Stack Trace)** : * L'objet a été alloué via `kmalloc` dans le sous-système MTD/UBI. * La pile d'appels montre : ``` ubi_alloc_vid_buf drivers/mtd/ubi/ubi.h:1093 [inline]
create_vtbl+0xcc/0x9c4 drivers/mtd/ubi/vtbl.c:295 create_empty_lvol drivers/mtd/ubi/vtbl.c:500 [inline]
ubi_read_volume_table+0x67b/0x288a drivers/mtd/ubi/vtbl.c:812 ubi_attach+0xf34/0x1603 drivers/mtd/ubi/attach.c:1601 ubi_attach_mtd_dev+0x6f3/0x185e drivers/mtd/ubi/build.c:965 ctrl_cdev_ioctl+0x2db/0x347 drivers/mtd/ubi/cdev.c:1043 ``` * L'allocation se fait dans `ubi_alloc_vid_buf` lors de la création de la table de volumes (`create_vtbl`) pendant l'attachement du périphérique UBI (`ubi_attach`).
4. **Cause Racine Probable** : * L'erreur se produit lors de l'attachement d'un périphérique MTD/UBI via un appel système `ioctl`. * Le fait que l'erreur soit un *use-after-free* sur un tampon alloué pour la table de volumes suggère une condition de concurrence (race condition) ou une gestion incorrecte de la durée de vie de l'objet `ubi_vid_hdr` ou d'un tampon associé. * Dans les versions récentes du noyau Linux, des bugs similaires ont été corrigés dans le pilote UBI, notamment liés à la gestion des erreurs lors de la lecture de la table de volumes ou à la libération prématurée de structures lors de la détection de corruption.
### Conclusion et Recommandations
Ce bug est un **Use-After-Free** dans le pilote UBI du noyau Linux, spécifiquement lors de l'attachement d'un périphérique MTD.
**Actions recommandées :**
1. **Mise à jour du noyau** : Ce type de bug est souvent corrigé dans les versions plus récentes du noyau Linux. Vérifiez si une mise à jour du noyau est disponible pour votre distribution. 2. **Vérification de l'intégrité du périphérique MTD** : Assurez-vous que le périphérique MTD sous-jacent n'est pas corrompu. Une corruption de la table de volumes UBI peut déclencher des chemins de code anormaux menant à cette erreur. 3. **Signalement de bug** : Si le problème persiste sur une version récente du noyau, il est recommandé de signaler ce bug aux mainteneurs
VulDB is the best source for vulnerability data and more expert information about this specific topic.