Vulnerabilidad en Linux de Linux (CVE-2025-68740)
Gravedad:
Pendiente de análisis
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
24/12/2025
Última modificación:
05/10/2026
Descripción
En el kernel de Linux, la siguiente vulnerabilidad ha sido resuelta:<br />
<br />
ima: Manejar el código de error devuelto por ima_filter_rule_match()<br />
<br />
En ima_match_rules(), si ima_filter_rule_match() devuelve -ENOENT debido a que la regla es NULL, la función omite incorrectamente la comprobación &#39;if (!rc)&#39; y establece &#39;result = true&#39;. La regla LSM se considera una coincidencia, lo que provoca que IMA mida archivos adicionales.<br />
<br />
Este problema puede reproducirse en el siguiente escenario:<br />
Después de descargar el módulo de política de SELinux mediante &#39;semodule -d&#39;, si se activa una medición de IMA antes de que se actualice ima_lsm_rules, en ima_match_rules(), la primera llamada a ima_filter_rule_match() devuelve -ESTALE. Esto hace que el código entre en el bloque &#39;if (rc == -ESTALE && !rule_reinitialized)&#39;, realice ima_lsm_copy_rule() y reintente. En ima_lsm_copy_rule(), dado que el módulo SELinux ha sido eliminado, la regla se vuelve NULL, y la segunda llamada a ima_filter_rule_match() devuelve -ENOENT. Esto omite la comprobación &#39;if (!rc)&#39; y resulta en una coincidencia falsa.<br />
<br />
Traza de llamadas:<br />
selinux_audit_rule_match+0x310/0x3b8<br />
security_audit_rule_match+0x60/0xa0<br />
ima_match_rules+0x2e4/0x4a0<br />
ima_match_policy+0x9c/0x1e8<br />
ima_get_action+0x48/0x60<br />
process_measurement+0xf8/0xa98<br />
ima_bprm_check+0x98/0xd8<br />
security_bprm_check+0x5c/0x78<br />
search_binary_handler+0x6c/0x318<br />
exec_binprm+0x58/0x1b8<br />
bprm_execve+0xb8/0x130<br />
do_execveat_common.isra.0+0x1a8/0x258<br />
__arm64_sys_execve+0x48/0x68<br />
invoke_syscall+0x50/0x128<br />
el0_svc_common.constprop.0+0xc8/0xf0<br />
do_el0_svc+0x24/0x38<br />
el0_svc+0x44/0x200<br />
el0t_64_sync_handler+0x100/0x130<br />
el0t_64_sync+0x3c8/0x3d0<br />
<br />
Solucione esto cambiando &#39;if (!rc)&#39; a &#39;if (rc menor o igual a 0)&#39; para asegurar que los códigos de error como -ENOENT no omitan la comprobación y accidentalmente resulten en una coincidencia exitosa.
Impacto
Referencias a soluciones, herramientas e información
- https://git.kernel.org/stable/c/32952c4f4d1b2deb30dce72ba109da808a9018e1
- https://git.kernel.org/stable/c/738c9738e690f5cea24a3ad6fd2d9a323cf614f6
- https://git.kernel.org/stable/c/88cd5fbf5869731be8fc6f7cecb4e0d6ab3d8749
- https://git.kernel.org/stable/c/c2238d487a640ae3511e1b6f4640ab27ce10d7f6
- https://git.kernel.org/stable/c/cca3e7df3c0f99542033657ba850b9a6d27f8784
- https://git.kernel.org/stable/c/d14e0ec6a6828ee0dffa163fb5d513c9a21f0a51
- https://git.kernel.org/stable/c/de4431faf308d0c533cb386f5fa9af009bc86158
- https://git.kernel.org/stable/c/f2f4627b74c120fcdd8e1db93bc91f9bbaf46f85


