O desenvolvedor Greg Kroah-Hartman lançou três atualizações estáveis do kernel Linux. Todas elas são importantes em parte por terem mitigado o problema de segurança do driver i915 divulgado recentemente que afeta os gráficos Intel “Gen12” dos gráficos integrados Tigerlake até o DG2/Alchemist Arc Graphics. Sendo assim, os kernels Linux 6.0.11, 5.15.81 e 5.10.157 acabam de ser lançados com correção de segurança de gráficos Intel Gen12.
Tornou-se público no início desta semana o CVE-2022-4139 como um bug sensível à segurança em torno da liberação de TLB da GPU. Da descrição da divulgação:
Em alguns casos (hardware Gen12 com tipos específicos de mecanismo), o TLB do mecanismo não é liberado. Dependendo se a GPU está rodando atrás de um IOMMU ativo, existem dois cenários possíveis que podem acontecer, devido ao mapeamento TLB obsoleto:
1. Sem IOMMU – GPU ainda pode acessar a memória física que já pode ter sido atribuída pelo sistema operacional a um processo diferente. 2. Com IOMMU – GPU pode acessar qualquer memória, se o processo malicioso for capaz de criar/reutilizar os mapeamentos IOMMU necessários.
Atualmente não se sabe se a memória específica pode ser alvo, mas corrupção de memória aleatória ou vazamentos de dados são uma possibilidade conhecida.
Todas as GPUs integradas e discretas da Intel Gen12 são afetadas, incluindo Tiger Lake, Rocket Lake, Alder Lake, DG1, Raptor Lake, DG2, Arctic Sound, Meteor Lake. O Fix já foi desenvolvido e consiste em corrigir o método de escrita em registradores específicos.
Linux 6.0.11, 5.15.81 e 5.10.157 lançados com correção de segurança de gráficos Intel Gen12
Linux 6.0.11, Linux 5.15.81 e Linux 5.10.157 foram lançados com esta correção “drm/i915: corrigir invalidação de TLB para mecanismos de vídeo e computação Gen12” junto com uma variedade de outras correções de bugs.
Driver gráfico Intel Linux Kernel corrigido para novo bug sensível à segurança
O CVE-2022-4139 foi tornado público hoje como um problema de segurança do driver gráfico do kernel i915 que afeta todos os gráficos Gen12 – desde os gráficos Tigerlake integrados até os gráficos Raptor Lake mais recentes, bem como o código Meteor Lake em desenvolvimento, além das GPUs discretas do DG2 /Alchemist e Arctic Sound.
A Intel divulgou o CVE-2022-4139 como um problema incorreto de liberação de TLB da GPU em seu driver gráfico do kernel do Linux. Em alguns casos, o buffer lookaside de tradução (TLB) não é descarregado.
No mínimo, pode haver corrupção de memória aleatória ou vazamentos de dados, embora ainda não tenha sido determinado se a memória específica pode ser direcionada nas versões afetadas do kernel do Linux até este ponto.
Acredita-se que todas as versões do Linux 5.4 até as versões mais recentes do kernel sejam afetadas ao usar gráficos integrados/discretos Intel Gen12. No entanto, isso representa um problema de driver da Intel e não um problema de hardware em si.
A divulgação da lista oss-sec da Intel observa:
O código de liberação TLB da GPU incorreto foi descoberto no driver do kernel i915.Em alguns casos (hardware Gen12 com tipos específicos de mecanismo), o TLB do mecanismo não é liberado. Dependendo se a GPU está rodando atrás de um IOMMU ativo, existem dois cenários possíveis que podem acontecer, devido ao mapeamento TLB obsoleto: 1. Sem IOMMU – GPU ainda pode acessar a memória física que já pode ter sido atribuída pelo sistema operacional a um processo diferente. 2. Com IOMMU – GPU pode acessar qualquer memória, se o processo malicioso for capaz de criar/reutilizar os mapeamentos IOMMU necessários.
Atualmente não se sabe se a memória específica pode ser alvo, mas corrupção de memória aleatória ou vazamentos de dados são uma possibilidade conhecida.Todas as GPUs integradas e discretas da Intel Gen12 são afetadas, incluindo Tiger Lake, Rocket Lake, Alder Lake, DG1, Raptor Lake, DG2, Arctic Sound, Meteor Lake. O Fix já foi desenvolvido e consiste em corrigir o método de escrita em registradores específicos.
Linus Torvalds acabou de mesclar essas cinco linhas de código para mitigar a invalidação de TLB nos gráficos Intel Gen12 para os mecanismos de vídeo e computação.
drm/i915: correção da invalidação de TLB para mecanismos de vídeo e computaçãoGen12 No caso de mecanismos de vídeo e computação Gen12, os registros TLB_INV são mascarados – para modificar um bit, o bit correspondente na metade superior do registro deve ser ativado, caso contrário, nada acontece.
Este pequeno patch deve ser portado para a série estável do Linux em pouco tempo.