A A melhoria de segurança do endurecimento do kernel a caminho do Linux 6.1 é a capacidade de fornecer avisos sobre possíveis estouros baseados em memcpy(). No momento, isso é apenas um aviso, mas é um trabalho para poder abordar condições de estouro de buffer”trivialmente detectáveis”dentro do kernel e, no futuro, pode ser capaz de impedir que esses estouros aconteçam.
A adição que está em andamento há mais de um ano pelo engenheiro do Google Kees Cook fornece um aviso em tempo de execução para memcpy() de campo cruzado quando o kernel é compilado com CONFIG_FORTIFY_SOURCE ativado. O recurso fornece verificação em tempo de execução dos comprimentos dinâmicos de memcpy() e memmove() e emitirá um aviso quando uma gravação exceder o tamanho do membro da estrutura de destino.
Kees Cook observou com o patch:
“Isso teria capturado todos os estouros de buffer baseados em memcpy() nos últimos 3 anos, cobrindo especificamente todos os casos em que o tamanho do buffer de destino é conhecido em tempo de compilação.”
O Linux Os problemas”BleedingTooth”como o conjunto de vulnerabilidades de clique zero no subsistema Linux Bluetooth e levando à execução remota de código é um exemplo de algo que poderia ter sido evitado por este trabalho.
Esse recurso de fortificação passou pelo linux-next por um ciclo inteiro, mas ainda há casos conhecidos de falsos positivos. Até que esses falsos positivos sejam resolvidos adequadamente, esse recurso apenas fornece um aviso sobre esses possíveis estouros, mas não os bloqueia-é possível que, uma vez amadurecido, esse bloqueio aconteça como uma boa defesa contra estouros de buffer baseados em memcpy no kernel do Linux. A esperança também é, mesmo com o modo de aviso, que esse recurso possa ser usado para encontrar problemas restantes no código do kernel, onde tamanhos de array e membros de struct precisam ser corrigidos, um foco contínuo nos últimos anos.
Mais detalhes na solicitação pull de proteção do kernel direcionada à janela de mesclagem do Linux 6.1 recém-aberta.