
Pacote de prova de conceito e divulgação para CVE-2026-61628, uma escalada de privilégios TOCTOU não autenticada no nginx-ignition 2.41.0 que permite a criação de contas de administrador.
abraxaslabs.tech · github.com/abraxas · @abraxas_null · CVE-2026-61628
nginx-ignition 2.41.0 — lucasdillmann
nginx ignition é uma interface de usuário para o servidor web nginx. Antes da versão 2.41.1, POST /api/users/onboarding/finish é registrado como anônimo (não autenticado) e cria um usuário com permissões de administrador ReadWrite completas. Como o handler usa um padrão check-then-act (TOCTOU) entre a verificação de onboarding já concluído e a gravação de criação do usuário, sem proteção atômica, um atacante remoto não autenticado que consiga alcançar uma instância em seu estado pré-onboarding pode criar uma conta de administrador para si mesmo, e requisições concorrentes podem criar múltiplas contas de administrador em uma única corrida. A versão 2.41.1 corrige o problema.
| CVE | CVE-2026-61628 · CVE.org |
| CWE | CWE-362 |
| CVSS | Alto: 8.1 CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H |
| Produto | nginx-ignition |
| Afetado | todas as versões até 2.41.0 (inclusive) |
| Corrigido | 2.41.1 e posteriores |
| Autenticação | não autenticado (ver mapa do código-fonte) |
| Licença | GNU Affero GPL v3.0 |
| Lab | apenas 127.0.0.1 · pacote de divulgação para fornecedor/cliente, não é um scanner |
api/user/onboarding_finish_handler.go check-then-act. Rota AllowAnonymous em api/user/routes.go. Patch 2.41.1 FinishOnboarding.
POST/api/users/onboarding/finishGET /api/users/onboarding/status finished=falseconcurrent POST /api/users/onboarding/finish JSON name/username/passwordOnboardingCompleted check then Save without lock200 JSON token JWT; GET /api/users/current Users=READ_WRITE200 não autenticado com JWT; /api/users/current Users=READ_WRITE. Corrida: n200>=2 nomes de usuário admin distintos.
Faça isto primeiro: Atualize o nginx-ignition para 2.41.1 ou mais recente.
Verifique após a atualização
CVE-2026-61628-Abraxas-Labs.py contra a build corrigida: o testemunho mapeado não deve aparecer.Se você não puder atualizar imediatamente
Alvo apenas http://127.0.0.1:8088 (ou o loopback que você vinculou). Não aponte este script para a internet.
python3 CVE-2026-61628-Abraxas-Labs.py
Sucesso é o testemunho acima no corpo da resposta. Um 200 HTML genérico não é isso.
Stack de loopback usada para reproduzir. Imagens oficiais, a menos que um Dockerfile nesta pasta faça build a partir do código-fonte.
cd lab
docker compose up --force-recreate
Vincule a árvore do produto vulnerável ao lado do Compose se o YAML montar um diretório local (zip do plugin / tag do código-fonte da tabela de versões). Não publique nada exceto 127.0.0.1.
github.com/lucasdillmann/nginx-ignition/security/advisories/GHSA-pxcx-fv34-x9p5
github.com/lucasdillmann/nginx-ignition/commit/0586b4e55ab780676d3553a2592979dfa2fb0183
Abraxas Labs: abraxaslabs.tech · github.com/abraxas · @abraxas_null
# CVE-2026-61628
CWE: CWE-362
CVSS: High 8.1 CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
## NVD description
nginx ignition is a user interface for the nginx web server. Prior to version 2.41.1, POST /api/users/onboarding/finish is registered as anonymous (unauthenticated) and creates a user with full ReadWrite admin permissions. Because the handler uses a check-then-act (TOCTOU) pattern between the onboarding already completed check and the user-creation write, with no atomic guard, a remote unauthenticated attacker who can reach an instance in its pre-onboarding state can create an administrator account for themselves, and concurrent requests can create multiple admin accounts in a single race. Version 2.41.1 patches the issue.
## Product
nginx-ignition 2.41.0 (fixed in 2.41.1). Not RCE.
Este pacote de divulgação é licenciado sob a GNU Affero General Public License v3.0. Ver LICENSE.
Este pacote é para o fornecedor, o proprietário do site e labs licenciados. O script se comunica com 127.0.0.1. Usá-lo contra sistemas que você não possui não é autorizado pela Abraxas Labs. Sem garantias.