Na digressão desta semana, discutiremos:
- uma consultoria de segurança OpenSSL versão 3.0.0;
- uma vulnerabilidade de transbordamento de uma matriz de Sqlite; e
- um ataque de repojacking GitHub.
Openssl Assessoria de Segurança
O OpenSSL 3.0.0 tratou recentemente de duas vulnerabilidades: CVE-2022-3602 e CVE-2022-3786.
CVE-2022-3602, classificado como crítico (9,8/10), envolve um estouro de 4 bytes de buffer de pilha que pode levar a DoS ou Code Execution. Para uma exploração bem sucedida, o alvo precisa realizar a validação do certificado X509 de um certificado malicioso, especificamente a verificação da restrição de nome. Um atacante pode criar um endereço de e-mail malicioso para transbordar quatro bytes controlados pelo atacante na pilha. Dito isto, o ataque pode ser frustrado por proteções de transbordamento de pilha tipicamente habilitadas em sistemas operacionais modernos. A vulnerabilidade foi inicialmente descrita como crítica pela OpenSSL, e análises posteriores levaram à redução da gravidade para alto. Embora no momento em que foi escrito, a pontuação básica seja 9,8 (crítica).
CVE-2022-3786, classificado como alto (7,5/10), é outro estouro de buffer que é acionado por um certificado tls malicioso. Semelhante à vulnerabilidade acima mencionada, o ataque envolve um atacante que emite um certificado com um endereço de e-mail malicioso. A diferença está nos caracteres que podem ser utilizados para causar um estouro, que é limitado ao caractere `...' (decimal 46), o que leva a uma falha de serviço ou Negação de Serviço.
Os usuários que utilizam o OpenSSL 3.0 são encorajados a atualizar para a versão mais recente o mais rápido possível. Este post no blog poderia ser útil para ajudar os usuários a determinar se eles têm a versão vulnerável da biblioteca em uso em seus ambientes.
Sqlite Array-bounds Overflow Vulnerabilidade
TrailofBits revelou uma vulnerabilidade de alta diversidade em uma popular biblioteca de SGBD Sqlite recentemente remendada O CVE atribuído a esta vulnerabilidade é CVE-2022-35737 e é avaliado em 7,5/10.
A vulnerabilidade é um estouro de array no SQLite 1.0.12 até 3.39.x antes do 3.39.2 e afeta as aplicações que utilizam a biblioteca SQLite API. A explorabilidade depende de como a SQLite é compilada; se o programa for compilado sem canários de pilha habilitados, é possível a execução de um código. A vulnerabilidade foi introduzida na v1.0.12, lançada em 17 de outubro de 2000.
De acordo com a fonte, "Em sistemas vulneráveis, o CVE-2022-35737 é explorável quando grandes entradas de string são passadas para as implementações SQLite das funções printf e quando a string de formato contém os tipos de substituição de formato %Q, %q, ou %w". Isto reduz a superfície de ataque e a probabilidade de uma aplicação ser realmente explorável através desta vulnerabilidade, embora ainda seja fortemente recomendado que os usuários avaliem o risco dentro do contexto de seu uso do componente.
A versão patch SQLite v3.39.2 está disponível para os usuários atualizarem para em suas aplicações. Os usuários dependentes de ferramentas que utilizam a biblioteca SQLite vulnerável precisariam esperar que o patch fosse liberado pelos mantenedores do código. Trailofbits também liberou o exploit POC que pode ser encontrado no GitHub.
Github Repojacking
A Checkmarx revelou mais um método para atacar a cadeia de abastecimento, visando repositórios de código hospedados no github.com. O ataque é chamado de repojacking e envolve a aquisição de um repositório, contornando um controle de segurança pré-existente estabelecido pela Microsoft para este tipo de ataque. Este controle é chamado de "repojacking popular-repositório-espaço de nomes-retirada" e basicamente desativa os usuários do GitHub de criar repositórios com um nome que corresponda ao usado anteriormente por um usuário desativado com o mesmo nome de usuário se o repositório tivesse mais de 100 clones dentro de uma semana antes da mudança do nome de usuário. Foi implementado como uma mitigação pelo GitHub após o checkmarx ter revelado uma vulnerabilidade semelhante em 2021.
O novo ataque contorna a mitigação alavancando um recurso de github chamado transferência de repositório. Eis como o ataque é perseguido:
- "vítima/repo" é um popular repositório GitHub aposentado sob a proteção "popular repositório namespace retirement".
- "A "helper_account" cria o repositório "repo
- A "helper_account" transfere a propriedade do repositório "repo" para a "attacker_account".
- "attacker_account" renomeia seu nome de usuário para "vítima".
- A nova conta "vítima" (anteriormente "conta_atacante") aceita a transferência de propriedade e assume essencialmente o repositório alvo
A correção para esta vulnerabilidade foi aplicada. A Checkmarx também lançou uma ferramenta para verificar quais dependências diretas de golang poderiam ser vulneráveis a este tipo de ataque.
Comentários