Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2026-17544 — CVE-2026-17544 के लिए एक्सप्लॉइट: PHP bcmath OOB लेखन को केवल-मेमोरी RCE में परिवर्तित करके, रनटाइम ऑफ़सेट-मुक्त रिज़ॉल्वर के साथ disable_functions और open_basedir को बायपास करता है। | Kitploit
उपकरण/GitHubGitHub/r2qa/cve-2026-17544
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणपोस्ट-शोषणरेड टीमिंगपेलोड डेवलपमेंटबाइनरी शोषण
GitHubr2qa/cve-2026-17544

CVE-2026-17544

CVE-2026-17544 के लिए एक्सप्लॉइट: PHP bcmath OOB लेखन को केवल-मेमोरी RCE में परिवर्तित करके, रनटाइम ऑफ़सेट-मुक्त रिज़ॉल्वर के साथ disable_functions और open_basedir को बायपास करता है।

रिपॉजिटरी देखें
4 दिन पहलेअभी तक समीक्षित नहीं

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

CVE-2026-17544 — PHP bcmath OOB write → सार्वभौमिक मेमोरी-ओनली RCE

CVE-2026-17544 के लिए एक हथियारबंद proof-of-concept, जो PHP के rewritten bcmath एक्सटेंशन (bc_str2num) में out-of-bounds write है। यह सार्वजनिक रूप से ज्ञात DoS-only क्रैश को एक पूर्ण, सार्वभौमिक, मेमोरी-ओनली remote code execution प्रिमिटिव में बदल देता है, जो disable_functions और open_basedir दोनों को एक साथ बायपास करता है।

केवल अधिकृत शोध / शैक्षिक उपयोग। इसे केवल उन्हीं सिस्टम पर चलाएँ जिनके आप मालिक हैं या जिन्हें परीक्षण करने के लिए आप स्पष्ट रूप से अधिकृत हैं।

छवि

TL;DR

  • बग: bc_str2num मैनुअल scale पर भिन्नात्मक भाग को truncate करता है, trailing zeros को फिर से trim करता है, लेकिन को अपडेट नहीं करता। बफर re-trimmed लंबाई के लिए साइज़ किया जाता है जबकि copy pre-trim लंबाई का उपयोग करती है → Zend MM heap में नियंत्रित ।
fractional_end
out-of-bounds zero-write
  • एक्सप्लॉइट: OOB zero-write पड़ोसी zend_string के refcount को शून्य कर देता है (लंबाई preserved रहती है) → refcount-desync use-after-free → giant-string सापेक्ष R/W → fault-safe absolute arbitrary read → runtime symbol resolution → एक पूर्णतः data-only native function call।
  • पेलोड: एक fake zend_class_entry + inline function_table + fake zend_function{ handler = zif_shell_exec } बनाता है, फिर इसे एक method के रूप में कॉल करता है। कमांड का आउटपुट एक string के रूप में लौटाया जाता है और response/stdout में भेजा जाता है।
  • कोई hardcoded offsets नहीं। Base address, .data, और target symbol — सभी runtime पर memory स्कैन करके resolve किए जाते हैं — इसलिए एक ही फ़ाइल विभिन्न builds और distributions पर काम करती है।

  • Threat model — पहले यह पढ़ें

    यह एक sandbox-escape / post-exploitation प्रिमिटिव है, न कि remote-input-only RCE।

    परिदृश्यपरिणाम
    हमलावर पहले से PHP execute कर सकता है (webshell, deserialization, eval sink) लेकिन disable_functions + open_basedir द्वारा प्रतिबंधित है✅ Native RCE (यह PoC)
    Application केवल raw user input पर bcmath फ़ंक्शन कॉल करती है, जैसे bccomp($_POST['v'])❌ केवल DoS / crash

    हमलावर के इनपुट पर एक single bcmath कॉल बिना किसी feedback के एक blind OOB zero-write देता है। पूर्ण RCE के लिए heap को groom करने, R/W प्रिमिटिव बनाने, और resolver चलाने हेतु arbitrary PHP execution आवश्यक है — इनमें से कोई भी function argument के रूप में व्यक्त नहीं किया जा सकता। इसलिए input-only exposure के लिए यथार्थवादी सीमा एक remote denial of service है; code execution के लिए एक मौजूदा PHP-execution context आवश्यक है, जिसे यह PoC फिर sandbox से मुक्त कर देता है।


    प्रभावित संस्करण

    यह बग केवल rewritten bcmath (PHP 8.4 / 8.5 लाइन) में मौजूद है:

    PHP branchअसुरक्षित
    7.x, 8.0 – 8.3नहीं (पुराना libbcmath, अलग bc_str2num)
    8.4.0 – 8.4.23हाँ
    8.5.0 – 8.5.8हाँ
    ≥ 8.4.24 / ≥ 8.5.9पैच किया गया

    PHP 8.4.23 और PHP 8.5.8, amd64 पर, समान अपरिवर्तित फ़ाइल के साथ end-to-end सत्यापित (uid=0, आउटपुट कैप्चर किया गया) — Zend struct layout 8.4 / 8.5 में समान है।


    आवश्यकताएँ / मान्यताएँ

    • Linux amd64।
    • bcmath सक्षम के साथ vulnerable range में एक PHP 8.4/8.5 बाइनरी।
    • Contiguous binary mapping (हर standard distribution / production build)। Runtime base scan .text से ELF header तक page-by-page नीचे चलता है; यह किसी भी contiguously-mapped बाइनरी पर सुरक्षित है। केवल कृत्रिम -z separate-code builds, जिनमें unmapped 2 MB gaps होते हैं, blind scan द्वारा auto-resolve नहीं किए जा सकते (production में नहीं देखा गया)।
    • Web delivery के लिए request isolation आवश्यक है ताकि per-request exit() सर्वर को न मार दे: php-fpm, Apache mod_php, या PHP_CLI_SERVER_WORKERS>0 वाला built-in server।

    उपयोग

    CLI

    root@kitploit:~
    php exploit.php "id; uname -a"
    

    वेब (post-exploitation, एक sandboxed PHP context के अंदर)

    इसे जैसे कि shell.php के रूप में deploy करें, फिर:

    root@kitploit:~
    GET  /shell.php?cmd=id
    POST cmd=id
    

    कमांड आउटपुट zif_shell_exec के माध्यम से कैप्चर किया जाता है और response body में लिखा जाता है।


    यह कैसे काम करता है (विस्तृत)

    1. Trigger + groom. Fixed-size strings spray करें, एक hole बनाएँ, और vulnerable bccomp() चलाएँ ताकि OOB zero-write केवल पड़ोसी zend_string के refcount पर पड़े (लंबाई preserved रहे)।
    2. Refcount-desync UAF. Victim string समय से पहले free कर दी जाती है जबकि एक reference अभी भी dangling रहता है।
    3. Giant string. Freed slot को एक object द्वारा reclaim कर लिया जाता है; dangling string का length field एक बहुत बड़ा मान बन जाता है → heap पर सापेक्ष read/write।
    4. Absolute read. एक fake zend_reference (indirection के माध्यम से) fault-safe absolute arbitrary read प्रदान करता है जो target के refcounted header को कभी स्पर्श नहीं करता।
    5. Resolve. Leaked .text pointer से: ELF magic (base) तक page-step नीचे करें, .data खोजने के लिए program headers parse करें, फिर .data में shell_exec के zend_function_entry को स्कैन करें जिसका handler .text की ओर इंगित करता है।
    6. Data-only call. एक fake zend_class_entry, एक single bucket के साथ inline function_table (सही zend_string hash, terminated collision chain), और एक fake zend_internal_function बनाएँ जिसका handler zif_shell_exec है; probe object के class pointer को corrupt करें और method invoke करें। आउटपुट लौटाया जाता है और echo किया जाता है।

    फ़ाइलें

    • exploit.php — सार्वभौमिक memory-only एक्सप्लॉइट (CLI + web)।

    श्रेय

    • मूल सार्वजनिक DoS proof-of-concept: boreas37/cve-2026-17544-poc।
    • Memory-disclosure / data-only-call तकनीकें पिछले PHP exploitation अनुसंधान से प्रेरित हैं।

    अस्वीकरण

    सुरक्षा अनुसंधान और शिक्षा के लिए प्रदान किया गया है। लेखक दुरुपयोग के लिए ज़िम्मेदार नहीं है। उन सिस्टम पर deploy न करें जिन्हें आप परीक्षण करने के लिए अधिकृत नहीं हैं।

    टूल डाउनलोड करें