Watch at EaseHistorias. Respuestas. Perspectiva.

Tecnología · GUÍA PRÁCTICA

¿ld.so dice “object from LD_PRELOAD cannot be preloaded”? Encuentra al inyector antes de cambiar bibliotecas

El aviso solo demuestra que el cargador dinámico rechazó un objeto solicitado. Conserva el comando, rastrea cada origen de precarga, compara la identidad ELF del ejecutable y del objeto y cambia solo la configuración propietaria.

Diagrama del recorrido de LD_PRELOAD desde entorno, lanzador y archivo del sistema hasta el cargador
Ilustración: identifica la configuración que inyectó el objeto antes de cambiar bibliotecas. Watch at Ease

El cargador dinámico emite el mensaje antes de que el programa termine de arrancar. Indica que se pidió un objeto adicional y fue ignorado; no demuestra que falten todas las bibliotecas ni que la aplicación creara la solicitud.

Crea un registro de propietario a objeto. Identifica si la solicitud vino del entorno, lanzador, servicio o /etc/ld.so.preload y luego separa ruta, ELF, mapeo y ejecución segura.

1. Fija el aviso y el contexto

Guarda la línea completa, objeto, motivo entre paréntesis, comando, ejecutable, identidad, directorio y hora. cannot open, failed to map y eliminación segura son hallazgos distintos.

Reproduce una vez solo si es seguro y anota si aparece en shell, envoltorio, servicio, contenedor o programa privilegiado. No reinstales una biblioteca sin demostrar su dueño.

2. Identifica todos los inyectores

Revisa entorno, inicio del shell, envoltorios, Environment/EnvironmentFile del servicio y contenedor. Examina aparte /etc/ld.so.preload, que actúa en todo el sistema.

Si unset LD_PRELOAD no quita el aviso, hay otro propietario. Conserva cada valor y origen antes de editar.

3. Clasifica ruta, acceso e identidad ELF

Resuelve el token como el cargador y registra existencia, tipo, dueño, permisos y montaje. Un directorio, enlace roto, archivo inaccesible o token dividido no es un objeto válido.

Compara ejecutable y objeto con file y readelf: clase, codificación, OS/ABI y máquina. No ejecutes un objeto no confiable para inspeccionarlo.

4. Separa mapeo, reubicación y ejecución segura

Si ruta y ELF coinciden, recoge diagnósticos en la misma prueba sin privilegios para segmentos, dependencias, reubicaciones, símbolos y versiones.

Programas set-ID o con capacidades restringen LD_PRELOAD. No debilites permisos ni copies objetos arbitrarios a directorios confiables.

5. Corrige al propietario y demuestra el resultado

Modifica solo el shell, envoltorio, servicio, contenedor o /etc/ld.so.preload demostrado. Restaura un paquete solo tras confirmar propiedad y ABI.

Prueba el mismo ejecutable sin precarga y, si hace falta, con el objeto verificado. Acepta solo sin aviso, con carga y función previstas y sin cambios colaterales.

Diagrama que separa fallos de ruta, ELF, mapeo y ejecución segura de LD_PRELOAD
Ilustración: sigue la evidencia y cambia solo la capa que rechazó el objeto. Watch at Ease