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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
vbox-ovf-href-dest-escape — VirtualBox 7.2.20 - उच्च - स्थानीय - फ़ाइल लेखन - OVF href dest escape | Kitploit
उपकरण/GitHubGitHub/abraxas/vbox-ovf-href-dest-escape
विशेषाधिकार वृद्धिभेद्यता विश्लेषणकोड विश्लेषणशोषणसुरक्षा वर्चुअलाइजेशनपेपर और शोधलैब और अभ्यास
GitHubabraxas/vbox-ovf-href-dest-escape

vbox-ovf-href-dest-escape

VirtualBox 7.2.20 - उच्च - स्थानीय - फ़ाइल लेखन - OVF href dest escape

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

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

सभी देखें →

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

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

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

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

Abraxas Labs - vbox-ovf-href-dest-escape

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  vbox-ovf-href-dest-escape

vbox-ovf-href-dest-escape

वर्ग: फ़ाइल लेखन पहुँच: स्थानीय (होस्ट) UI:R

Oracle VM VirtualBox OSS 7.2.20 (f2792cf44) - Oracle

एक होस्ट उपयोगकर्ता जो किसी शत्रुतापूर्ण OVF/OVA को आयात करता है, नए VM फ़ोल्डर के बाहर डिस्क-इमेज बाइट्स लिखता है। ovf:href गंतव्य फ़ाइल नाम है। RTPathAbsExCxx RTPATHABS_F_STOP_AT_BASE को नहीं लेता है। अद्वितीय-पथ सहायक प्रत्यय से पहले _%i डालता है और बेसनेम-स्ट्रिप नहीं करता है।

IDअभी तक कोई CVE नहीं
वर्गफ़ाइल लेखन (OVF/OVA गंतव्य पथ)
पहुँचस्थानीय (होस्ट) UI:R (पीड़ित एक शत्रुतापूर्ण एप्लायंस आयात करता है)
CWECWE-22
CVSSउच्च: 7.8 CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N
उत्पादOracle VM VirtualBox OSS
प्रभावित7.2.20 (f2792cf44f663989818507e36d3db5f978523c5e)
प्रमाणीकरणVirtualBox पर कोई नहीं। होस्ट उपयोगकर्ता File/Import या VBoxManage import खोलता है।
लाइसेंसGNU Affero GPL v3.0
लैबकेवल 127.0.0.1। स्रोत हार्नेस। VirtualBox बूट नहीं किया गया है।

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

एक OVF निर्देशिका या एक OVA भेजें। ovf:href में ../somewhere/disk.vmdk या एक निरपेक्ष /path/disk.iso डालें। जो ऑपरेटर इसे आयात करता है, वह आयातकर्ता UID के रूप में उन डिस्क-इमेज बाइट्स को CREATE_REPLACE-लिखता है, जिसमें वे मूल निर्देशिकाएँ भी शामिल हैं जो मौजूद नहीं थीं। प्रत्यय आवश्यक है (vmdk / iso / अन्य MediumFormat एक्सटेंशन)। यह authorized_keys की प्रत्यय-रहित ड्रॉप नहीं है।

विशेषाधिकारविधि + सिंकयह क्या प्रदान करता हैउत्पत्ति
अखंडताIAppliance::read File/href को बिना बेसनेम स्ट्रिप के कॉपी करता है (ovfreader.cpp)। Appliance::interpret() dest = di.strHref सेट करता है (ApplianceImplImport.cpp 802-851)।गंतव्य फ़ाइल नाम हमलावर द्वारा चुना गया है, जिसमें ../ और निरपेक्ष पथ शामिल हैं।लैब-प्रमाणित (सापेक्ष और निरपेक्ष hrefs)
अखंडताi_ensureUniqueImageFilePath (ApplianceImpl.cpp 1126-1160) RTPathAbsExCxx(strAbsName, aMachineFolder, aName) को बिना RTPATHABS_F_STOP_AT_BASE के कॉल करता है। टकराव aName के प्रत्यय से पहले _%i डालता है, न कि बेसनेम।अद्वितीय गंतव्य अभी भी मशीन फ़ोल्डर से बाहर चला जाता है। ../oracle/WITNESS.vmdk बन जाता है ../oracle/WITNESS_1.vmdk।लैब-प्रमाणित (unique-keeps-dotdot=yes)
अखंडताआयात i_importOneDiskImage AbsEx फिर से (ApplianceImplImport.cpp 4169-4171)। i_importCreateAndWriteDestinationFile (1043-1053) mkdir-parents फिर RTFILE_O_CREATE_REPLACE।डिस्क-इमेज बाइट्स VM फ़ोल्डर के बाहर गिरती हैं। निरपेक्ष href मशीन फ़ोल्डर को अनदेखा करता है। नियंत्रण disk.vmdk फ़ोल्डर के अंदर रहता है।लैब-प्रमाणित (relative-escape=yes absolute-href=yes control-in-folder=yes)
टोहआयात विज़ार्ड / VBoxManage import --dry-run गंतव्य दिखाता है।पथ दृश्यमान है। अपने आप में कोई गुप्त लीक नहीं।अनुमानित
उपलब्धतासापेक्ष गंतव्य जो किसी अन्य VM की डिस्क पर गिरता है।आयातकर्ता UID के रूप में उस फ़ाइल को अधिलेखित करें।अनुमानित (वही CREATE_REPLACE लेखन)
बंदMediumFormat प्रत्यय के बिना गंतव्यआयात has no extension फेंकता है। प्रत्यय-रहित authorized_keys / crontab लेखन नहीं।बंद
बंदNVRAM गंतव्यमशीन फ़ोल्डर के अंतर्गत {vmname}.nvram पर मजबूर।बंद
बंदVM नाम ..sanitiseMachineFilename इसे विकृत कर देता है।बंद
बंदसाझा फ़ोल्डर / ExtraData / सीरियल RawFilevbox:Machine पथ पर सैनिटाइज़ किया गया।बंद
बंदहोस्ट कर्नेल, गेस्ट-टू-होस्टयह अवशेष नहीं। कोई VM स्टार्ट आवश्यक नहीं। आयातकर्ता के समान UID।बंद

OVA साफ़ रास्ता है: tar सदस्य बाइट्स देता है, href एस्केप किया गया गंतव्य देता है। कोई 3D नहीं, कोई Guest Additions नहीं, कोई VRDP नहीं, PUEL नहीं।

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

मैंने सितंबर 2026 CPU के बाद टैग v7.2.20 (f2792cf44) पर बैठकर OVF आयात पढ़ा। ExtraData, साझा फ़ोल्डर, NVRAM गंतव्य, और सीरियल RawFile पहले से ही हटा दिए गए हैं। डिस्क गंतव्य नहीं है। interpret() di.strHref को सीधे HardDiskImage VBox मान में कॉपी करता है:

Utf8Str strFilename = di.strHref;
/* ... */
i_ensureUniqueImageFilePath(strMachineFolder, devType, strFilename);
pNewDesc->i_addEntry(VirtualSystemDescriptionType_HardDiskImage,
                     hd.strDiskId,
                     di.strHref,
                     strFilename,
                     di.ulSuggestedSizeMB,
                     strExtraConfig);

ApplianceImpl.cpp 1126-1160 उस नाम को RTPATHABS_F_STOP_AT_BASE के बिना मशीन फ़ोल्डर के सापेक्ष पूर्ण करता है, फिर aName को यथास्थान परिवर्तित करता है:

int vrc = RTPathAbsExCxx(strAbsName, aMachineFolder, aName);
/* ... */
const char *pszSuffix = RTPathSuffix(aName.c_str());
offDashNum = pszSuffix ? (size_t)(pszSuffix - aName.c_str()) : aName.length();
aName.replace(offDashNum, cchDashNum, szTmp, cchTmp);

Import, अभी भी सापेक्ष dest (ApplianceImplImport.cpp 4169-4171) पर AbsEx दोहराता है और CREATE_REPLACE-लिखता है। IPRT परीक्षण उसी जोड़ को प्रलेखित करते हैं: निरपेक्ष दूसरा तर्क जीतता है; /VirtualBox/Machines और ../VirtualBox.xml मिलकर /VirtualBox/VirtualBox.xml बनते हैं।

पहले से दर्ज गलत मोड़: प्रत्यय-रहित authorized_keys लेखन को अवशेष मानना (import फेंकता है); NVRAM dest (फ़ोल्डर के अंदर बाध्य); VM नाम .. (सैनिटाइज़र); साझा फ़ोल्डर / ExtraData / सीरियल RawFile (पहले से सैनिटाइज़्ड)। थिएटर: होस्ट कर्नेल, गेस्ट-से-होस्ट। ओरेकल मशीन फ़ोल्डर के बाहर एक गवाह पंक्ति है साथ ही एक नियंत्रण disk.vmdk जो अपनी जगह पर रहा।

Lab

python3 vbox-ovf-href-dest-escape-Abraxas-Labs.py

या

cd lab
./run.sh

interpret dest-join, unique-path और import CREATE_REPLACE write का स्रोत harness। Docker compose, loopback, कोई VirtualBox बाइनरी नहीं। मशीन फ़ोल्डर /work/Machines/ImportedVM। Oracle /work/oracle।

SUCCESS vbox-ovf-href-dest-escape relative-escape=yes unique-keeps-dotdot=yes absolute-href=yes control-in-folder=yes VBOX-OVF-HREF-DEST-ESCAPE-WITNESS

समाधान

ovf:href को dest बनने से पहले basename-strip करें, या RTPATHABS_F_STOP_AT_BASE पास करें (और absolute नामों को अस्वीकार करें)। RTPATH_PROP_DOTDOT_REFS को अस्वीकार करें। Unique-path को basename को बदलना चाहिए, relative string को नहीं।

संदर्भ

  • github.com/VirtualBox/virtualbox टैग v7.2.20 (f2792cf44f663989818507e36d3db5f978523c5e)
  • ApplianceImplImport.cpp 802-851, 1043-1053, 4169-4171
  • ApplianceImpl.cpp 1126-1160
  • CWE-22

लाइसेंस

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

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