
OPNsense 26.7.6 - عالية - عن بُعد - بقايا صلاحيات - قفل المصنع IP
abraxaslabs.tech · github.com/abraxas · @abraxas_null · [email protected] · opnsense-lockout-factory-ip
الفئة: صلاحية متبقية الوصول: عن بُعد
نواة OPNsense 26.7.6 (a842fe48) - opnsense.org
تسجيل الدخول غير المُصادَق عبر WebGUI لا يزال يقود lockout_handler من سطر LOG_AUTH الخاص بالمصنع الذي لا يحتوي على عنوان IP للمقبس. أغلق GHSA-2v2x تقسيم CRLF وبدّل اختيار IP للقفل إلى الرمز الأخير بحيث يفوز from REMOTE_ADDR اللاحق في authgui.inc. لا يزال AuthenticationFactory::authenticate() يقوم بـ syslog() لاسم المستخدم الخام دون لاحقة عنوان. اسم مستخدم يطابق عبارة False للقفل بالإضافة إلى رمز IPv4 هو العنوان الأخير (الوحيد) على ذلك السطر. بعد 5 محاولات متباعدة افتراضية: pfctl -t sshlockout -T add و pfctl -k. الافتراضي: القفل مُفعّل، واجهة LAN الرسومية.
| المعرّف | لا يوجد CVE بعد |
| الفئة | صلاحية متبقية |
| الوصول | عن بُعد (POST تسجيل دخول WebGUI غير مُصادَق) |
| CWE | CWE-117 / CWE-863 |
| CVSS | مرتفع: 7.5 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H |
| المنتج | نواة OPNsense (Deciso B.V.) |
| المتأثر | نواة OPNsense 26.7.6 (a842fe48c21288d11a422cb944678e8eb308becf) AuthenticationFactory / lockout_handler |
| المصادقة | غير مُصادَق. ملف تعريف ارتباط CSRF + رمز من GET /. |
| الترخيص | GNU Affero GPL v3.0 |
| المختبر | 127.0.0.1 فقط |
ثبّتُّ الوسم 26.7.6. المختبر هو lockout_handler المثبّت بالإضافة إلى PATH stub pfctl، وهوية الاسترجاع 127.0.0.1:18800. هذا ليس CRLF. سجل PHP syslog واحد يبقى سطر معالج واحد. كان آخر-IP هو التقوية الصحيحة لقالب authgui والتقوية الخاطئة لقالب المصنع.
| الطريقة | المصب | الصلاحية |
|---|---|---|
اسم مستخدم LOG_AUTH غير مُصادَق للمصنع مع عبارة False للقفل بالإضافة إلى رمز IPv4 (6 أسطر متباعدة) | تثبيت lockout_handler -> stub pfctl -t sshlockout -T add و pfctl -k | السلامة (مُثبتة مختبرياً): جدول sshlockout بالإضافة إلى argv لقتل الحالة. المختبر: planted=203.0.113.77. |
| نفس الزرع، pf حي | filter.lib.inc:293-314 from <sshlockout> to (self) المنافذ 22/GUI | التوافر (مُستنتج): إسقاط TCP 22/GUI الجديد من المضيف المزروع؛ pfctl -k يهدم الحالات الموجودة من ذلك IP. |
| نفس اسم المستخدم مع IPv4 فقط (بدون عبارة False) | lockout_handler | سلبي (مُثبت مختبرياً): لا إضافة جدول. negative-ip-only=no. |
سطر authgui مع from REMOTE_ADDR اللاحق | محلل آخر-IP | سلامة IP الخاص (مُثبتة مختبرياً): يبقى الرمز الأخير في authgui 198.51.100.10. |
| جسم تسجيل الدخول الفاشل | لا شيء | استطلاع (مُثبت مختبرياً مغلق): "Wrong username or password." الموجود. لا تعداد للمستخدمين. |
مُثبت مختبرياً مقابل مُستنتج: زرع المصنع، سلبي اسم المستخدم فقط، وآخر-IP في authgui هي نجاحات مخبرية. حجب pf الحي وقتل الجلسة الحية مُستنتجان. lockout_handler المثبّت منسوخ دون تغيير؛ syslog-ng و POST WebGUI عبارة عن stubs.
يتطلب: POST تسجيل دخول WebGUI غير مُصادَق. ملف تعريف ارتباط CSRF + رمز من GET /. القفل مُفعّل (system.no_sshlockout غير مُعيَّن). تثبيت افتراضي.
| السطح | المختبر |
|---|---|
جلسة غير مُصادَقة / root / كتابة config.xml | مغلق |
| سطر authgui يزرع IP أجنبي | الرمز الأخير هو REMOTE_ADDR (authgui-last-ip=198.51.100.10) |
readline() إضافي عبر CRLF | إعادة كتابة GHSA-2v2x؛ سجل واحد يبقى سطر واحد |
| تسجيل دخول بكلمة مرور فارغة | authgui.inc يتطلب كلمة مرور غير فارغة |
| إعادة تعيين كلمة نجاح CVE-2026-44195 على سطر authgui | قواعد الفشل أولاً |
TypeError في pfctl -k str(ip) لـ Omar Habra في 26.7.6 | موجود بالفعل على هذا التثبيت |
| IP مزروع كوجهة DNS/بوابة | القواعد هي from <sshlockout> to (self) المنافذ 22/GUI فقط |
لا تخطي لتسجيل الدخول. لا RCE. لا إعادة كتابة لـ config.xml. لا ينشئ جلسة.
cd lab
./run.sh
الاسترجاع 127.0.0.1:18800. مشروع Compose opnsense-lockout-factory-ip. وسم الصورة opnsense-lockout-factory-ip:26.7.6. الشاهد OPNSENSE-LOCKOUT-FACTORY-IP-WITNESS. السطر الأخير:
SUCCESS opnsense-lockout-factory-ip planted=203.0.113.77 table=sshlockout negative-ip-only=no authgui-last-ip=198.51.100.10 OPNSENSE-LOCKOUT-FACTORY-IP-WITNESS
ألحق عنوان IP للمقبس بقالب syslog(LOG_AUTH) الخاص بالمصنع، بنفس from REMOTE_ADDR اللاحق كما في authgui.inc. أو تجاهل عناوين IP للقفل التي لم تأتِ من نظير المعالج نفسه. لا تعامل الرمز الأخير كبديل عن "عنوان العميل".
a842fe48c21288d11a422cb944678e8eb308becfAuthenticationFactory.phplockout_handler