Pular para o conteúdo principal
O tool @archive cuida dos pacotes que um agente baixa ou entrega — zip, tar, tar.gz/tgz e tar.bz2 — sem shell e sem as armadilhas clássicas: uma entrada chamada ../../etc/passwd, um caminho absoluto, um symlink apontando para fora do destino, ou uma “bomba” de 10 GB declarada como 1 KB.

Subcomandos


Segurança

  • Zip-slip: nomes absolutos, letras de unidade e escapes .. são recusados; todo destino é resolvido após symlinks e precisa ficar sob to, inclusive quando um ancestral já materializado é um symlink que leva para fora.
  • Links: entradas symlink e hard link cujo alvo resolve para fora de to são recusadas.
  • Limites valem sobre os bytes realmente lidos, não sobre o tamanho declarado; uma entrada recusada não deixa nada para trás e o relatório diz até onde a extração chegou.
  • Arquivos são criados com 0600/0700 e O_EXCL, então uma corrida não transforma uma recusa em sobrescrita.
  • list/read são somente leitura; extract/create são mutações e passam pelo gate de segurança do coder.
Arquivos xz não são suportados (sem decoder na biblioteca padrão); o erro nomeia os formatos suportados.