
दुर्भावनापूर्ण Apache Parquet फ़ाइलें उत्पन्न करता है जो CVE-2025-30065 RCE भेद्यता का SSRF कॉलबैक के माध्यम से परीक्षण करती हैं। Parquet-avro प्रसंस्करण प्रणालियों के अधिकृत सुरक्षा परीक्षण के लिए डिज़ाइन किया गया।
(`-. ('-.
_(OO )_ _( OO)
.-----,--(_/ ,. (,------. .-----. .----. .-----..------. .-----. .----. .----. ,--. .------.
' .--.\ \ /(__/| .---' .-')/ ,-. \/ .. \/ ,-. | ___| .-') / -. \/ .. \ / .. \ / .' | ___|
| |('-.\ \ / / | | _( OO'-' | . / \ '-' | | '--. _( OO)'-' _' . / \ . / \ . / -. | '--.
/_) |OO )\ ' /,(| '--(,------. .' /| | ' | .' /`---. '(,------. |_ <| | ' | | ' | .-. '`---. '.
|| |`-'| \ /__)| .--''------.' /__' \ / '.' /__.- | |'------.-. | ' \ / ' \ / ' \ | .- | |
(_' '--'\ \ / | `---. | |\ `' /| | `-' / \ `-' /\ `' / \ `' /\ `' /| `-' /
`-----' `-' `------' `-------' `---'' `-------'`----'' `----'' `---'' `---'' `----' `----''
Canary Exploit Generator - https://github.com/F5-Labs/parquet-canary-exploit-rce-poc-CVE-2025-30065
सबसे बुनियादी (README निर्देशों को अपने जोखिम पर छोड़ें):
mkdir -p build/libs
curl -o build/libs/parquet_canary_exploit-fat.jar \
-L https://github.com/F5-Labs/parquet-canary-exploit-rce-poc-CVE-2025-30065/blob/main/build/libs/parquet_canary_exploit-fat.jar
java -jar build/libs/parquet_canary_exploit-fat.jar --mode=generate YOUR_CALLBACK_URL
अनुपालन वाले लोग? ऐपसेक वाले लोग? वल्न मैनेजमेंट वाले लोग? F5 Labs ने यह आपके लिए बनाया है। इस CVE का CVSS 10 स्कोर है, जिसका आमतौर पर अर्थ है कि त्वरित समय-सीमा की आवश्यकता है। हमने टूल को एक jar फ़ाइल के रूप में बंडल किया है जो आपके लिए एक पैराकेट फ़ाइल उत्पन्न कर सकता है। आप इसे अपने सिस्टम को फीड कर सकते हैं ताकि यह निर्धारित कर सकें कि यह असुरक्षित है या नहीं - जो फिक्स से पहले और बाद में दोनों ही मददगार है।
इस PoC के आंतरिक भागों का श्रेय मौआद कोंडाह को जाता है। उनका दिनांकित लेख 2025-04-07 इस CVE और उनके PoCs पर चर्चा करता है।
पैराकेट फ़ाइल parquet-avro में उस व्यवहार का दुरुपयोग करती है जो किसी अविश्वसनीय Java String को किसी मनमाने Java क्लास कंस्ट्रक्टर में पास करने की अनुमति देता है। आप कॉलबैक URL प्रदान करते हैं, और जब आपका सिस्टम पैराकेट फ़ाइल पढ़ता है तो इसके परिणामस्वरूप एक javax.swing.JEditorPane ऑब्जेक्ट उस URL तक पहुंचने का प्रयास करता है। यह सौम्य है।
कैनरी एक्सप्लॉइट टूल का त्वरित पुनरावृत्ति चाहते हैं? लाइव डेमो के लिए यह दो मिनट का YouTube शॉर्ट देखें: [demo video].
ध्यान दें कि F5 Labs को parquet-avro मॉड्यूल के लिए असुरक्षितता के दो परिदृश्यों की जानकारी है:
String ऑब्जेक्ट्स को वैकल्पिक प्रकारों में बाध्य करने के लिए पैकेजों की अनुमति-सूची बनाने की कोई अवधारणा नहीं थी।org.apache.parquet.avro.SERIALIZABLE_PACKAGES को कुछ अनुमोदक जैसे * पर सेट किया गया हो।आप इसका उपयोग किसी भी चीज़ के साथ कर सकते हैं जिससे आपका सिस्टम बाहर निकल सकता है (DNS और/या HTTP(S))। यदि आपके पास इंटरनेट की ओर किसी भी प्रकार का बहिर्गमन नहीं है, तो अपने डेटा सेंटर के भीतर पहुंच योग्य किसी भी चीज़ पर विचार करें जिसके लिए आप DNS या HTTP एक्सेस लॉग प्राप्त कर सकते हैं। सावधान रहें कि इसे गलत करने का अर्थ गलत नकारात्मक होगा। org.apache.parquet.avro.SERIALIZABLE_PACKAGES के लिए अत्यधिक अनियमित सेटिंग्स भी गलत नकारात्मक का कारण बन सकती हैं, पिछला उपखंड देखें।
आपको कोड पढ़ने, समझने और स्वयं इसे बनाने के लिए प्रोत्साहित किया जाता है। हम आपकी सुविधा के लिए इस रिपॉजिटरी के भीतर कोड का वितरण बिल्ड एक jar के रूप में प्रदान करते हैं।
जनरेटर को बनाने या चलाने के लिए आपको JDK 21 या बाद का संस्करण चाहिए (यहां "OpenJDK21 install" जैसे खोज शब्द मदद कर सकते हैं)। यदि आप JDK स्थापित करने से परिचित हैं, तो ये शॉर्टकट हैं:
brew install openjdk@21sudo apt install openjdk-21-jdksudo yum install java-21-openjdkआप या तो jar डाउनलोड कर सकते हैं, या रिपो को क्लोन कर सकते हैं।
mkdir -p build/libs
curl -o build/libs/parquet_canary_exploit-fat.jar \
-L https://github.com/F5-Labs/parquet-canary-exploit-rce-poc-CVE-2025-30065/blob/main/build/libs/parquet_canary_exploit-fat.jar
git clone https://github.com/F5-Labs/parquet-canary-exploit-rce-poc-CVE-2025-30065.git
cd parquet-canary-exploit-rce-poc-CVE-2025-30065
file build/libs/parquet_canary_exploit-fat.jar
shasum build/libs/parquet_canary_exploit-fat.jar
अपेक्षित आउटपुट:
build/libs/parquet_canary_exploit-fat.jar: Zip archive data, at least v1.0 to extract, compression method=deflate
19ae361d589a9cd476bee31ba3f437094a8a6440 build/libs/parquet_canary_exploit-fat.jar
java -jar build/libs/parquet_canary_exploit-fat.jar -h
अपेक्षित आउटपुट:

पहले, निर्धारित करें कि आप YOUR_CALLBACK_URL क्या चाहते हैं। आपको यह पता लगाने में सक्षम होना चाहिए कि आपका पैराकेट-प्रसंस्करण बैकएंड या तो URL के डोमेन नाम को हल करता है या वेब सर्वर से URL का अनुरोध करता है। आप इसके लिए canarytokens.org के "Web bug" या "DNS" पर विचार कर सकते हैं। विवरण के लिए ऊपर सावधानियाँ अनुभाग देखें।
यह कमांड चलाएँ:
java -jar build/libs/parquet_canary_exploit-fat.jar --mode=generate YOUR_CALLBACK_URL
यह poc.parquet उत्पन्न करेगा। इस प्रकार सत्यापित करें:
file poc.parquet
यह आउटपुट होना चाहिए:
poc.parquet: Apache Parquet
यह फ़ाइल अब आपके सिस्टम में फीड की जा सकती है। यदि आपका सिस्टम असुरक्षित है, तो आपको एक कॉलबैक प्राप्त होगा। सावधानियाँ अनुभाग भी देखें।
सुविधा के लिए यह फ़ाइल उत्पन्न भी करेगा यदि वह पहले से मौजूद नहीं है।
java -jar build/libs/parquet_canary_exploit-fat.jar --mode=test YOUR_CALLBACK_URL
python3 -m http.server --bind 127.0.0.1 9090 &
java -jar build/libs/parquet_canary_exploit-fat.jar --mode=test http://localhost:9090
देखें CanaryExploitGenerator.testParquetFile() कि पैराकेट फ़ाइल कैसे पढ़ी जाती है। आपके सिस्टम की गहराई में कोड कुछ इस प्रकार दिखेगा:
ParquetReader reader = AvroParquetReader.builder(inputFile).build();
// enough to trigger the construction of javax.swing.JEditorPane
Object object = reader.read();
यह उपकरण केवल अधिकृत सुरक्षा परीक्षण सेटिंग्स में उपयोग के लिए है। लागू क्षेत्राधिकार(क्षेत्रों) के कानूनों को जानें। कानूनी विवरण के लिए LICENSE.md देखें।