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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2026-2005 — PostgreSQL pgcrypto हीप बफर ओवरफ्लो PoC जो CVE-2026-2005 को प्रदर्शित करता है: तैयार किए गए OpenPGP पैकेट के माध्यम से निम्न-विशेषाधिकार RCE और सुपरयूज़र तक विशेषाधिकार वृद्धि। | Kitploit
उपकरण/GitHubGitHub/open-flaw/cve-2026-2005
विशेषाधिकार वृद्धिभेद्यता विश्लेषणशोषणपोस्ट-शोषणबाइनरी विश्लेषणडेटाबेस सुरक्षाबाइनरी शोषण
GitHubopen-flaw/cve-2026-2005

CVE-2026-2005

PostgreSQL pgcrypto हीप बफर ओवरफ्लो PoC जो CVE-2026-2005 को प्रदर्शित करता है: तैयार किए गए OpenPGP पैकेट के माध्यम से निम्न-विशेषाधिकार RCE और सुपरयूज़र तक विशेषाधिकार वृद्धि।

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

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

सभी देखें →

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

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

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

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

CVE-2026-2005 — PostgreSQL pgcrypto हीप बफर ओवरफ्लो

लक्षित कमिट: 4b324845ba5d24682b9b3708a769f00d160afbd7 (PostgreSQL 18.1 — असुरक्षित)

सारांश

फ़ील्डविवरण
CVECVE-2026-2005
प्रकारहीप बफर ओवरफ्लो
घटकcontrib/pgcrypto/pgp-pubdec.c — pgp_parse_pubenc_sesskey()
प्रभावPostgreSQL चलाने वाले OS उपयोगकर्ता के रूप में RCE
CVSS8.8 (AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H)
आवश्यक प्रमाणीकरणनिम्न — CREATE विशेषाधिकार वाला कोई भी प्रमाणित उपयोगकर्ता
प्रभावित संस्करणPostgreSQL 14.0–14.20, 15.0–15.15, 16.0–16.11, 17.0–17.7, 18.0–18.1
समाधान संस्करण14.21, 15.16, 16.12, 17.8, 18.2 (12 फरवरी, 2026)
आर्किटेक्चरaarch64 (ARM64) — हीप ऑफसेट और MBuf लेआउट arch/glibc विशेष हैं

त्वरित आरंभ

root@kitploit:~
# Build and start PostgreSQL 18.1 (vulnerable)
docker compose up -d --build

# Wait for healthy
docker compose logs -f postgres
# Ctrl+C when you see "database system is ready to accept connections"

# Install node deps
npm install

# Run the full RCE exploit chain
node exploit.js --cmd "id"

# With verbose output
node exploit.js --cmd "id" --verbose

# Execute a custom command
node exploit.js --cmd "whoami"

एक्सप्लॉइट श्रृंखला (7 चरण)

root@kitploit:~
Stage 1: Heap pointer leak
  └─ Corrupt mdst chunk header → parse pfree() error message

Stage 2: Arbitrary read (multi-offset scan)
  └─ Overwrite mdst->data → scan memory near leaked pointer

Stage 3: Pointer candidate collection
  └─ Scan heap dump for non-heap addresses

Stage 4: PIE base resolution
  └─ Read /proc/<pid>/maps via Docker exec (100% reliable)

Stage 5: (skipped — PIE base is known from maps)

Stage 6: Arbitrary write
  └─ Forge msrc + mdst MBufs → overwrite CurrentUserId → 10 (superuser)

Stage 7: Command execution
  └─ COPY FROM PROGRAM → arbitrary OS command as postgres user

फ़ाइल संरचना

root@kitploit:~
CVE-2026-2005/
├── Dockerfile              # Builds PostgreSQL 18.1 from source
├── docker-compose.yml      # PostgreSQL service with auto-restart
├── init.sh                 # Entrypoint — initdb + listen config
├── README.md               # This file
└── poc/
    ├── package.json        # Node.js dependencies (pg)
    ├── exploit.js          # Full 7-stage RCE exploit (Node.js)
    ├── verify.sh           # Shell-based quick verification
    └── test-pgcrypto.sql   # SQL-only test of pgcrypto loading

मैन्युअल बिल्ड (macOS / Linux)

root@kitploit:~
git clone https://github.com/postgres/postgres.git
cd postgres
git checkout 4b324845ba5d24682b9b3708a769f00d160afbd7
./configure \
    --prefix="$HOME/projects/pg/pgsql" \
    --with-libxml \
    --with-libxslt \
    --enable-debug \
    --with-ssl=openssl
make -j$(nproc)
make install-world-bin

आवश्यकताएँ

  • Docker + Docker Compose (aarch64 होस्ट, जैसे Apple Silicon Mac)
  • Node.js ≥ 18
  • PostgreSQL बिल्ड के लिए ~2 GB डिस्क
  • पहली बार चलाने पर बिल्ड में ~3–5 मिनट लगते हैं
  • tmux (वैकल्पिक — केवल --gdb फ़्लैग के साथ आवश्यक)

भेद्यता विवरण

यह बग contrib/pgcrypto/pgp-pubdec.c में स्थित pgp_parse_pubenc_sesskey() में है। OpenPGP पब्लिक-की एन्क्रिप्टेड सेशन की पैकेट (tag 1) पार्स करते समय:

  1. कोड पैकेट से MPI (मल्टी-प्रिसिजन इंटीजर) लंबाई पढ़ता है
  2. उस लंबाई के आधार पर बफर आवंटित करता है
  3. MPI को RSA-डिक्रिप्ट करके बफर में डालता है
  4. डिक्रिप्टेड डेटा से सेशन-की लंबाई पढ़ता है बिना बाउंड्स सत्यापन के
  5. असत्यापित लंबाई के आधार पर सेशन-की डेटा को एक निश्चित-आकार बफर में memcpy करता है

यह memcpy हीप बफर की सीमा से परे लिख सकता है, जिससे आसन्न हीप मेटाडेटा या डेटा भ्रष्ट हो सकता है, और अंततः मनमाना कोड निष्पादन (arbitrary code execution) हो सकता है।

एक्सप्लॉइटेशन चेन का विवरण

  1. हीप पॉइंटर लीक — malloc chunk हेडर को भ्रष्ट करें; mdst->data हीप पता निकालने के लिए pfree() त्रुटि संदेश पार्स करें।
  2. PIE बेस रेज़ोल्यूशन — रनटाइम पर postgres बाइनरी का लोड पता खोजने के लिए Docker कंटेनर से /proc/<pid>/maps पढ़ें।
  3. आर्बिट्रेरी राइट — हीप ओवरफ्लो के माध्यम से msrc (स्रोत) और mdst (गंतव्य) दोनों MBuf स्ट्रक्चर बनाएँ। msrc एक एम्बेडेड symenc पैकेट की ओर इशारा करता है जिसमें सुपरयूज़र OID (10) होता है; mdst CurrentUserId - 4 की ओर इशारा करता है (4-बाइट SET_VARSIZE हेडर को ध्यान में रखते हुए)।
  4. विशेषाधिकार एस्केलेशन — CurrentUserId = 10 (बूटस्ट्रैप सुपरयूज़र) के साथ, मनमाने OS कमांड चलाने के लिए COPY FROM PROGRAM निष्पादित करें।

CLI विकल्प

नोट्स

  • pgcrypto एक्सटेंशन ट्रस्टेड है — CREATE विशेषाधिकार वाला कोई भी उपयोगकर्ता (सुपरयूज़र नहीं) इसे इंस्टॉल कर सकता है, जिससे यह निम्न विशेषाधिकारों के साथ एक्सप्लॉइटेबल बन जाता है।
  • Docker बिल्ड में gdb के साथ आसान डीबगिंग के लिए --enable-debug शामिल है।
  • हीप ऑफसेट (SRC_CHUNK_OFFSET=100, DST_CHUNK_OFFSET=172) aarch64 + glibc के लिए विशिष्ट हैं — अन्य आर्किटेक्चर/एलोकेटर के लिए अलग ऑफसेट की आवश्यकता होती है।
  • कंटेनर PIE कैंडिडेट टेस्टिंग के दौरान बैकएंड क्रैश से स्वतः पुनर्प्राप्त करने के लिए restart: always का उपयोग करता है।
  • PIE बेस Docker कंटेनर के अंदर /proc/<pid>/maps के माध्यम से निर्धारित होता है — होस्ट पर readelf की आवश्यकता नहीं है।
  • CurrentUserId ऑफसेट के लिए सिंबल टेबल docker exec readelf के माध्यम से पढ़ी जाती है।

संदर्भ

  • PostgreSQL सुरक्षा परामर्श
  • ZeroDay.Cloud तकनीकी विवरण
  • NVD प्रविष्टि
टूल डाउनलोड करें
फ़्लैगडिफ़ॉल्टविवरण
--cmdidसफल एक्सप्लॉइट के बाद निष्पादित करने के लिए OS कमांड
--key-size3072बिट्स में RSA कुंजी आकार
--host127.0.0.1PostgreSQL होस्ट
--port5432PostgreSQL पोर्ट
--userpostgresडेटाबेस उपयोगकर्ता
--password(खाली)डेटाबेस पासवर्ड
--dbnamepostgresडेटाबेस नाम
--binary./postgresसिंबल के लिए postgres ELF बाइनरी का पथ
--scan-offsetautoलीक हुए पॉइंटर से हीप स्कैन ऑफसेट को ओवरराइड करें
--verboseoffवर्बोज़ डीबग आउटपुट सक्षम करें
--gdboffओवरफ्लो बिंदु पर GDB को tmux के माध्यम से अटैच करें