CVE-2025-38580

In the Linux kernel, the following vulnerability has been resolved: ext4: fix inode use after free in ext4_end_io_rsv_work() In ext4_io_end_defer_completion(), check if io_end->list_vec is empty to avoid adding an io_end that requires no conversion to the i_rsv_conversion_list, which in turn prevents starting an unnecessary worker. An ext4_emergency_state() check is also added to avoid attempting to abort the journal in an emergency state. Additionally, ext4_put_io_end_defer() is refactored to call ext4_io_end_defer_completion() directly instead of being open-coded. This also prevents starting an unnecessary worker when EXT4_IO_END_FAILED is set but data_err=abort is not enabled. This ensures that the check in ext4_put_io_end_defer() is consistent with the check in ext4_end_bio(). Otherwise, we might add an io_end to the i_rsv_conversion_list and then call ext4_finish_bio(), after which the inode could be freed before ext4_end_io_rsv_work() is called, triggering a use-after-free issue.
CVSS

No CVSS.

Configurations

No configuration.

History

20 Aug 2025, 14:40

Type Values Removed Values Added
Summary
  • (es) En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: ext4: se corrige el uso de inodo use after free en ext4_end_io_rsv_work() En ext4_io_end_defer_completion(), se comprueba si io_end->list_vec está vacío para evitar añadir un io_end que no requiere conversión a i_rsv_conversion_list, lo que a su vez impide iniciar un trabajador innecesario. También se añade una comprobación ext4_emergency_state() para evitar intentar abortar el diario en un estado de emergencia. Además, ext4_put_io_end_defer() se refactoriza para llamar a ext4_io_end_defer_completion() directamente en lugar de estar en código abierto. Esto también impide iniciar un trabajador innecesario cuando EXT4_IO_END_FAILED está configurado pero data_err=abort no está habilitado. Esto garantiza que la comprobación en ext4_put_io_end_defer() sea coherente con la comprobación en ext4_end_bio(). De lo contrario, podríamos agregar un io_end a i_rsv_conversion_list y luego llamar a ext4_finish_bio(), después de lo cual el inodo podría liberarse antes de que se llame a ext4_end_io_rsv_work(), lo que desencadenaría un problema de use-after-free.

19 Aug 2025, 17:15

Type Values Removed Values Added
New CVE

Information

Published : 2025-08-19 17:15

Updated : 2025-08-20 14:40


NVD link : CVE-2025-38580

Mitre link : CVE-2025-38580

CVE.ORG link : CVE-2025-38580


JSON object : View

Products Affected

No product.

CWE

No CWE.