CVE-2026-46129 és una errada de corrupció de memòria al sistema de fitxers Btrfs del kernel Linux. Es va publicar a la NVD el 28 de maig de 2026 amb una puntuació CVSS 3.1 de 7.8 (alta) i el vector AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H. En poques paraules: cal accés local, però si es dispara, l’impacte sobre confidencialitat, integritat i disponibilitat és alt.
Què falla exactament
El problema és a create_space_info(), la funció que crea les estructures d’informació d’espai de Btrfs durant la inicialització del sistema de fitxers. Aquesta funció crida btrfs_sysfs_add_space_info_type(), que al seu torn fa servir kobject_init_and_add() per registrar un kobject a sysfs.
Quan kobject_init_and_add() falla, la mateixa estructura space_info s’allibera dues vegades. La cadena és aquesta:
kobject_init_and_add()falla i el codi cridakobject_put(&space_info->kobj).- Aquest
kobject_put()dispara el callback de release,space_info_release(), que executakfree(space_info). La memòria ja queda alliberada. - El control torna a
create_space_info(), veu l’error, salta a l’etiquetaout_freei torna a cridarkfree(space_info)sobre el punter ja alliberat.
Dues rutes de neteja diferents es pensen que són propietàries del mateix objecte. Una el torna a l’assignador i l’altra l’allibera per segona vegada. Al kernel, un doble free com aquest pot acabar en corrupció del heap, situacions de use-after-free, un kernel panic o, en el pitjor cas, execució de codi arbitrari.
Qui afecta
Qualsevol sistema amb un kernel Linux que munti o tingui disponible Btrfs. A la pràctica això inclou servidors d’emmagatzematge, NAS, appliances de còpia de seguretat, màquines virtuals Linux, plataformes de contenidors i entorns de desenvolupament on Btrfs sigui el sistema de fitxers. Distribucions com Fedora i openSUSE el porten per defecte, així que l’abast no és marginal.
La finestra per disparar l’errada és estreta. Cal forçar que kobject_init_and_add() falli durant la creació de la space_info, cosa que depèn del comportament de l’assignador, la configuració del kernel i les mitigacions actives. Això manté la superfície local i, a data de publicació, no hi ha cap exploit públic ni explotació activa coneguda.
Gravetat real
El 7.8 situa aquesta errada per sobre de moltes altres de Btrfs perquè el vector marca impacte alt en les tres dimensions. Ara bé, val la pena llegir el CVSS amb el context al costat: requereix privilegis locals (PR:L) i no hi ha vector remot. No és cap motiu per entrar en pànic, però sí per aplicar el pedaç sense esperar en qualsevol host multiusuari o que executi càrregues de tercers.
Mitigació i pedaç
La correcció ajusta el contracte de propietat de la memòria. Les rutes d’error inicials conserven el kfree(space_info) directe, però un cop btrfs_sysfs_add_space_info_type() ja ha cridat kobject_put(), es deixa que sigui el callback de release del kobject qui gestioni la neteja. Així ningú no allibera l’estructura dues vegades.
El pedaç es va propagar a diverses branques estables de kernel.org a finals de maig de 2026. El més recomanable és actualitzar pel canal de la teva distribució o del fabricant de l’appliance i confirmar el backport al seu avís de seguretat en comptes de refiar-te només del número de versió upstream, perquè els distribuïdors renumeren els seus kernels. Després d’instal·lar el kernel pedaçat cal reiniciar perquè el canvi tingui efecte. Si no pots aplicar el pedaç de seguida, restringir l’accés local dels usuaris no confiables redueix l’exposició mentrestant.
Font
- Windows Forum — CVE-2026-46129 Btrfs double-free fix: Linux kernel patch needed
- NVD — CVE-2026-46129