
حزمة إثبات المفهوم والإفصاح عن CVE-2026-61628، وهو تصعيد صلاحيات TOCTOU غير مُصادَق عليه في nginx-ignition 2.41.0 يسمح بإنشاء حساب مسؤول.
abraxaslabs.tech · github.com/abraxas · @abraxas_null · CVE-2026-61628
nginx-ignition 2.41.0 — lucasdillmann
nginx ignition هي واجهة مستخدم لخادم الويب nginx. قبل الإصدار 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 | غير مُصادَق عليه (انظر خريطة المصدر) |
| License | GNU Affero GPL v3.0 |
| Lab | 127.0.0.1 فقط · حزمة إفصاح للمورّد/العميل، وليست ماسحًا ضوئيًا |
api/user/onboarding_finish_handler.go check-then-act. Route AllowAnonymous في 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_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 (أو عنوان loopback الذي ربطته). لا توجّه هذا السكربت إلى الإنترنت.
python3 CVE-2026-61628-Abraxas-Labs.py
النجاح هو الدليل المذكور أعلاه في جسم الاستجابة. استجابة HTML عامة بحالة 200 ليست هي.
حزمة loopback المستخدمة لإعادة الإنتاج. صور رسمية ما لم يكن هناك Dockerfile في هذا المجلد يبني من المصدر.
cd lab
docker compose up --force-recreate
اربط شجرة المنتج القابلة للاستغلال بجانب Compose إذا كان ملف YAML يربط دليلًا محليًا (plugin zip / source tag من جدول الإصدارات). لا تنشر شيئًا عدا 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. لا ضمان.