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.

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.
