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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
cve-2026-28912 — macOS PackageKit symlink-following बग (CVE-2026-28912) के लिए रिवर्स इंजीनियरिंग नोट्स और एक कार्यशील PoC, साथ में 26.6 फिक्स का डिसअसेंबली डिफ। | Kitploit
उपकरण/GitHubGitHub/jvidhan/cve-2026-28912
विशेषाधिकार वृद्धिस्थैतिक विश्लेषणभेद्यता विश्लेषणशोषणरिवर्स इंजीनियरिंगबाइनरी विश्लेषणपेपर और शोधलर्निंग और शिक्षा
GitHubjvidhan/cve-2026-28912

cve-2026-28912

macOS PackageKit symlink-following बग (CVE-2026-28912) के लिए रिवर्स इंजीनियरिंग नोट्स और एक कार्यशील PoC, साथ में 26.6 फिक्स का डिसअसेंबली डिफ।

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

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

सभी देखें →

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

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

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

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

CVE-2026-28912 — रिवर्स इंजीनियरिंग नोट्स और पुनरुत्पादन

macOS PackageKit सिमलिंक-फॉलोइंग बग (CVE-2026-28912) की स्वतंत्र रिवर्स इंजीनियरिंग, साथ ही एक कार्यशील PoC जो यह प्रदर्शित करता है कि इंस्टॉलर इंस्टॉल गंतव्य पथ में एक डायरेक्टरी सिमलिंक के माध्यम से हमलावर-नियंत्रित फ़ाइल को root के रूप में लिखता है।

यह बग PKCoreShove के फ़ाइल-रीलिंक लॉजिक में एक अनसिंक्रोनाइज़्ड पथ वॉक है। एक दुर्भावनापूर्ण .pkg एक अपरिविलेज्ड डायरेक्टरी में गंतव्य पथ घोषित कर सकता है, पथ घटकों में से एक पर एक डायरेक्टरी सिमलिंक रख सकता है जो एक विशेषाधिकार प्राप्त स्थान की ओर इंगित करता है, और इंस्टॉलर — जो root के रूप में चल रहा है — को सिमलिंक लक्ष्य में लिखने का कारण बन सकता है। Apple का 26.6 फिक्स _PKSIPOpenPathSafely जोड़ता है जो प्रत्येक पथ घटक को O_NOFOLLOW के साथ वॉक करता है और किसी भी सिमलिंक को अस्वीकार करता है।


एक नज़र में CVE

फ़ील्डमान
CVECVE-2026-28912
घटकPackageKit (PKCoreShove, PKBundleComponent)
प्रभावितmacOS Tahoe 26.5 और पहले
पैच किया गयाmacOS Tahoe 26.6
एडवाइज़री प्रभाव"एक ऐप root विशेषाधिकार प्राप्त कर सकता है।"
CVSS v3.17.8 (उच्च)
रिपोर्ट किया गयाApple की एडवाइज़री के अनुसार मूल खोजकर्ताओं द्वारा

यह राइटअप क्यों मौजूद है

CVE-2026-28912 के लिए Apple की एडवाइज़री प्रभाव और पैच किए गए संस्करण का दस्तावेज़ीकरण करती है। यह तकनीकी तंत्र का दस्तावेज़ीकरण नहीं करती:

  • PackageKit में कौन सा फ़ंक्शन सिमलिंक का अनुसरण करता है
  • इंस्टॉलर प्रत्येक घटक की जाँच किए बिना गंतव्य पथ पर क्यों चलता है
  • बग को बंद करने के लिए 26.6 में कौन सा फ़ंक्शन जोड़ा गया
  • फिक्स ठीक उसी बिंदु पर O_NOFOLLOW वॉक क्यों सम्मिलित करता है
  • PoC को फ़ाइल सिमलिंक के बजाय डायरेक्टरी सिमलिंक का उपयोग क्यों करना चाहिए
  • गंतव्य पर फ़ाइल-स्तरीय सिमलिंक का अनुसरण करने के बजाय प्रतिस्थापित क्यों किया जाता है

लेखन के समय कोई सार्वजनिक तकनीकी राइटअप नहीं मिला। यह रिपॉज़िटरी 26.4 और 26.6 के बीच PackageKit के स्वतंत्र रिवर्स इंजीनियरिंग विश्लेषण और एक कार्यशील PoC के साथ उस अंतराल को भरती है जो इस आदिम को लाइव प्रदर्शित करता है।

यह खोज का दावा नहीं है। CVE को मूल खोजकर्ताओं द्वारा रिपोर्ट किया गया था और Apple द्वारा पैच किया गया था। यहाँ योगदान तकनीकी विश्लेषण और पुनरुत्पादन है।


भेद्यता का सारांश

macOS 26.4 में PKCoreShove _relinkFile:dest: फ़ाइल बनाते समय गंतव्य पथ को घटक-दर-घटक वॉक करता है:

; macOS 26.4, PackageKit
1a9fb14f8   _relinkFile:dest:
    ...
    bl   _linkResolutionProhibitted     ; returns 0 in the normal case
    mov  w8, 0x10                       ; RENAME_NOFOLLOW_ANY
    cmp  w0, 0
    csel w22, w8, wzr, ne               ; w22 = 0x10 if prohibited, else 0
    ...
    mov  x2, x22
    bl   _renamex_np                    ; uses w22 as flags

_linkResolutionProhibitted 0 (false) लौटाता है जब कॉलिंग प्रक्रिया SIP फ़ाइलों को संशोधित नहीं कर सकती — उपयोगकर्ता-आरंभित इंस्टॉल के लिए सामान्य स्थिति। यह RENAME_NOFOLLOW_ANY को अक्षम कर देता है, इसलिए रीनेम गंतव्य पथ में किसी भी सिमलिंक का अनुसरण करता है।

26.6 फिक्स _PKSIPOpenPathSafely जोड़ता है, जिसे PKBundleComponent initWithBundleAtPath:relativeToDestination: से कॉल किया जाता है:

; macOS 26.6, PackageKit
1aa6dfe18   bl   _PKSIPOpenPathSafely    ; walks each component with O_NOFOLLOW

_PKSIPOpenPathSafely:

  1. प्रत्येक पथ घटक को O_NOFOLLOW (0x4) के साथ खोलता है
  2. S_IFLNK (st_mode में 0xa000) के माध्यम से सिमलिंक का पता लगाता है
  3. _PKSIPFullyProtected के माध्यम से SIP सुरक्षा की जाँच करता है
  4. fgetattrlist के माध्यम से SF_RESTRICTED पढ़ता है
  5. क्लीनअप पर सैंडबॉक्स एक्सटेंशन छोड़ने के लिए close_drop_np का उपयोग करता है

कोई भी घटक जो इच्छित पथ के बाहर इंगित करने वाला सिमलिंक है, EPERM या ELOOP के साथ अस्वीकार कर दिया जाता है, और इंस्टॉल विफल हो जाता है।


इस रिपॉज़िटरी में क्या है

रिवर्स इंजीनियरिंग

  • 26.4 और 26.6 के बीच PKCoreShove _relinkFile:dest: और _linkResolutionProhibitted का डिसअसेम्बली डिफ
  • भेद्य फ़ील्ड की पहचान: गैर-SIP-संशोधित प्रक्रियाओं के लिए _linkResolutionProhibitted 0 लौटाता है
  • फिक्स की पहचान: PKBundleComponent में _PKSIPOpenPathSafely जोड़ा गया, प्रति-घटक O_NOFOLLOW वॉक
  • सिसकॉल विश्लेषण: इंस्टॉलर renamex_np का उपयोग RENAME_NOFOLLOW_ANY = 0x10 के साथ केवल तब करता है जब कॉलर SIP फ़ाइलों को संशोधित कर सकता है
  • रनटाइम पुष्टि: fs_usage सिमलिंक लक्ष्य पर इंस्टॉलर stat/listxattr और डायरेक्टरी सिमलिंक के माध्यम से लिखना दिखाता है

पूर्ण राइटअप के लिए docs/ANALYSIS.md और पते व लॉग नमूनों के लिए docs/ARTIFACTS.md देखें।

पुनरुत्पादन

  • link.sh — एक एकल-फ़ाइल, स्व-निहित PoC:

    1. $HOME/cve-poc/target → $HOME/cve-poc/real पर एक डायरेक्टरी सिमलिंक बनाता है
    2. एक .pkg बनाता है जिसका पेलोड $HOME/cve-poc/target/poc.txt पर एक फ़ाइल घोषित करता है
    3. इसे sudo installer के साथ इंस्टॉल करता है
    4. सत्यापित करता है कि फ़ाइल $HOME/cve-poc/real/poc.txt में पहुँची — root:wheel स्वामित्व के साथ

यह PoC क्या प्रदर्शित करता है

  • एक अपरिविलेज्ड डायरेक्टरी के अंतर्गत फ़ाइल घोषित करने वाला .pkg पेलोड
  • उस पथ पर डायरेक्टरी सिमलिंक का अनुसरण करता इंस्टॉलर
  • घोषित गंतव्य के बाहर बनाई जा रही root-स्वामित्व वाली फ़ाइल
  • fs_usage के माध्यम से राइट का लाइव कैप्चर

यह PoC क्या प्रदर्शित नहीं करता

  • गंतव्य पर फ़ाइल-स्तरीय सिमलिंक। फ़ाइल सिमलिंक renamex_np द्वारा प्रतिस्थापित किए जाते हैं, अनुसरण नहीं किए जाते — राइट पथ में डायरेक्टरी सिमलिंक के माध्यम से होना चाहिए।
  • कोड निष्पादन, विशेषाधिकार वृद्धि, या पीड़ित पर एक शेल
  • हथियारीकरण: PoC डिफ़ॉल्ट रूप से $HOME/cve-poc/real/ पर है, न कि /etc/sudoers.d/ या /Library/LaunchDaemons/ पर

प्रदर्शित प्रभाव सिमलिंक-फॉलोइंग आदिम है — ठीक वही व्यवहार जिसे 26.6 फिक्स बंद करता है।


आवश्यकताएँ

लक्ष्य (पीड़ित) होस्ट

  • macOS Tahoe 26.5 या पहले (भेद्य PackageKit)
  • pkgbuild, installer, fs_usage
  • Root (इंस्टॉलर के लिए)

कोई अलग हमलावर होस्ट आवश्यक नहीं

PoC पूरी तरह से लक्ष्य पर चलता है। सिमलिंक और पेलोड दोनों स्थानीय रूप से बनाए जाते हैं। यह PoC को किसी भी नेटवर्क कॉन्फ़िगरेशन के बिना स्व-निहित और पुनरुत्पादनीय रखता है।


उपयोग

chmod +x link.sh
./link.sh

पर्यावरण चर के माध्यम से वैकल्पिक ट्यूनिंग:

sudo CONTENT="test content" ./link.sh

CONTENT सिमलिंक के माध्यम से लिखी जाने वाली सामग्री सेट करता है। डिफ़ॉल्ट रूप से यह hello है।

अपेक्षित आउटपुट

[*] System information:
ProductName:        macOS
ProductVersion:     26.4
BuildVersion:       25E246

[*] Setup...
    Symlink:  /Users/nerd/cve-poc/target → /Users/nerd/cve-poc/real

[*] Build .pkg...
    Payload:  /Users/nerd/cve-poc/payload/Users/nerd/cve-poc/target/poc.txt
    Package:  /Users/nerd/cve-poc/poc.pkg

[*] Install (password prompt expected)...
installer: Package name is poc
installer: Installing at base path /
installer: The install was successful.

[✓] VULNERABILITY CONFIRMED
    Landed at /Users/nerd/cve-poc/real/poc.txt
    Owner:   root:wheel
    Content: hello

CVE-2026-28912 trigger SUCCESSFUL

पैच का सत्यापन

पैच किए गए सिस्टम (26.6) पर, वही PoC विफल हो जाता है:

[✗] Not triggered
No file was created in /Users/nerd/cve-poc/real/

डिसअसेम्बली तुलना के लिए docs/PATCH_DIFF.md देखें।


.pkg की बारीकियाँ (पुनरुत्पादनीयता के लिए)

PoC में दो विवरण विकास के दौरान खोजे गए और यहाँ प्रलेखित हैं ताकि समान टूलींग बनाने वाले अन्य लोग इनसे न टकराएँ:

  1. सिमलिंक उस पथ घटक पर होना चाहिए जिस पर इंस्टॉलर चलता है। गंतव्य लीफ पर फ़ाइल-स्तरीय सिमलिंक renamex_np द्वारा प्रतिस्थापित किया जाता है; केवल पथ के बीच में डायरेक्टरी सिमलिंक का अनुसरण किया जाता है।

  2. पेलोड पथ को गंतव्य पथ को प्रतिबिंबित करना चाहिए। pkgbuild --install-location / के साथ, पेलोड पथ गंतव्य पथ है जिसमें से अग्रणी / हटा दिया गया है। यदि वे मेल नहीं खाते, तो इंस्टॉलर कभी भी सिमलिंक के माध्यम से नहीं चलता।

दोनों docs/ANALYSIS.md में प्रलेखित हैं।


एक नोट कि पासवर्ड शमन क्यों नहीं है

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