
pfSense CE 2.9.0-DEVELOPMENT - उच्च - रिमोट - RCE - L2TP RADIUS mpd.conf
abraxaslabs.tech · github.com/abraxas · @abraxas_null · [email protected] · pfsense-l2tp-radius-mpd
Class: RCE Reach: Remote
pfSense CE 2.9.0-DEVELOPMENT (9363ac5) - pfsense.org
vpn.inc "{$radiussecret}" को उद्धृत लेकिन अनएस्केप्ड रूप में इंटरपोलेट करता है। PPP क्लाइंट get_mpd_str() का उपयोग करता है; सर्वर नहीं करते। अतिरिक्त set iface up-script जीत जाता है। #16128 केवल क्लाइंट तक सीमित है।
| ID | अभी तक कोई CVE नहीं |
| Class | RCE |
| Reach | Remote (जब तक अन्यथा न कहा जाए, प्रमाणित WebGUI) |
| CWE | CWE-78 |
| CVSS | High: 8.8 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H |
| Product | pfSense CE |
| Affected | 2.9.0-DEVELOPMENT (9363ac5b8651a1c7a333180425ce7719070f95f9) |
| Auth | page-vpn-vpnl2tp (sibling page-services-pppoeserver-edit) के साथ WebGUI सत्र |
| License | GNU Affero GPL v3.0 |
| Lab | केवल 127.0.0.1 |
मैंने सार्वजनिक master 9363ac5 को पिन किया। लैब पिन किए गए sink का एक PHP गैजेट है, 127.0.0.1:18960 पर लूपबैक HTTP।
श्रृंखला लेख: https://abraxaslabs.tech/research/pfsense-ce-leftovers
| Method | Sink | Privilege |
|---|---|---|
| POST vpn_l2tp.php radius secret | vpn.inc set radius server ... "{$radiussecret}" | Integrity: लैब-प्रमाणित: quote-close secret ने set iface up-script जोड़ा; stub mpd last-wins ने इसे चलाया और witness लिखा। इस पथ पर get_mpd_str अनुपस्थित है। |
| वही अवशेष | वही sink | Recon: अनुमानित: up-script अगले L2TP सत्र पर root के रूप में चलता है। |
| वही अवशेष | वही sink | Availability: अनुमानित: mpd parse / VPN सेवा तोड़ें। |
आवश्यक: page-vpn-vpnl2tp (sibling page-services-pppoeserver-edit)। जब तक अन्यथा न कहा जाए, POST पर CSRF-magic। WebGUI PHP-FPM root है।
आवश्यक: page-vpn-vpnl2tp (sibling page-services-pppoeserver-edit)। जब तक अन्यथा न कहा जाए, POST पर CSRF-magic। WebGUI PHP-FPM root है। जब तक अन्यथा न कहा जाए, POST पर CSRF-magic। WebGUI PHP-FPM root है।
PPP क्लाइंट get_mpd_str इस पिन पर पहले से मौजूद है। CONTROL secret witness नहीं लिखता।
कोई Diagnostics: Command नहीं, जब तक वह पेज भी अनुदत्त न हो।
cd lab
./run.sh
लूपबैक 127.0.0.1:18960। Compose प्रोजेक्ट pfsense-l2tp-radius-mpd। Witness PFSENSE-L2TP-RADIUS-MPD-WITNESS। केवल लूपबैक: 127.0.0.1:18960। Compose प्रोजेक्ट pfsense-l2tp-radius-mpd। Witness PFSENSE-L2TP-RADIUS-MPD-WITNESS। पिन की गई पंक्तियों का PHP गैजेट। रन के बाद स्टैक टियर डाउन हो जाता है।
अंतिम पंक्ति:
SUCCESS PFSENSE-L2TP-RADIUS-MPD control-quoted-secret=1 control-extra-up-script=no control-witness=no trigger-extra-up-script=yes trigger-last-wins=yes trigger-witness=yes get_mpd_str=no PFSENSE-L2TP-RADIUS-MPD-WITNESS
L2TP और PPPoE सर्वर कॉन्फ़िगर पर RADIUS secrets को get_mpd_str से गुज़ारें।
9363ac5b8651a1c7a333180425ce7719070f95f9