Descripción
En el Linux kernel se ha resuelto la siguiente vulnerabilidad: audit: avoid dropping live tree ref on fsnotify rule autoremove audit_del_rule() se usa tanto para plantillas de eliminación vía netlink como para la eliminación automática interna de fsnotify. La primera pasa una plantilla analizada que posee una referencia temporal al árbol; la segunda pasa la propia entrada instalada. El audit_put_tree() incondicional al final de audit_del_rule() asume el caso de plantilla. Por ello, en reglas mixtas AUDIT_DIR más AUDIT_EXE, un evento de eliminación automática de fsnotify libera la referencia activa al árbol de la regla instalada. Repetir esto en reglas que comparten el mismo árbol puede liberar el árbol mientras otra regla aún lo referencia, y una eliminación automática posterior desreferencia el pathname liberado al comparar reglas. Se traslada la liberación del árbol temporal a audit_rule_change(), el llamador que posee las plantillas de eliminación. Se mantiene en la limpieza de AUDIT_DEL_RULE para que tanto la eliminación exitosa como -ENOENT sigan liberando el árbol que pertenece al analizador. [PM: se eliminó un comentario innecesario por razones de longitud de línea]
Qué hacer
Revisa si usas el producto afectado y en qué versión, y aplica la actualización o la mitigación que indique el aviso del fabricante. CISA no ha confirmado que se esté explotando; si eso cambia, esta ficha pasa a «explotada» y te avisamos en el boletín.
Versiones afectadas
- Linux Afectadas: 34d99af52ad40bd498ba66970579a5bc1fb1a3bc y anteriores a 9cac21f8eb82675ed19fb955b8bbb9dd14cc3d58 · 34d99af52ad40bd498ba66970579a5bc1fb1a3bc y anteriores a b322cc7adcd2e6ec1594d187533a126506ab545c · 34d99af52ad40bd498ba66970579a5bc1fb1a3bc y anteriores a 695c85dc345a4e0292739f004c261bedef3f27e6 · 34d99af52ad40bd498ba66970579a5bc1fb1a3bc y anteriores a 01b0ec8c397be65ff710777c97017ca1de56ef8e · 34d99af52ad40bd498ba66970579a5bc1fb1a3bc y anteriores a cf37b61b5420fd4600fe78cf8c24da6e4d9bfe28 · 34d99af52ad40bd498ba66970579a5bc1fb1a3bc y anteriores a 636a99bab36ba27515363d325866c0273ac83b3e · 34d99af52ad40bd498ba66970579a5bc1fb1a3bc y anteriores a 583cf579b32d99e3fe4e9c8ecc4d852e3708fbec · 34d99af52ad40bd498ba66970579a5bc1fb1a3bc y anteriores a 783f0f0974c156aca630f4ffff248671082a098d
- Linux Afectadas: 4.3 No afectadas: 5.10.270 · 5.15.221 · 6.1.188 · 6.6.157 · 6.12.109 · 6.18.50
Según el registro de la vulnerabilidad en CVE.org, tal como lo publicó el fabricante. Confirma tu versión exacta en el aviso del fabricante.
Referencias
- Referencia en git.kernel.orggit.kernel.org/stable/c/9cac21f8eb82675ed19fb955b8bbb9dd14cc3d58
- Referencia en git.kernel.orggit.kernel.org/stable/c/b322cc7adcd2e6ec1594d187533a126506ab545c
- Referencia en git.kernel.orggit.kernel.org/stable/c/695c85dc345a4e0292739f004c261bedef3f27e6
- Referencia en git.kernel.orggit.kernel.org/stable/c/01b0ec8c397be65ff710777c97017ca1de56ef8e
- Referencia en git.kernel.orggit.kernel.org/stable/c/cf37b61b5420fd4600fe78cf8c24da6e4d9bfe28
- Referencia en git.kernel.orggit.kernel.org/stable/c/636a99bab36ba27515363d325866c0273ac83b3e
- Referencia en git.kernel.orggit.kernel.org/stable/c/583cf579b32d99e3fe4e9c8ecc4d852e3708fbec
- Referencia en git.kernel.orggit.kernel.org/stable/c/783f0f0974c156aca630f4ffff248671082a098d
Ver el texto original en inglés (CVE.org)
audit: avoid dropping live tree ref on fsnotify rule autoremove
In the Linux kernel, the following vulnerability has been resolved: audit: avoid dropping live tree ref on fsnotify rule autoremove audit_del_rule() is used for both netlink deletion templates and internal fsnotify autoremove. The former passes a parsed template which owns a temporary tree reference; the latter passes the installed entry itself. The unconditional audit_put_tree() at the end of audit_del_rule() assumes the template case. For mixed AUDIT_DIR plus AUDIT_EXE rules, an fsnotify autoremove event therefore drops the installed rule's live tree reference. Repeating this across rules sharing the same tree can free the tree while another rule still references it, and a later autoremove dereferences the freed pathname while comparing rules. Move the temporary-tree put to audit_rule_change(), the caller that owns deletion templates. Keep it in the AUDIT_DEL_RULE cleanup so both successful deletion and -ENOENT still release the parser-owned tree. [PM: dropped unnecessary comment for line length reasons]