
OPNsense 26.7.6 - उच्च - रिमोट - विशेषाधिकार शेष - फैक्ट्री लॉकआउट IP
abraxaslabs.tech · github.com/abraxas · @abraxas_null · [email protected] · opnsense-lockout-factory-ip
वर्ग: विशेषाधिकार अवशेष पहुंच: रिमोट
OPNsense core 26.7.6 (a842fe48) - opnsense.org
अनऑथ WebGUI लॉगिन अभी भी एक फैक्ट्री LOG_AUTH लाइन से lockout_handler को चलाता है जिसमें कोई सॉकेट IP नहीं होता। GHSA-2v2x ने CRLF स्प्लिट को बंद किया और लॉकआउट IP चयन को अंतिम टोकन पर स्विच किया ताकि authgui.inc का अनुगामी from REMOTE_ADDR जीत जाए। AuthenticationFactory::authenticate() अभी भी बिना किसी पता प्रत्यय के कच्चे उपयोगकर्ता नाम को syslog() करता है। एक उपयोगकर्ता नाम जो लॉकआउट False वाक्यांश और एक IPv4 टोकन से मेल खाता है, उस लाइन पर अंतिम (एकमात्र) पता होता है। डिफ़ॉल्ट 5 अंतरालित प्रयासों के बाद: pfctl -t sshlockout -T add और pfctl -k। डिफ़ॉल्ट: लॉकआउट चालू, LAN GUI।
| ID | अभी कोई CVE नहीं |
| वर्ग | विशेषाधिकार अवशेष |
| पहुंच | रिमोट (अनऑथ WebGUI लॉगिन POST) |
| 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 core (Deciso B.V.) |
| प्रभावित | OPNsense core 26.7.6 (a842fe48c21288d11a422cb944678e8eb308becf) AuthenticationFactory / lockout_handler |
| प्रमाणीकरण | अनऑथ। GET / से CSRF कुकी + टोकन। |
| लाइसेंस | GNU Affero GPL v3.0 |
| लैब | केवल 127.0.0.1 |
मैंने टैग 26.7.6 को पिन किया। लैब पिन किया गया lockout_handler है साथ में PATH स्टब pfctl, लूपबैक पहचान 127.0.0.1:18800। यह CRLF नहीं है। एक PHP syslog रिकॉर्ड एक हैंडलर लाइन बना रहता है। authgui टेम्पलेट के लिए अंतिम-IP सही हार्डनिंग थी और फैक्ट्री टेम्पलेट के लिए गलत हार्डनिंग।
| विधि | सिंक | विशेषाधिकार |
|---|---|---|
अनऑथ फैक्ट्री LOG_AUTH उपयोगकर्ता नाम जिसमें लॉकआउट False वाक्यांश और एक IPv4 टोकन हो (6 अंतरालित लाइनें) | पिन lockout_handler -> स्टब 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। |
अनुगामी from REMOTE_ADDR वाली authgui लाइन | अंतिम-IP पार्सर | स्वयं के IP की अखंडता (लैब-सिद्ध): authgui अंतिम टोकन 198.51.100.10 बना रहता है। |
| विफल-लॉगिन बॉडी | कोई नहीं | रीकॉन (लैब-सिद्ध बंद): मौजूदा "Wrong username or password." कोई उपयोगकर्ता एनम नहीं। |
लैब-सिद्ध बनाम अनुमानित: फैक्ट्री प्लांट, केवल-उपयोगकर्ता-नाम नकारात्मक, और authgui अंतिम-IP लैब सफलता हैं। लाइव pf ब्लॉकिंग और लाइव सत्र किल अनुमानित हैं। पिन lockout_handler अपरिवर्तित कॉपी किया गया; syslog-ng और WebGUI POST स्टब किए गए हैं।
आवश्यक: अनऑथ WebGUI लॉगिन POST। GET / से CSRF कुकी + टोकन। लॉकआउट चालू (system.no_sshlockout अनसेट)। डिफ़ॉल्ट इंस्टॉल।
| सतह | लैब |
|---|---|
अनऑथ सत्र / रूट / config.xml राइट | बंद |
| authgui लाइन विदेशी IP प्लांट करना | अंतिम टोकन REMOTE_ADDR है (authgui-last-ip=198.51.100.10) |
CRLF अतिरिक्त readline() | GHSA-2v2x पुनर्लेखन; एक रिकॉर्ड एक लाइन बना रहता है |
| खाली-पासवर्ड लॉगिन | authgui.inc गैर-खाली पासवर्ड की आवश्यकता होती है |
| authgui लाइन पर CVE-2026-44195 सफलता-कीवर्ड रीसेट | विफलता नियम पहले |
26.7.6 Omar Habra pfctl -k str(ip) TypeError | पहले से इस पिन पर |
| DNS/गेटवे गंतव्य के रूप में प्लांट किया गया IP | नियम केवल 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
फैक्ट्री syslog(LOG_AUTH) टेम्पलेट में सॉकेट IP जोड़ें, वही अनुगामी from REMOTE_ADDR जैसा authgui.inc में है। या उन लॉकआउट IP को अनदेखा करें जो हैंडलर के अपने पीयर से नहीं आए। अंतिम-टोकन को "क्लाइंट पता" के विकल्प के रूप में न मानें।
a842fe48c21288d11a422cb944678e8eb308becfAuthenticationFactory.phplockout_handler