Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

フィードお問い合わせプライバシー© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
postgres-basebackup-symlink — PostgreSQL 18.6 - 高 - リモート - ファイル書き込み - pg_basebackup が CVE-2026-6475 の絶対 tar シンボリックリンク残存を追跡 | Kitploit
ツール/GitHubGitHub/abraxas/postgres-basebackup-symlink
脆弱性分析エクスプロイトウェブアプリケーション悪用ペネトレーションテスト論文と研究データベースセキュリティラボと実践
GitHubabraxas/postgres-basebackup-symlink

postgres-basebackup-symlink

PostgreSQL 18.6 - 高 - リモート - ファイル書き込み - pg_basebackup が CVE-2026-6475 の絶対 tar シンボリックリンク残存を追跡

リポジトリを見る
63日前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

Abraxas Labs - postgres-basebackup-symlink

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

postgres-basebackup-symlink

クラス: ファイル書き込み 到達範囲: リモート

PostgreSQL 18.6 (724edf9) - PostgreSQL Global Development Group

CVE-2026-6475 は tar のメンバー名に対して path_is_safe_for_extraction を追加した。絶対シンボリックリンクターゲットはテーブルスペースが機能するよう、そのチェックを依然としてスキップする。astreamer_file.c はその後ターゲットを symlink() し、後に fopen(..., "wb") がそれを追跡する。デフォルトの pg_basebackup フォーマットは plain (-F p) である。pg_rewind の create_target_symlink はパスをチェックし、決してリンクしない。

BASE_BACKUP を話す敵対的ソースは、絶対シンボリックリンクを植え付け、バックアップ UID が書き込める任意のファイルを上書きできる。 被害者モデルは 6475 と同じ。これはメンバー名チェックの再提出ではない。

IDCVE 未割当
クラスファイル書き込み (CVE-2026-6475 の絶対 tar シンボリックリンク残存)
到達範囲リモート (UI:R クライアント対敵対的 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
製品PostgreSQL
影響18.6 タグ REL_18_6 (724edf9bde9d356724ad384a2e196edc3c9f80f7)、ツリー内 pg_basebackup / pg_rewind
認証被害者が攻撃元に対してデフォルトの pg_basebackup -D <dir> を実行
ライセンスGNU Affero GPL v3.0
ラボ127.0.0.1 のみ

攻撃者ができること

オペレーターに自身の PostgreSQL に対して pg_basebackup -D を実行させることができる者 (CVE-2026-6475 と同じ UI:R モデル) は、-D の外側に書き込むことができる。

権限手法 / シンクラボ実証済みまたは推測
整合性: -D の外側にファイルを書き込む敵対的 BASE_BACKUP tar: 安全な相対名 (pg_tblspc/16384) と絶対リンクターゲットを持つ typeflag '2' メンバー、続いてその名前の下の通常メンバー。extract_link の後 create_file_for_extract が O_NOFOLLOW なしで fopen(..., "wb")ラボ実証済み。/work/oracle/ に POSTGRES-BASEBACKUP-SYMLINK-WITNESS を書き込んだ。Dest はシンボリックリンクを保持。コントロール tar (シンボリックリンクなし) はオラクルを空のままにし、-D 内に PG_VERSION のみを書き込んだ
整合性: シェル rc、authorized_keys、systemd ユーザーユニット、または crontab を上書き同じシンク、クライアント UID が書き込める任意のパス推測。このラボはそれらのファイルに触れない
可用性: クライアント設定や鍵を破壊同じ書き込み推測。実証されていない
クライアントディスクの偵察extract は書き込みであり、読み取りではないクローズ
.. または絶対メンバー名を辿るpath_is_safe_for_extractionクローズ。それが CVE-2026-6475
サーバー側の非特権 SQL / 未認証プロトコル18.6 デフォルトサーバークローズ。この残存はクライアント側
tar のみのバックアップpg_basebackup -F t は展開せずに tar を保存クローズ
postgres 内での RCEこのシンクではないクローズ

pg_rewind にも同じ create_target_symlink / open() の残存がある。このラボは pg_basebackup のみを駆動する。

発見の経緯

18.6 の波 (28 件の CVE、加えてこのツリーに既にある 18.4/18.2 のセット) の後、postgres/postgres REL_18_6 を固定した。22 回の探索。デフォルトサーバー、非特権 SQL、未認証プロトコル: この基準ではいずれも該当なし。CVE-2026-6475 が再読すべき兄弟であった。

メンバー名はチェックされる。絶対シンボリックリンクターゲットはチェックされない:

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 のコメントは、リンクが pg_tblspc 内にあることをチェックせずにマッピングが適用されると述べている。

すでに記録された誤った道: 6475 をクローズ済みとして扱い立ち去ること、-D を稼働中のデータディレクトリに向けること、見せかけのためにシェル rc を上書きすること。正直な 18.6 サーバーは pg_tblspc/<oid> シンボリックリンクのみを発行し、テーブルスペースの内容を別のアーカイブに置く。BASE_BACKUP を話す悪意あるソースは、後続の通常メンバーを同じ tar に入れることができる。それが残存である。

ラボ

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

または

cd lab
./run.sh

ソースイメージとして postgres:18.6 を使用し、BASE_BACKUP スピーカーを実行する。クライアントは同じタグのツリー内 pg_basebackup (pg_basebackup (PostgreSQL) 18.6)。ループバック 127.0.0.1:19370。Compose プロジェクト postgres-basebackup-symlink。-D を稼働中のデータディレクトリに向けないこと。

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

修正

絶対シンボリックリンクターゲットは、--tablespace-mapping によって書き換えられない限り安全でないものとして扱う。植え付けられたリンクを追跡できないよう、抽出ファイルを O_NOFOLLOW / lstat で開く。path_is_safe_for_extraction を rewind の path だけでなく link にも適用する。-D を離れたシンボリックリンクを経由するパスを持つ通常メンバーを拒否する。

参考文献

  • github.com/postgres/postgres タグ REL_18_6 (724edf9bde9d356724ad384a2e196edc3c9f80f7)
  • src/fe_utils/astreamer_file.c · src/fe_utils/astreamer_tar.c
  • src/bin/pg_rewind/file_ops.c
  • 近傍の修正済み (メンバー名、このターゲットではない): CVE-2026-6475
  • CWE-59 · CWE-22

ライセンス

GNU Affero GPL v3.0。LICENSE を参照。ループバックラボのみ。無保証。

ツールをダウンロード