abraxaslabs.tech · github.com/abraxas · @abraxas_null · CVE-2026-61628
nginx-ignition 2.41.0 — lucasdillmann
nginx ignition 是 nginx Web 服务器的用户界面。在 2.41.1 版本之前,POST /api/users/onboarding/finish 被注册为匿名(未认证)接口,并会创建一个拥有完整 ReadWrite 管理员权限的用户。由于该处理程序在“引导流程已完成”检查与用户创建写入之间使用了先检查后执行(TOCTOU)模式,且没有原子性保护,能够访问处于引导前状态实例的远程未认证攻击者可以为自己创建一个管理员账户,并且并发请求可以在单次竞态中创建多个管理员账户。2.41.1 版本修复了该问题。
| 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 |
| Product | nginx-ignition |
| Affected | 所有版本 至 2.41.0(含) |
| Patched | 2.41.1 及更高版本 |
| Auth | 未认证(见 source map) |
| License | GNU Affero GPL v3.0 |
| Lab | 仅限 127.0.0.1 · 供应商/客户披露包,不是扫描器 |
api/user/onboarding_finish_handler.go 先检查后执行。api/user/routes.go 中路由 AllowAnonymous。补丁 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_WRITE未认证的 200 响应并带有 JWT;/api/users/current Users=READ_WRITE。竞态:n200>=2 个不同的管理员用户名。
首先执行此操作: 将 nginx-ignition 更新到 2.41.1 或更新版本。
升级后验证
CVE-2026-61628-Abraxas-Labs.py:映射的见证必须不出现。如果无法立即更新
目标仅限 http://127.0.0.1:8088(或你绑定的回环地址)。不要将此脚本指向互联网。
python3 CVE-2026-61628-Abraxas-Labs.py
成功即响应体中出现上述见证。通用的 200 HTML 不是。
用于复现的回环栈。除非此文件夹中的 Dockerfile 从源码构建,否则使用官方镜像。
cd lab
docker compose up --force-recreate
如果 YAML 挂载了本地目录(来自版本表的插件 zip / 源码标签),请将存在漏洞的产品目录树绑定到 Compose 旁边。除 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.
本披露包依据 GNU Affero General Public License v3.0 许可。见 LICENSE。
本包仅供供应商、站点所有者及授权实验环境使用。该脚本仅与 127.0.0.1 通信。将其用于你并不拥有的系统,不获 Abraxas Labs 授权。不提供任何担保。