Secur0 Cna

#674de 60,391
322.1CVSS total
Vulnerabilidades · 47
Baixa
1
Média
27
Alta
15
Crítica
4
PT-2026-98839
2026-09-25
4.6
CVE-2026-80430
Kitty
Kitty
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.