Executando verificação de segurança...
1

Múltiplas falhas do Notepad++ permitem que invasores executem código arbitrário

Várias vulnerabilidades de Buffer Overflow foram descobertas no Notepad++ que podem ser exploradas por agentes de ameaças para fins maliciosos. As gravidades dessas vulnerabilidades variam de 5,5 ( Média ) a 7,8 ( Alta ).

As vulnerabilidades são baseadas no heap buffer write overflow e heap buffer read overflow em algumas funções e bibliotecas usadas pelo software Notepad++, identificadas pelo pesquisador de segurança do Gitlab Jaroslav Lobačevski ( @JarLob ) .

Notepad++ é um editor de código-fonte baseado em C++ de código aberto que funciona em arquiteturas Microsoft x86, x64 e AArch64. O Notepad++ suporta edição com guias e permite trabalhar com vários arquivos em uma única janela. Don Ho o desenvolveu.

O Notepad++ não corrigiu essas vulnerabilidades . No entanto, de acordo com a sua política de divulgação coordenada, o GitLab publicou estas vulnerabilidades juntamente com a prova de conceito.

CVE-2023-40031 : Estouro de gravação do buffer de heap em Utf8_16_Read::convert
O Notepad++ usa uma função chamada Utf8_16_Read::convert, que converte a codificação UTF16 em UTF8. Esta função tem uma falha, pois assume que para cada dois bytes codificados em UTF16, são necessários três bytes codificados em UTF8. Se o bloco de bytes for definido com um valor ímpar como 9, o cálculo se tornará incompatível, resultando em um buffer overflow.

CVE-2023-40036 : Estouro de leitura de buffer global em CharDistributionAnalysis::HandleOneChar
Esta vulnerabilidade existe porque a ordem do índice da matriz depende do tamanho do buffer mCharToFreqOrder que um agente de ameaça pode explorar criando especialmente um arquivo que leva a um estouro de leitura do buffer global. Além disso, o aplicativo também utiliza uma biblioteca uchardet que suporta esta operação.

CVE-2023-40164 : Estouro de leitura de buffer global em nsCodingStateMachine::NextState
Uma cópia divergente da biblioteca uchardet está sendo usada pelo Notepad++, que foi considerado vulnerável ao estouro de leitura do buffer global. Isso ocorre porque o índice da matriz byteCls depende do tamanho do buffer charLenTable, que um arquivo especialmente criado pode explorar.

CVE-2023-40166 : Estouro de leitura do buffer de heap em FileManager::detectLanguageFromTextBegining
Ao abrir um arquivo, o Notepad++ chama a função FileManager::loadFile, que aloca um buffer de tamanho fixo, seguida por FileManager::loadFileData, carregando o primeiro bloco de dados no buffer.

Depois disso, ele chama detectLanguageFromTextBegining para identificar o tipo de conteúdo do ponto inicial do arquivo. A falha existe porque o loop FileManager::detectLanguageFromTextBegining não verifica se i+longestlength < dataLen, resultando em um buffer overflow.

Os patches ainda não foram confirmados pelo Notepad++ para corrigir essas vulnerabilidades. O GitLab publicou um relatório completo (https://securitylab.github.com/advisories/GHSL-2023-092_Notepad__/#resources) sobre esta vulnerabilidade, que menciona a prova de conceito, código de exemplo e outras informações.

Carregando publicação patrocinada...