Inyección en Logs
Input provisto por el usuario escrito en logs sin sanitizar, permitiendo a atacantes falsificar entradas de log, ocultar sus huellas o inyectar contenido malicioso en archivos de log.
Cómo Funciona
Si logueas input crudo del usuario, un atacante puede incluir saltos de línea para insertar entradas de log falsas. Por ejemplo, un username de `admin\n[INFO] Usuario admin cerró sesión exitosamente` hace que parezca que admin cerró sesión limpiamente en el archivo de log, ocultando un ataque real. Más peligrosamente, algunos visores de logs renderizan HTML en los logs.
// MAL: input crudo del usuario en logs
export async function POST(req: Request) {
const { username } = await req.json();
console.log(`Intento de login para usuario: ${username}`);
// username = 'alice\n[INFO] Login exitoso para: admin'
}// BIEN: sanitiza antes de loguear, usa logging estructurado
export async function POST(req: Request) {
const { username } = await req.json();
const safeUsername = username.replace(/[\r\n]/g, '_');
// Mejor: usa logging estructurado con un campo dedicado
logger.info('Intento de login', { username: safeUsername });
}Ejemplo Real
Log4Shell (CVE-2021-44228) fue esencialmente una inyección en logs que salió catastroficamente mal — la librería log4j ejecutaba código embebido en los mensajes de log. La inyección pura en logs es de menor severidad, pero Log4Shell mostró lo que es posible cuando el manejo de logs se vuelve demasiado inteligente.
Cómo Prevenirlo
- Elimina o codifica los caracteres de nueva línea (\r, \n) del input del usuario antes de loguear
- Usa logging estructurado (formato JSON) con campos dedicados en lugar de interpolación de strings
- Nunca renderices contenido crudo de logs en una UI web sin escapar
- Configura monitoreo de integridad de logs para detectar manipulaciones
Tecnologías Afectadas
Data Hogo detecta esta vulnerabilidad automáticamente.
Escanea Tu Repo GratisVulnerabilidades Relacionadas
Inyección LDAP
highInput del usuario insertado en filtros de búsqueda LDAP sin escapar, permitiendo a atacantes manipular queries de directorio, bypassear autenticación o extraer datos sensibles del directorio.
XXE — Inyección de Entidad Externa XML
highParsers XML configurados para procesar referencias a entidades externas, permitiendo a atacantes leer archivos arbitrarios del servidor o disparar SSRF con un payload XML malicioso.
Inyección de Header HTTP (Inyección CRLF)
mediumInput controlado por el usuario incluido en headers de respuesta HTTP sin sanitizar, permitiendo a atacantes inyectar headers arbitrarios o dividir la respuesta en dos respuestas HTTP separadas.
Inyección de Header de Email
mediumInput del usuario sin sanitizar usado en los campos To, From, CC o Subject del email, permitiendo a atacantes inyectar destinatarios adicionales y convertir tu servidor de email en un relay de spam.