Instituto Nacional de ciberseguridad. Sección Incibe
Instituto Nacional de Ciberseguridad. Sección INCIBE-CERT

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 &amp;#39;if (!rc)&amp;#39; y establece &amp;#39;result = true&amp;#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 &amp;#39;semodule -d&amp;#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 &amp;#39;if (rc == -ESTALE &amp;&amp; !rule_reinitialized)&amp;#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 &amp;#39;if (!rc)&amp;#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 &amp;#39;if (!rc)&amp;#39; a &amp;#39;if (rc menor o igual a 0)&amp;#39; para asegurar que los códigos de error como -ENOENT no omitan la comprobación y accidentalmente resulten en una coincidencia exitosa.

Impacto