Tanto dhclient
como dhcpcd
llaman a los scripts de configuración que invocan un shell del sistema, por lo que son vulnerables.
Sin embargo , según mis pruebas, parece que puedes ejecutar al menos dhcpcd
con éxito sin la secuencia de comandos de configuración (si cambias el nombre / mueves la secuencia de comandos):
$ pkill dhcpcd
$ ping -c 1 www.google.com
ping: unknown host www.google.com
$ mv /usr/lib/dhcpcd/dhcpcd-run-hooks /usr/lib/dhcpcd/dhcpcd-run-hooks-disabled
$ dhcpcd
dhcpcd[29057]: version 6.4.3 starting
dhcpcd[29057]: script_runreason: /usr/lib/dhcpcd/dhcpcd-run-hooks: WEXITSTATUS 127
(...)
dhcpcd[29057]: forked to background, child pid 29069
$ ping -c 1 www.google.com
PING www.google.com (74.125.232.240) 56(84) bytes of data.
64 bytes from arn06s07-in-f16.1e100.net (74.125.232.240): icmp_seq=1 ttl=54 time=16.4 ms
(...)
Como puede ver, hay una advertencia, pero al final se establece la conexión.
Probablemente habrá algunas cosas (por ejemplo, un dominio) que no están configuradas correctamente, por lo que esta es una solución pirata. No he probado esto en una red WiFi, podría fallar allí.
Editar: basado en strings /usr/bin/dhcpcd
parece que la ruta del script está codificada.