PT-2026-98839
CVE-2026-80430
·
Publicado
2026-09-25
·
Atualizado
2026-09-25
Descrição por
CVSS 4.0
4.6
MédiaMétricasAV:L/AC:L/AT:N/PR:N/UI:A/VC:N/VI:N/VA:N/SC:N/SI:L/SA:N
Nome do Software Vulnerável e Versões Afetadas
kitty versões 0.47.0 até 0.48.x
Descrição
A resolução inadequada de links no caminho de encenação da fonte de arrasto do protocolo de arrastar e soltar permite que um programa que escreva no terminal crie arquivos e diretórios fora do diretório de encenação. Isso ocorre porque a função
subdir data for drag() em kitty/dnd.c resolve descendentes da árvore de itens encenados construindo uma string de caminho e abrindo-a com safe open(path, O DIRECTORY | O RDONLY, 0) em vez de percorrer a árvore componente por componente. Um invasor pode declarar duas entradas com o mesmo nome — primeiro um link simbólico apontando para um caminho absoluto arbitrário e, em seguida, um diretório — fazendo com que o mkdirat() falhe com EEXIST. O código ignora essa falha, levando a resolução de caminho subsequente a seguir o link simbólico e retornar um descritor de diretório fora do diretório de encenação. Este descritor é então passado como o argumento dirfd para add payload() e usado para todas as operações de criação subsequentes. Embora os nomes das entradas sejam sanitizados, os alvos dos links simbólicos não são validados. Arquivos são criados com O CREAT | O WRONLY | O EXCL no modo 0644, impedindo a sobrescrita de arquivos existentes, mas diretórios são criados com mkdirat() no modo 0755, permitindo a criação de novos diretórios intermediários em qualquer caminho gravável pelo usuário que executa a aplicação, desde que o alvo do link simbólico seja um diretório existente.Recomendações
Atualize o kitty para a versão 0.49.0 ou posterior.
Explorabilidade
Exploit
Correção
Impactos
Fornecedores
Produtos afetados
Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾