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 और सुपरयूज़र तक विशेषाधिकार वृद्धि।

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

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

सभी देखें →

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

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

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

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

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 लेआउट आर्क/glibc विशिष्ट हैं

त्वरित प्रारंभ

root@kitploit:~
# PostgreSQL 18.1 (असुरक्षित) बनाएं और प्रारंभ करें
docker compose up -d --build

# स्वस्थ होने की प्रतीक्षा करें
docker compose logs -f postgres
# जब आप "database system is ready to accept connections" देखें तो Ctrl+C दबाएं

# एक बार का सेटअप: ऑफ़लाइन प्रतीक पार्सिंग के लिए postgres बाइनरी कॉपी करें
docker cp cve-2026-2005-poc:/usr/local/pgsql/bin/postgres ./postgres

# Node निर्भरताएँ स्थापित करें
npm install

# पूर्ण RCE एक्सप्लॉइट श्रृंखला चलाएं (शुद्ध SQL — कोई Docker इंटरैक्शन नहीं)
node exploit.js --cmd "id"

# विस्तृत आउटपुट के साथ
node exploit.js --cmd "id" --verbose

# कस्टम कमांड निष्पादित करें
node exploit.js --cmd "whoami"

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

root@kitploit:~
चरण 1: हीप पॉइंटर लीक
  └─ mdst चंक हेडर को दूषित करें → pfree() त्रुटि संदेश पार्स करें

चरण 2: मनमाना पठन (मल्टी-विंडो स्कैन)
  └─ mdst->data को अधिलेखित करें → लीक हुए पॉइंटर के पास मेमोरी स्कैन करें

चरण 3: पॉइंटर उम्मीदवार संग्रह
  └─ पॉइंटर-जैसे 8-बाइट मानों के लिए हीप डंप स्कैन करें

चरण 4: PIE आधार समाधान
  └─ ELF प्रतीक ऑफसेट के विरुद्ध लीक हुए पते वोट करें (पेज-ऑफसेट
     समूहीकृत, ऑफ़लाइन — प्रतीक स्थानीय बाइनरी कॉपी से पार्स किए गए)

चरण 5: PIE सत्यापन
  └─ उम्मीदवार आधार पर CurrentUserId का मनमाना पठन → सत्र OID से तुलना करें

चरण 6: मनमाना लेखन
  └─ msrc + mdst MBuf बनाएं → CurrentUserId को अधिलेखित करें → 10 (सुपरयूज़र)

चरण 7: कमांड निष्पादन
  └─ COPY FROM PROGRAM → postgres उपयोगकर्ता के रूप में मनमाना OS कमांड

फ़ाइल संरचना

root@kitploit:~
CVE-2026-2005/
├── Dockerfile              # स्रोत से PostgreSQL 18.1 बनाता है
├── docker-compose.yml      # ऑटो-रीस्टार्ट के साथ PostgreSQL सेवा
├── init.sh                 # एंट्रीपॉइंट — initdb + listen कॉन्फ़िग
├── README.md               # यह फ़ाइल
└── poc/
    ├── package.json        # Node.js निर्भरताएँ (pg)
    ├── exploit.js          # पूर्ण 7-चरण RCE एक्सप्लॉइट (Node.js)
    ├── verify.sh           # शेल-आधारित त्वरित सत्यापन
    └── test-pgcrypto.sql   # pgcrypto लोडिंग का SQL-केवल परीक्षण

मैनुअल बिल्ड (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 पब्लिक-की एन्क्रिप्टेड सेशन की पैकेट (टैग 1) पार्स करते समय:

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

memcpy हीप बफर सीमा से आगे लिख सकता है, आसन्न हीप मेटाडेटा या डेटा को दूषित कर सकता है, जिससे मनमाना कोड निष्पादन हो सकता है।

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

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

संदर्भ

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