Você não precisa da paranóia. O GNU tar
- e de fato qualquer programa tar
bem escrito, produzido nos últimos 30 anos ou mais - irá se recusar a extrair arquivos no tarball que começam com uma barra ou que contêm ..
elementos, por padrão.
Você tem que se esforçar para forçar os programas tar
modernos a extraírem tarballs potencialmente maliciosos: tanto o GNU quanto o BSD tar
precisam da opção -P
para fazê-los desativar essa proteção. Consulte a seção Nomes absolutos de arquivos no manual do GNU alcatrão.
O sinalizador -P
não é especificado por POSIX, ¹ assim, outros programas tar
podem ter formas diferentes de lidar com isso. Por exemplo, o star
program da Schily Tools usa -/
e -..
para desativar essas proteções.
A única coisa que você pode considerar em adicionar um comando tar
ingênuo é um sinal -C
para forçá-lo a extrair as coisas em um diretório temporário seguro, para que você não precise cd
primeiro.
Afora :
-
Tecnicamente,
tar
não é mais especificado por POSIX. Eles tentaram dizer ao mundo da computação Unix que deveríamos estar usandopax
agora em vez detar
ecpio
, mas o mundo da computação ignorou-os em grande parte.É relevante notar aqui que a especificação POSIX para
pax
não diz como deve lidar com barras iniciais ou elementos..
incorporados. Há um sinalizador--insecure
não padrão para BSDpax
para suprimir as proteções contra os elementos do caminho..
embutidos, mas aparentemente não há proteção padrão contra as barras principais; a página BSDpax
man indiretamente recomenda escrever regras de substituição de-s
para lidar com o risco de caminho absoluto.Esse é o tipo de coisa que acontece quando um padrão de fato permanece em uso ativo enquanto o padrão de jure é largamente ignorado.