PT-2026-54777 · Oras-Go · Oras-Go
Publicado
2026-07-01
·
Atualizado
2026-07-02
·
CVE-2026-50163
CVSS v3.1
7.1
Alta
| Vetor | AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:L/A:N |
Nome do Software Vulnerável e Versões Afetadas
oras-go (versões afetadas não especificadas)
Descrição
Um problema de travessia de caminho (path traversal) existe na função auxiliar de extração de tar
ensureLinkPath() no arquivo content/file/utils.go. A função valida se o alvo de um hardlink é resolvido dentro da base de extração, mas retorna a string target original não resolvida para o chamador. Quando o chamador utiliza os.Link() para criar um hardlink, caminhos relativos são resolvidos em relação ao diretório de trabalho atual (CWD) do processo, em vez do diretório de extração pretendido.Um invasor que controle um registro compatível com OCI pode criar um arquivo tar malicioso contendo uma entrada de hardlink com a variável
Linkname relativa. Quando uma vítima baixa esse artefato usando oras pull ou qualquer programa Go que utilize oras-go/v2/content/file, um hardlink é criado dentro da árvore de extração que aponta para um arquivo arbitrário no CWD do invocador. Isso permite que o invasor leia arquivos sensíveis (como arquivos .env ou credenciais) ou os modifique através da manipulação de compartilhamento de inode.Se o processo estiver sendo executado como root, isso pode ser usado para acessar qualquer arquivo no sistema de arquivos do host, incluindo
/etc/shadow. Em sistemas Linux com fs.protected hardlinks ativado, o invasor fica limitado a arquivos que o usuário possua ou tenha acesso de escrita dentro do CWD.Recomendações
Modificar a função
ensureLinkPath() para retornar tanto o alvo literal para symlinks quanto o caminho absoluto resolvido para hardlinks, garantindo que o caso TypeLink utilize o caminho absoluto resolvido ao chamar os.Link().Correção
Link Following
Path traversal
Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾
Identificadores relacionados
Produtos afetados
Oras-Go