A vulnerabilidade foi descoberta em um grande número de compiladores que permitem ocultar códigos maliciosos

Especialistas da Universidade de Cambridge publicaram informações sobre uma vulnerabilidade perigosa (CVE-2021-42574), que afeta quase todoscompiladores de código-fonte modernos. O artigo da Fonte do Trojan descreve um ataque insidioso que permite que os hackers ocultem código malicioso no código-fonte de vários programas.

O ataque é baseado em como os compiladoreslidar com identificadores exclusivos usados ​​para determinar a orientação do texto – da esquerda para a direita ou da direita para a esquerda. O ponto fraco está no algoritmo Unicode Bidi, que permite que palavras escritas da direita para a esquerda e da esquerda para a direita sejam usadas juntas. Graças a este algoritmo, você pode combinar palavras em árabe e inglês. Isso permite ler texto escrito da direita para a esquerda, da esquerda para a direita e vice-versa.

Em alguns casos, as capacidades do algoritmoUnicode Bidi não é suficiente para alterar a forma como essas palavras são exibidas, e caracteres de controle especiais são usados ​​nesses casos. No entanto, se a mesma linha combinar palavras com direções de texto diferentes, usando esses caracteres de controle você poderá alterar a direção em que o compilador lê o texto e, por exemplo, fazer linhas que parecem comentários funcionarem como código executável.


</ img>

Usando este método, você pode adicionar malwareinstrução no código-fonte normal e tornar o texto desta instrução invisível ao visualizar o código usando um comentário subsequente. Isso irá inserir caracteres completamente diferentes, que na verdade podem ser códigos arbitrários. O código-fonte final permanece semanticamente correto, mas uma vez compilado, algo completamente diferente acontece.

Ao visualizar e analisar esse código-fonteo programador verá o código com comentários que não levantam nenhuma suspeita, mas o compilador ou interpretador reverterá a ordem lógica dos símbolos, e o comentário inocente se transformará em código adicional inserido no programa. O erro está presente em quase todos os compiladores – para linguagens de programação C, C++ (gcc e clang), C#, JavaScript (Node.js), Java (OpenJDK 16), Rust, Go e Python; em uma variedade de editores de código populares, incluindo VS Code, Emacs, Atom e interfaces de visualização de código-fonte no GitHub, Gitlab, BitBucket e todos os produtos Atlassian.

Fonte: trojansource, zdnet

</ p>