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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
sqlite-cli-go — SQLite 3.53.4 CLI - 高 - ローカル - コマンドインジェクション - go およびスラッシュ終端文字の後にドットコマンド | Kitploit
ツール/GitHubGitHub/abraxas/sqlite-cli-go
脆弱性分析エクスプロイトセキュリティ仮想化暗号化ペネトレーションテストラボと実践
GitHubabraxas/sqlite-cli-go

sqlite-cli-go

SQLite 3.53.4 CLI - 高 - ローカル - コマンドインジェクション - go およびスラッシュ終端文字の後にドットコマンド

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

人気

すべて見る →

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

すべてのツールを探索

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

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

Abraxas Labs - sqlite-cli-go

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  sqlite-cli-go

sqlite-cli-go

分類: コマンドインジェクション 到達範囲: ローカル

SQLite 3.53.4 (b09c88c) のデフォルト sqlite3 CLI は、依然として SQL Server の go と Oracle の / をステートメント終端として扱う。line_is_command_terminator はその行を ; に書き換える。SQL バッファが空の状態で次の行が来ると do_meta_command になるため、.shell / .output / .read がオペレータの UID で実行される。

--safe は依然として .shell をブロックする。この制御は有効である。デフォルトの sqlite3 は --safe を有効にしない。libsqlite3 ではない。Oracle は witness 文字列の echo である。

IDCVE 未割当
分類コマンドインジェクション (CLI の go / / 終端の後に後続のドットコマンド)
到達範囲ローカル (被害者が --safe なしで攻撃者の SQL/スクリプトに対してデフォルトの sqlite3 を実行する。UI:R)
CWECWE-78
CVSSHigh: 7.8 CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
製品SQLite (sqlite3 CLI)
影響を受けるバージョン3.53.4 (b09c88c14082339b66c7b7158d609a771e64ca69) SOURCE_ID 2026-07-24 19:02:57 bf7c7f30031888f4e796e429ab3978879485813aaca6f641c7b33e4e09459bcc
認証被害者がデフォルトの sqlite3 にスクリプトを渡す。--safe なし
ライセンスGNU Affero GPL v3.0
ラボ127.0.0.1:18920 のみ。Witness SQLITE-CLI-GO-WITNESS。

攻撃者ができること

オペレータが --safe なしで sqlite3 に渡したスクリプト内で SQL が終端されていない場合、go または / の行の後に .shell / .output / .read がオペレータの UID で実行される。

セミコロンはすでにステートメントを終端する。残るのは ; を持たない終端 SQL であり、ステートメントがまだ開いていると判断したラッパーは次のドットコマンドを実行してしまう。.shell は system() である。ラボのオラクルは witness の echo である。リバースシェルではない。

発見の経緯

OpenLiteSpeed の後、3.53.4 のソースを 20 回調査した。最新の GA であり、3.54.0 のドラフトではない。CLI の追加機能はデフォルトライブラリではない。--safe は信頼できないスクリプトに対する文書化されたシンクである (CVE-2022-46908)。依然として .shell をブロックする。デフォルトの sqlite3 はこれを有効にしない。

src/shell.c.in には依然として SQL Server / Oracle 互換パスが存在する。トランク ac6ac0c22d (2026-10-08) は SQLITE_SHELL_LEGACY_COMMAND_TERMINATOR がない限りこれを無効化する。このチェックインは本 GA より後である。

すでに記録済みの誤った道: セミコロンを同じ残り物として扱うこと、CVE-2022-46908 を再申請すること、--safe がデフォルトであると期待すること、これを libsqlite3 の RCE と呼ぶこと、オラクルとしてリバースシェルを使うこと、3.54.0 (ドラフト) にピン留めすること。

ラボ

cd lab
./run.sh

公式の sqlite-src-3530400 をデフォルトの Unix sqlite3 (--disable-readline) にビルドする。Compose sqlite-cli-go。127.0.0.1:18920 上のダミー TCP。デフォルト CLI は go と / を終端として扱い、その後 .shell echo SQLITE-CLI-GO-WITNESS を実行した。--safe は cannot run .shell in safe mode を出力した。ループバックにバインド。

SUCCESS sqlite-cli-go how=go-then-dot-shell slash=yes safe=blocked SQLITE-CLI-GO-WITNESS

修正

go と / を終端として扱うのをやめること。これはトランク ac6ac0c22d が -DSQLITE_SHELL_LEGACY_COMMAND_TERMINATOR がない限り行っていることである。それまでは、信頼できないスクリプトを --safe で実行すること。--safe は依然として有効な制御である。

参考資料

  • sqlite.org/src タグ version-3.53.4 (b09c88c14082339b66c7b7158d609a771e64ca69)
  • 公式 zip https://www.sqlite.org/2026/sqlite-src-3530400.zip
  • src/shell.c.in line_is_command_terminator、process_input の書き換え、do_meta_command、failIfSafeMode 後の .shell system()
  • CVE-2022-46908 --safe
  • sqlite.org/cli.html CLI --safe
  • CWE-78
ツールをダウンロード