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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
postgres-basebackup-symlink — PostgreSQL 18.6 - उच्च - रिमोट - फ़ाइल लेखन - pg_basebackup CVE-2026-6475 के शेष पूर्ण tar symlink का अनुसरण करता है | Kitploit
उपकरण/GitHubGitHub/abraxas/postgres-basebackup-symlink
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणपेनिट्रेशन टेस्टिंगपेपर और शोधडेटाबेस सुरक्षालैब और अभ्यास
GitHubabraxas/postgres-basebackup-symlink

postgres-basebackup-symlink

PostgreSQL 18.6 - उच्च - रिमोट - फ़ाइल लेखन - pg_basebackup CVE-2026-6475 के शेष पूर्ण tar symlink का अनुसरण करता है

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

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

सभी देखें →

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

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

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

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

Abraxas Labs - postgres-basebackup-symlink

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  postgres-basebackup-symlink

postgres-basebackup-symlink

Class: File write Reach: Remote

PostgreSQL 18.6 (724edf9) - PostgreSQL Global Development Group

CVE-2026-6475 ने tar member names के लिए path_is_safe_for_extraction जोड़ा। Absolute symlink targets अभी भी उस जाँच को छोड़ देते हैं ताकि tablespaces काम करें। astreamer_file.c फिर target को symlink() करता है और बाद में fopen(..., "wb") उसका अनुसरण करता है। डिफ़ॉल्ट pg_basebackup प्रारूप plain (-F p) है। pg_rewind create_target_symlink path की जाँच करता है और कभी link नहीं करता।

BASE_BACKUP बोलने वाला एक शत्रुतापूर्ण source एक absolute symlink लगा सकता है और backup UID जो भी फ़ाइल लिख सकता है उसे overwrite कर सकता है। वही victim model जो 6475 का है। यह member-name जाँचों का पुनः-दाखिला नहीं है।

IDअभी तक कोई CVE नहीं
ClassFile write (CVE-2026-6475 का absolute tar symlink अवशेष)
ReachRemote (UI:R client बनाम शत्रुतापूर्ण PostgreSQL)
CWECWE-59, CWE-22
CVSSHigh: 8.8 CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
ProductPostgreSQL
Affected18.6 tag REL_18_6 (724edf9bde9d356724ad384a2e196edc3c9f80f7), in-tree pg_basebackup / pg_rewind
Authvictim डिफ़ॉल्ट pg_basebackup -D <dir> को attacker source के विरुद्ध चलाता है
LicenseGNU Affero GPL v3.0
Labकेवल 127.0.0.1

एक attacker क्या कर सकता है

जो कोई किसी operator से अपने PostgreSQL के विरुद्ध pg_basebackup -D चलवा सकता है (CVE-2026-6475 का वही UI:R model) वह -D के बाहर लिख सकता है।

PrivilegeMethod / sinkLab-proven या inferred
Integrity: -D के बाहर फ़ाइल लिखनाशत्रुतापूर्ण BASE_BACKUP tar: typeflag '2' member एक सुरक्षित relative नाम (pg_tblspc/16384) और एक absolute link target के साथ, फिर उस नाम के अंतर्गत एक regular member। extract_link फिर create_file_for_extract fopen(..., "wb") बिना O_NOFOLLOW केLab-proven। /work/oracle/ पर POSTGRES-BASEBACKUP-SYMLINK-WITNESS लिखा। Dest में symlink है। Control tar (symlink रहित) ने oracle को खाली छोड़ा और केवल -D के अंदर PG_VERSION लिखा
Integrity: shell rc, authorized_keys, systemd user unit, या crontab को overwrite करनावही sink, कोई भी path जिसे client UID लिख सकता हैInferred। यह lab उन फ़ाइलों को नहीं छूता
Availability: client config या keys को नष्ट करनावही writeInferred। प्रदर्शित नहीं
Client disk की reconextract write है, read नहींClosed
.. या absolute member names पर चलनाpath_is_safe_for_extractionClosed। वह CVE-2026-6475 है
Server-side unpriv SQL / unauth protocol18.6 डिफ़ॉल्ट serverClosed। यह अवशेष client है
Tar-only backuppg_basebackup -F t tar को बिना extract किए संग्रहीत करता हैClosed
postgres के अंदर RCEयह sink नहींClosed

pg_rewind में वही create_target_symlink / open() अवशेष है। यह lab केवल pg_basebackup को चलाता है।

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

मैंने 18.6 लहर के बाद postgres/postgres REL_18_6 को pin किया (28 CVEs, साथ ही इस tree पर पहले से मौजूद 18.4/18.2 सेट)। बाईस hunts। डिफ़ॉल्ट server, unpriv SQL, unauth protocol: इस बार पर कोई नहीं। CVE-2026-6475 फिर से पढ़ने योग्य sibling था।

Member names की जाँच होती है। Absolute symlink targets की नहीं:

if (!is_absolute_path(linktarget) &&
    !path_is_safe_for_extraction(member->linktarget))
{
    pg_fatal("link target has unsafe path name: \"%s\"",
             member->linktarget);
}
extract_link(mystreamer->filename, linktarget);

create_file_for_extract अभी भी fopen(filename, "wb") है। astreamer_file.c:351-356 पर टिप्पणी कहती है कि mapping बिना यह जाँचे लागू की जाती है कि link pg_tblspc के अंदर है।

पहले से दर्ज गलत मोड़: 6475 को closed मानकर चले जाना; -D को live data directory पर इंगित करना; theatre के लिए shell rc overwrite करना। एक ईमानदार 18.6 server केवल pg_tblspc/<oid> symlinks उत्सर्जित करता है और tablespace सामग्री को एक अलग archive में रखता है। BASE_BACKUP बोलने वाला एक दुर्भावनापूर्ण source follow-up regular member को उसी tar में रख सकता है। वही अवशेष है।

Lab

python3 postgres-basebackup-symlink-Abraxas-Labs.py

या

cd lab
./run.sh

source image के रूप में postgres:18.6, एक BASE_BACKUP speaker चला रहा है। Client उसी tag से in-tree pg_basebackup है (pg_basebackup (PostgreSQL) 18.6)। Loopback 127.0.0.1:19370। Compose project postgres-basebackup-symlink। -D को live data directory पर इंगित न करें।

SUCCESS postgres-basebackup-symlink control-inside=yes oracle-outside=yes dest-is-symlink=yes image=postgres:18.6 how=pg_basebackup POSTGRES-BASEBACKUP-SYMLINK-WITNESS

समाधान

Absolute symlink targets को unsafe मानें जब तक कि उन्हें --tablespace-mapping द्वारा पुनः लिखा न जाए। extract फ़ाइलों को O_NOFOLLOW / lstat के साथ खोलें ताकि लगाए गए link का अनुसरण न किया जा सके। path_is_safe_for_extraction को rewind link के साथ-साथ path पर भी लागू करें। ऐसे regular member को अस्वीकार करें जिसका path -D से बाहर गए symlink से होकर जाता है।

संदर्भ

  • github.com/postgres/postgres tag REL_18_6 (724edf9bde9d356724ad384a2e196edc3c9f80f7)
  • src/fe_utils/astreamer_file.c · src/fe_utils/astreamer_tar.c
  • src/bin/pg_rewind/file_ops.c
  • निकटवर्ती patched (member names, यह target नहीं): CVE-2026-6475
  • CWE-59 · CWE-22

License

GNU Affero GPL v3.0। देखें LICENSE। केवल Loopback lab। कोई warranty नहीं।

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