Skip to content
KitploitKITPLOIT
उपकरणएक्सप्लॉइटब्लॉग
Log in
जमा करें
उपकरणएक्सप्लॉइटब्लॉग
जमा करें

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
qemu-colo-l4-oob — QEMU 11.1.2 - उच्च - स्थानीय/रिमोट - OOB - COLO filter-rewriter लघु IPv4 L4 हीप ओवरफ़्लो | Kitploit
उपकरण/GitHubGitHub/abraxas/qemu-colo-l4-oob
मेमोरी फोरेंसिकभेद्यता विश्लेषणशोषणफज़िंगपेपर और शोधबाइनरी शोषण
GitHubabraxas/qemu-colo-l4-oob

qemu-colo-l4-oob

QEMU 11.1.2 - उच्च - स्थानीय/रिमोट - OOB - COLO filter-rewriter लघु IPv4 L4 हीप ओवरफ़्लो

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

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

सभी देखें →

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

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

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

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

Abraxas Labs - qemu-colo-l4-oob

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  qemu-colo-l4-oob

qemu-colo-l4-oob

QEMU v11.1.2 (4fc49f46dc95d4a27de2509e7fceb2931e91faeb) - COLO filter-rewriter

वर्ग: OOB (हीप बफ़र ओवरफ़्लो READ/WRITE)। पहुँच: स्थानीय (गेस्ट) / रिमोट (COLO पीयर)।

parse_packet_early IPv4 को तब स्वीकार करता है जब L2 के साथ ip_hl*4 फ़िट हो जाता है। यह कभी भी न्यूनतम L4 हेडर की आवश्यकता नहीं रखता। इसके बाद fill_connection_key बिना किसी शेष-लंबाई जाँच के transport_header पर चार बाइट पढ़ता है। filter-rewriter फ़्रेम को g_malloc0(size) के साथ कॉपी करता है और, SYN द्वारा कनेक्शन को TCPS_SYN_RECEIVED में ले जाने के बाद, conn->offset != 0 वाला एक ACK th_ack / th_seq को उस चंक से आगे लिखता है जब कैप्चर की गई लंबाई ट्रांसपोर्ट हेडर पर समाप्त होती है।

COLO डिफ़ॉल्ट नहीं है। यह तब चालू होता है जब -object filter-rewriter (और colo-compare) कॉन्फ़िगर किया गया हो। उस रीराइटर पर गेस्ट TX/RX वर्चुअलाइज़ेशन सुरक्षा मॉडल में है। primary_in / secondary_in पर एक COLO पीयर एक नेटवर्क प्रोटोकॉल है, जो अविश्वसनीय भी है।

filter-rewriter में ASan हीप-बफ़र-ओवरफ़्लो READ के लिए 34-बाइट का IPv4/TCP फ़्रेम पर्याप्त है।

IDअभी तक कोई CVE नहीं
CWECWE-125 / CWE-787
CVSSउच्च: 8.2 CVSS:3.1/AV:L/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:H
उत्पादQEMU
प्रभावितv11.1.2 (4fc49f46), COLO रीराइटर/कंपेयर सक्षम
प्रमाणीकरणCOLO रीराइटर नेटडेव पर गेस्ट, या एक COLO कंपेयर पीयर
लाइसेंसGNU Affero GPL v3.0
लैब127.0.0.1:18770 / 18771 लूपबैक सॉकेट

एक हमलावर क्या कर सकता है

कौन: COLO-सक्षम NIC पर अविश्वसनीय गेस्ट, या एक शत्रुतापूर्ण COLO कंपेयर पीयर। गेस्ट-से-होस्ट / पीयर-से-होस्ट। QEMU यूज़रस्पेस हीप।

अखंडता / रेकॉन (लैब-प्रमाणित)

विधिसिंकविशेषाधिकार
पूर्ण-हेडर SYN के बाद छोटा IPv4/TCP ACK (34-बाइट फ़्रेम, लंबाई ट्रांसपोर्ट हेडर पर समाप्त)filter-rewriter handle_primary_tcp_pkt / fill_connection_keyfilter-rewriter में ASan हीप-बफ़र-ओवरफ़्लो READ। पूर्ण-हेडर TCP को नियंत्रित करने पर QEMU जीवित रहता है।
वही अनुपस्थित L4 न्यूनतम सीमाparse_packet_early net/colo.c:43-98पैकेट को TCP के रूप में वर्गीकृत किया जाता है, बिना बफ़र में L4 हेडर के।

अखंडता (अनुमानित, वही अनुपस्थित सीमा)

SYN के बाद, conn->offset != 0, रीराइटर th_ack / th_seq को net/filter-rewriter.c:112-114 और :216-218 पर संग्रहीत करता है। IP विकल्प (ip_hl > 5) उस लेखन को अगले हीप चंक पर स्थानांतरित कर देते हैं। गेस्ट-ट्रिगर करने योग्य होस्ट हीप WRITE।

colo-compare fill_pkt_tcp_info header_size को th_off<<2 से सेट करता है, बिना pkt->size के विरुद्ध कोई जाँच के। payload_size अंडरफ़्लो हो जाता है। colo_compare_packet_payload दोनों पैकेट आवंटनों से दसियों किलोबाइट आगे memcmp करता है। क्रैश के साथ होस्ट हीप READ।

उपलब्धता (लैब-प्रमाणित)

रीराइटर READ पर ASan के अंतर्गत QEMU एबॉर्ट हो जाता है। ASan के बिना यह हाइपरवाइज़र प्रक्रिया में एक लाइव हीप OOB है।

निकटवर्ती सतह जो बंद रहती है

  • इस पिन पर TAP / सॉकेट / ब्रिज / l2tpv3 / स्ट्रीम / dgram लंबाई पथ सीमित दिखे (net_fill_rstate packet_len > NET_BUFSIZE को अस्वीकार करता है)।
  • हैशटेबल रीसेट पर अनबाउंड COLO कनेक्शन-टेबल लीक एलोक हार्डनिंग है, यह अवशेष नहीं।
  • कर्नेल PwnEscape / Vghost: QEMU से बाहर।
  • COLO के बिना डिफ़ॉल्ट QEMU: रीराइटर चालू नहीं है। इस अवशेष के लिए COLO कॉन्फ़िगर होना आवश्यक है।

लैब RIP नियंत्रण या गेस्ट-से-होस्ट शेल प्रदर्शित नहीं करता। वर्ग COLO-सक्षम नेटडेव पर QEMU प्रक्रिया का हीप OOB है।

मैंने इसे कैसे खोजा

मैंने net/colo.c पढ़ा, ऐसी लंबाई-सीमा की तलाश में जिसमें L4 शामिल हो। यह सीमा Ethernet प्लस VLAN प्लस vnet_hdr है। ip_hl एक छोटे टेल से लिया जाता है। इसके बाद fill_connection_key transport_header पर भरोसा करता है। filter-rewriter हमेशा struct tcp_hdr के ऑफ़सेट 13 पर th_flags लोड करता है।

गलत रास्ते: TAP लंबाई को COLO सीमा मानना (अलग पथ); ओवरफ़्लो को पहले पैकेट के रूप में भेजना (rewriter को पहले SYN चाहिए ताकि conn->offset लाइव हो); colo-compare th_off अंडरफ़्लो को प्राथमिक साक्ष्य मानना (rewriter READ पहले सक्रिय हुआ)।

लैब

cd lab
./run.sh

केवल लूपबैक सॉकेट 127.0.0.1:18770 (filter-rewriter netdev) और 18771 (colo-compare) को लक्षित करता है। Pin को github.com/qemu/QEMU टैग v11.1.2 / 4fc49f46 से क्लोन किया गया है। ASan. कॉन्फ़िगर समय पर COLO proxy सक्षम। केवल-साक्षी (Witness-only)।

SUCCESS qemu-colo-l4-oob asan=heap-buffer-overflow access=READ sink=filter-rewriter control=alive QEMU-COLO-L4-OOB-WITNESS

रीप्ले: python3 qemu-colo-l4-oob-Abraxas-Labs.py.

समाधान

parse_packet_early को IP हेडर के बाद एक पूर्ण L4 हेडर (TCP 20, UDP 8, SCTP 12, AH 8) की आवश्यकता होनी चाहिए, और जब size transport_header पर या उससे पहले समाप्त हो तो अस्वीकार करना चाहिए। fill_connection_key और रीराइटर के th_* स्टोर को शेष लंबाई की जाँच करनी चाहिए। colo-compare को payload_size की गणना से पहले उस th_off<<2 को अस्वीकार करना चाहिए जो pkt->size में फ़िट नहीं होता।

संदर्भ

  • github.com/qemu/QEMU टैग v11.1.2 कमिट 4fc49f46dc95d4a27de2509e7fceb2931e91faeb
  • parse_packet_early · filter-rewriter
  • समान पिन: qemu-xhci-complete-uaf · qemu-nvme-sgl-bar
  • श्रृंखला: QEMU 11.1.2 leftovers
  • CWE-125 · CWE-787

लाइसेंस

GNU Affero GPL v3.0. देखें LICENSE. केवल लूपबैक लैब। कोई वारंटी नहीं।

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