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

Vulnerabilidad en kernel de Linux (CVE-2025-21895)

Gravedad CVSS v3.1:
MEDIA
Tipo:
CWE-362 Ejecución concurrente utilizando recursos compartidos con una incorrecta sincronización (Condición de carrera)
Fecha de publicación:
01/04/2025
Última modificación:
31/10/2025

Descripción

En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: perf/core: Ordenar la lista de PMU para corregir la advertencia sobre pmu_ctx_list desordenada Syskaller activa una advertencia debido a prev_epc->pmu != next_epc->pmu en perf_event_swap_task_ctx_data(). vmcore muestra que dos listas tienen el mismo perf_event_pmu_context, pero no en el mismo orden. El problema es que el orden de pmu_ctx_list para el padre se ve afectado por el momento en que se agrega un evento/PMU. Mientras que el orden para un hijo se ve afectado por el orden de los eventos en pinned_groups y flexible_groups. Por lo tanto, el orden de pmu_ctx_list en el padre y el hijo puede ser diferente. Para corregir este problema, inserte perf_event_pmu_context en su lugar correcto después de la iteración de pmu_ctx_list. El siguiente caso de prueba puede activar la advertencia anterior: # perf record -e cycles --call-graph lbr -- tasket -c 3 ./a.out & # perf stat -e cpu-clock,cs -p xxx // xxx es el pid de a.out test.c void main() { int count = 0; pid_t pid; printf("%d en ejecución\n", getpid()); sleep(30); printf("en ejecución\n"); pid = fork(); if (pid == -1) { printf("fork error\n"); return; } if (pid == 0) { while (1) { count++; } } else { while (1) { count++; } } } El caso de prueba primero abre un evento LBR, por lo que asignará task_ctx_data y luego abrirá los eventos de tracepoint y software, por lo que el contexto principal tendrá 3 perf_event_pmu_contexts diferentes. En caso de herencia, el ctx secundario insertará perf_event_pmu_context en otro orden y se activará la advertencia. [mingo: Se ordenó el registro de cambios.]

Productos y versiones vulnerables

CPE Desde Hasta
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.2 (incluyendo) 6.6.81 (excluyendo)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.7 (incluyendo) 6.12.18 (excluyendo)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.13 (incluyendo) 6.13.6 (excluyendo)
cpe:2.3:o:linux:linux_kernel:6.14:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.14:rc2:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.14:rc3:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.14:rc4:*:*:*:*:*:*