
pfSense CE 2.9.0-DEVELOPMENT - उच्च - रिमोट - RCE - PPPoE ptpid crontab
abraxaslabs.tech · github.com/abraxas · @abraxas_null · [email protected] · pfsense-pppoe-cron
वर्ग: RCE पहुँच: रिमोट
pfSense CE 2.9.0-DEVELOPMENT (9363ac5) - pfsense.org
handle_pppoe_reset, is_numericint के बिना छिपे ptpid का उपयोग करता है। कस्टम hour/minute सत्यापन AND है जहाँ OR की आवश्यकता थी। configure_cron फ़ील्ड्स को कच्चा लिखता है। SA-26_06 का सहोदर, proxyuser नहीं।
| ID | अभी तक कोई CVE नहीं |
| वर्ग | RCE |
| पहुँच | रिमोट (प्रमाणित WebGUI जब तक अन्यथा न कहा गया हो) |
| CWE | CWE-78 |
| CVSS | उच्च: 8.8 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H |
| उत्पाद | pfSense CE |
| प्रभावित | 2.9.0-DEVELOPMENT (9363ac5b8651a1c7a333180425ce7719070f95f9) |
| प्रमाणीकरण | page-interfaces-ppps-edit के साथ WebGUI सत्र |
| लाइसेंस | GNU Affero GPL v3.0 |
| लैब | केवल 127.0.0.1 |
मैंने सार्वजनिक master 9363ac5 को पिन किया। लैब पिन किए गए sink का एक PHP gadget है, 127.0.0.1:18970 पर लूपबैक HTTP।
श्रृंखला लेख: https://abraxaslabs.tech/research/pfsense-ce-leftovers
| विधि | Sink | विशेषाधिकार |
|---|---|---|
| POST interfaces_ppps_edit.php ptpid / pppoe_resethour | handle_pppoe_reset फिर configure_cron कच्चे फ़ील्ड्स | अखंडता: लैब-प्रमाणित: ptpid में newline ने एक अतिरिक्त root crontab पंक्ति जोड़ी; stub cron ने इसे निष्पादित किया। |
| वही अवशेष | वही sink | पुनरावलोकन: अनुमानित: root के रूप में अतिरिक्त cron। |
| वही अवशेष | वही sink | उपलब्धता: अनुमानित: अतिरिक्त आवधिक कमांड। |
आवश्यक: page-interfaces-ppps-edit। POST पर CSRF-magic जब तक अन्यथा न कहा गया हो। WebGUI PHP-FPM root है।
आवश्यक: page-interfaces-ppps-edit। POST पर CSRF-magic जब तक अन्यथा न कहा गया हो। WebGUI PHP-FPM root है। POST पर CSRF-magic जब तक अन्यथा न कहा गया हो। WebGUI PHP-FPM root है।
SA-26_06 System Proxy crontab है। #16128 PPP client sanitize है।
कोई Diagnostics: Command नहीं जब तक वह पृष्ठ भी प्रदान न किया गया हो।
cd lab
./run.sh
लूपबैक 127.0.0.1:18970। Compose प्रोजेक्ट pfsense-pppoe-cron। Witness PFSENSE-PPPOE-CRON-WITNESS। केवल लूपबैक: 127.0.0.1:18970। Compose प्रोजेक्ट pfsense-pppoe-cron। Witness PFSENSE-PPPOE-CRON-WITNESS। पिन की गई पंक्तियों का PHP gadget। रन के बाद स्टैक टूट जाता है।
अंतिम पंक्ति:
SUCCESS PFSENSE-PPPOE-CRON control-one-line=yes trigger-extra-root-line=yes stub-cron-ran-extra=yes PFSENSE-PPPOE-CRON-WITNESS
is_numericint ptpid। hour/minute में CR/LF अस्वीकार करें। crontab फ़ील्ड्स को उद्धृत करें।
9363ac5b8651a1c7a333180425ce7719070f95f9