
Eu nunca entendi porque diziam que o yaourt era inseguro. Afinal, sempre que eu pedia para instalar um pacote, ele pedia para eu editar o PKGBUILD e revisá-lo antes de instalar.
Isso significa que ele jamais rodaria código malicioso sem minha intervenção? Absolutamente não.
Hoje resolvi ler o código do yaourt para ver como ele extraía as informações do PKGBUILD, e tive uma surpresa:
readPKGBUILD(){ unset pkgname pkgver pkgrel arch pkgdesc provides url source install md5sums \ depends makedepends conflicts replaces _svntrunk _svnmod _cvsroot _cvsmod _hgroot \ _hgrepo _gitroot _gitname _darcstrunk _darcsmod _bzrtrunk _bzrmod source ./PKGBUILD &> /dev/null }
O yaourt é todo escrito em shell script, e para ler o PKGBUILD, ele simplesmente executa o mesmo, como você pode ver acima.
Sempre que você manda instalar um pacote, por exemplo, ele chama essa função para ler o PKGBUILD logo após baixá-lo:
msg "Downloading $PKG PKGBUILD from AUR..." wget -q "http://aur.archlinux.org/packages/$PKG/$PKG.tar.gz" || { error "$PKG not found in AUR."; return 1; } tar xfvz "$PKG.tar.gz" > /dev/null || return 1 cd "$PKG/" readPKGBUILD
Só bem mais para baixo no código é que ele oferece para editar o PKGBUILD:
prompt "Edit the PKGBUILD (recommended) ? [Y/n] (\"A\" to abort)"
O engraçado é que logo depois de rodar o readPKGBUILD, ele verifica se o pacote realmente consta na página do AUR, para verificar se o pacote foi recém-removido, e ainda alerta que a remoção provavelmente seja por razões de segurança:
warning "It seems like ${PKG} was removed from AUR probably for security reason. Please Abort"
Irônico. Muito irônico. A essa hora o pacote já pode ter executado um rm -rf ~/*, removendo todo o diretório home do usuário.
Lembre-se: Qualquer informação que for consultada de um pacote do AUR pelo yaourt fará com que o mesmo seja executado, até mesmo um yaourt -Si pacote.
Por isso eu insisto, remova imediatamente o yaourt de sua máquina se você possuí-lo, pois ele representa um risco em potencial.