
Proof-of-concept e pacchetto di divulgazione per CVE-2026-61628, un'escalation di privilegi TOCTOU non autenticata in nginx-ignition 2.41.0 che consente la creazione di account amministratore.
abraxaslabs.tech · github.com/abraxas · @abraxas_null · CVE-2026-61628
nginx-ignition 2.41.0 — lucasdillmann
nginx ignition è un'interfaccia utente per il server web nginx. Prima della versione 2.41.1, POST /api/users/onboarding/finish è registrato come anonimo (non autenticato) e crea un utente con pieni permessi di amministrazione ReadWrite. Poiché il gestore utilizza un pattern check-then-act (TOCTOU) tra il controllo di onboarding già completato e la scrittura di creazione dell'utente, senza alcuna protezione atomica, un attaccante remoto non autenticato che riesce a raggiungere un'istanza nel suo stato pre-onboarding può creare un account amministratore per sé, e richieste concorrenti possono creare più account amministratore in una singola race. La versione 2.41.1 corregge il problema.
| CVE | CVE-2026-61628 · CVE.org |
| 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 |
| Prodotto | nginx-ignition |
| Affetto | tutte le versioni fino alla 2.41.0 (inclusa) |
| Corretto | 2.41.1 e successive |
| Auth | non autenticato (vedi source map) |
| Licenza | GNU Affero GPL v3.0 |
| Lab | solo 127.0.0.1 · pacchetto di divulgazione vendor/client, non uno scanner |
api/user/onboarding_finish_handler.go check-then-act. Route AllowAnonymous in 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 non autenticato con JWT; /api/users/current Users=READ_WRITE. Race: n200>=2 nomi utente admin distinti.
Fai questo prima: Aggiorna nginx-ignition alla 2.41.1 o successiva.
Verifica dopo l'aggiornamento
CVE-2026-61628-Abraxas-Labs.py contro la build corretta: il witness mappato non deve apparire.Se non puoi aggiornare immediatamente
Target solo http://127.0.0.1:8088 (o il loopback su cui hai fatto il bind). Non puntare questo script verso internet.
python3 CVE-2026-61628-Abraxas-Labs.py
Il successo è il witness sopra nel corpo della risposta. Un generico 200 HTML non lo è.
Stack loopback usato per la riproduzione. Immagini ufficiali a meno che un Dockerfile in questa cartella non venga compilato dal sorgente.
cd lab
docker compose up --force-recreate
Collega l'albero del prodotto vulnerabile accanto a Compose se lo YAML monta una directory locale (plugin zip / tag sorgente dalla tabella delle versioni). Non pubblicare nulla tranne 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.
Questo pacchetto di divulgazione è rilasciato sotto la GNU Affero General Public License v3.0. Vedi LICENSE.
Questo pacchetto è destinato al vendor, al proprietario del sito e ai lab autorizzati. Lo script comunica con 127.0.0.1. Usarlo contro sistemi che non possiedi non è autorizzato da Abraxas Labs. Nessuna garanzia.