Embora não tenha uma resposta definitiva, acredito que a falha de segurança esteja presente apenas se o seu nc
tiver -e
ativado e for setuid root. (Como o nc
é frequentemente usado para vincular-se a portas, ele pode ser configurado como setuid root para permitir que todos os usuários se vinculem às portas privilegiadas abaixo de 1024).
Nessa situação, nc -e
iria exec
do processo dado como root - o que significa que deixaria qualquer usuário executar qualquer processo como root . Tenho certeza de que você reconhecerá que isso é um buraco de segurança. Por outro lado, se você executar seu próprio processo e usar pipes para conectá-lo a nc
, esse processo não será executado como raiz, a menos que você tenha outra forma de elevá-lo (como sudo
access).
Como garra apontou, da netcat anúncio de lançamento original reclamou que
the commercial vendors would have likely packaged [netcat] setuid root and with
-DGAPING_SECURITY_HOLE
turned on but not documented.
Isso empresta peso à minha teoria, eu acho. :)