No kernel Linux, a seguinte vulnerabilidade foi resolvida: sched/ eevdf: Corrigir se-> se selecionar sendo configurado para U 64 _MAX e o bloqueio resultante Há um caminho de código em dequeue_entities() que pode definir a fatia de uma sched_entity para U 64 _MAX, que às vezes resulta em um acidente. O caso ofensivo é quando dequeue_entities() é chamado para dequeue uma entidade de grupo atrasada, e então a dequeue do pai da entidade é atrasada. Nesse caso: 1. No bloco if (entity_is_task(se)) no início de dequeue_entities(), a fatia está definida para cfs_rq_min_slice(group_cfs_rq(se)). Se a entidade foi adiada, então ela não tem tarefas em fila, então cfs_rq_min_slice() retorna U 64 _MAX. 2. O primeiro loop for_each_sched_entity() descarta a entidade. 3. Se a entidade foi a única filha do pai, então a próxima iteração tenta desfazer o pai. 4. Se a dequeue do pai precisar ser adiada, então ela se rompe do primeiro loop for_each_sched_entity() sem atualizar o slice_. 5. O segundo loop for_each_sched_entity() define o corte do pai -> para a fatia salva, que ainda é U 64 _MAX. Isto descarta cálculos subsequentes com resultados potencialmente catastróficos. Uma manifestação que vimos na produção foi: 6. No update_entity_lag(), se->slice é usado para calcular o limite, que acaba como um número negativo enorme. 7. limite é usado em se->vlag = clamp(vlag, - limite, limite). Porque o limite é negativo, vlag > limite, então se->vlag é definido para o mesmo número negativo enorme. 8. No place_entity(), o se->vlag é escalado, o que transborda e resulta em outro número enorme (positivo ou negativo). 9. O tempo de decadência ajustado é subtraído do se-> vruntime, o que aumenta ou diminui o se-> vruntime por um número enorme. 10. pick_eevdf() chama entity_elegible()/vruntime_elegible(), que incorretamente retorna falso porque o vruntime está tão longe dos outros vruntimes na fila, causando a (vruntime - cfs_rq->min_vruntime) * cálculo de carga para sobrecarregar. 11. Nada parece ser elegível, então pick_ eevdf() retorna NULL. 12. pick_next_entity() tenta desreferir o valor de retorno de pick_eevdf() e falhas. O lançamento dos estados cfs_rq a partir dos dumps do núcleo com o drgn mostrou grandes intervalos de tempo de vruntime e valores de vlag falsos, e também rastreei se->slice sendo configurado para U 64 _MAX em sistemas vivos (que geralmente era "benigno" uma vez que o resto da runqueue precisava estar em um estado particular para se bloquear). Conserte- o em dequeue_entities() sempre configurando a fatia do primeiro cfs_rq não vazio.
O registro de base de dados de vulnerabilidade nacional CVE- 2025 - 37821 foi publicado em 2025 - 05 - 08 T 07: 15: 53.333 Z e última modificação em 2026 - 06 - 17 T 09: 15: 30.460 Z. O seu estado gravado é analisado.
métricas de vulnerabilidade gravadas: CVSS 3.1, pontuação de base 5.5, gravidade MEDIUM, vetor CVSS: 3.1 /AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H, pontuação de exploração 1.8, pontuação de impacto 3.6.
Classificações de fraqueza associadas: CWE- 476.
Os produtos ou plataformas nomeados nos dados de aplicabilidade incluem: kernel linux linux.
O registro NVD inclui referências de suporte documentando a vulnerabilidade, tecnologia afetada ou informações de remediação.