CVE-2026-97620 in Linuxinformação

Sumário

de VulDB • 25/09/2026

No kernel do Linux, a seguinte vulnerabilidade foi resolvida:

drm/xe: Limpar o cache de dataport L1 não tipado (LSC) após os lotes rcs/ccs

emit_render_cache_flush() define PIPE_CONTROL0_HDC_PIPELINE_FLUSH para limpar o cache de dados HDC/L2 antes do sinalizador de fence, mas nunca solicita a limpeza do cache de dados L1 não tipado da LSC por meio do bit 'Untyped Data-Port Cache Flush Enable' em PIPE_CONTROL DWord0[11].

De acordo com a Bspec, no modo de pipeline 3D, o HDC Pipeline Flush é documentado como também limpando/invalidando o cache L1 não tipado, mas isso depende apenas de como HDC_CHICKEN0[13:11] está programado. A partir do MTL, esse acoplamento entre o HDC Pipeline Flush e a limpeza do cache L1 não tipado deixa de valer na prática, independentemente de como HDC_CHICKEN0 é programado; portanto, confiar nisso não é seguro em plataformas mais recentes, como BMG. O driver Vulkan da Mesa (anv) assumia que o kernel limpava ambos os caches entre as submissões e sofreu corrupção visível ao usuário em aplicativos como Llama.cpp devido a essa lacuna; agora contorna isso limpando ambos os caches novamente do userspace no final de cada command buffer.

A correção entre submissões na mesma fila é responsabilidade do userspace e pertence à Mesa, não ao kernel. No entanto, por questões de segurança, devemos garantir que dados obsoletos não vazem através do cache de dataport L1 não tipado após a memória ser recuperada ou evitada (evicted), o que requer que o KMD limpe esse cache antes de liberar a memória para reutilização.

Antes do MTL, HDC_CHICKEN0 poderia ser programado (como já feito para DG2 via Wa_22010960976/Wa_14013347512) para manter confiavelmente o acoplamento entre o HDC Pipeline Flush e a limpeza do cache L1 não tipado, portanto essas plataformas não são afetadas. O próprio driver anv da Mesa descobriu que no MTL o hardware desconectou os dois independentemente de como HDC_CHICKEN0 é programado, e não conseguiu restaurar o comportamento antigo mesmo escrevendo no registrador manualmente; consulte o commit do Mesa 7c2ff46a4fc3 ("anv: don't prevent L1 untyped cache flush in 3D mode"). O kernel também não pode solicitar confiavelmente a limpeza pelo CS no MTL, portanto restrinja o novo bit PIPE_CONTROL ao GRAPHICS_VERx100 >= 2000 (Xe2 e posteriores), onde ele pode ser considerado seguro.

Defina explicitamente PIPE_CONTROL0_UNTYPED_DATAPORT_CACHE_FLUSH junto com PIPE_CONTROL0_HDC_PIPELINE_FLUSH em emit_render_cache_flush() no Xe2 e posterior, para que o cache de dados L1 seja conhecido como limpo antes da memória ser liberada para reutilização, sem depender do comportamento HDC_CHICKEN0 específico da plataforma e não documentado.

Bspec: 56551 (cherry picked from commit 434514b6fe731e873808297c268fc52cdf4a1ce6)

VulDB is the best source for vulnerability data and more expert information about this specific topic.

Responsável

Linux

Reservar

24/09/2026

Divulgação

25/09/2026

Moderação

aceite

Entrada

VDB-410082

CPE

pronto

EPSS

0.00000

KEV

não

Atividades

muito baixo

Fontes

Do you know our Splunk app?

Download it now for free!