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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-55511 — リモートコード実行 (RCE) - YamcsミッションコントロールシステムにおけるYarch SQLの二重引用符で囲まれた識別子を介したJavaステートメントインジェクション | Kitploit
ツール/GitHubGitHub/junfuture1103/cve-2026-55511
脆弱性分析コード分析エクスプロイトウェブアプリケーション悪用ペネトレーションテスト学習と教育
GitHubjunfuture1103/cve-2026-55511

CVE-2026-55511

リモートコード実行 (RCE) - YamcsミッションコントロールシステムにおけるYarch SQLの二重引用符で囲まれた識別子を介したJavaステートメントインジェクション

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

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有
ウェブサイト

CVE-2026-55511: Yamcs StreamSQL 認証済みRCE

CVE-2026-55511 に対する非武器化された概念実証および技術文書です。これは、Yamcs StreamSQL 集約式コンパイラにおける認証済み Java コードインジェクションの脆弱性です。

フィールド値
製品Yamcs (org.yamcs:yamcs-core)
アドバイザリGHSA-3g44-3m7x-cgg2
脆弱性の種類CWE-94: Improper Control of Generation of Code
深刻度Critical, CVSS 3.1: 9.1
ベクターCVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:H
必要な権限SystemPrivilege.ControlArchiving
修正済みリリースYamcs 5.13.2 and 5.12.8
メインラインのパッチb65a3d78178ba99a58b753feda6ecc3b5a694f13

概要

Yamcs は StreamSQL オブジェクトの二重引用符で囲まれた名前を受け入れ、影響を受けるリリースでは、それらの名前にほぼすべての文字を許可します。sum(...) のような集約式は、列名を使用して動的に Java ソースを構築し、そのソースを Janino SimpleCompiler でコンパイルします。

脆弱なコードは、列名を生成された Java 識別子に配置する前に、最小限の名前サニタイズのみを適用します。ControlArchiving を持つ認証済みユーザーは、そのため、巧みに作成された引用符で囲まれた列名を作成し、POST /api/archive/{instance}:executeSql を介して集約コンパイラに到達し、Yamcs サーバー JVM 内で攻撃者の影響を受ける Java を実行できます。

これは、意図された Yamcs の認可境界を超えています。ControlArchiving はアーカイブ、テーブル、ストリーム管理を許可しますが、サーバー上での任意の Java 実行を意図的に許可するものではありません。

影響を受けるバージョン

リリースライン影響を受けるバージョン修正バージョン
5.13.x5.13.1 and earlier5.13.2
5.12.x5.12.7 and earlier5.12.8

Yamcs 5.13.2、5.12.8、またはそれ以降のサポートされているリリースにアップグレードしてください。

技術的詳細

脆弱なデータフローは以下の通りです:

root@kitploit:~
POST /api/archive/{instance}:executeSql
  -> TableApi.executeSql
  -> Yarch StreamSQL parser
  -> double-quoted object name
  -> SelectExpression aggregate binding
  -> SumExpression.aggregateFillCode_newData
  -> Expression.fillCode_InputDefVars
  -> CompilableAggregateExpression.getCompiledAggregate
  -> Janino SimpleCompiler.cook
  -> attacker-influenced Java executes in the Yamcs JVM

この問題は3つの条件が組み合わさって発生します:

  1. 脆弱な S_DOUBLE_QUOTED_IDENTIFIER 文法は、CR、LF、" を除く任意の文字を受け入れます。
  2. Expression.fillCode_InputDefVars は、列名から Java 変数名を導出します。その sanitizeName ヘルパーは / と - のみを置換します。
  3. 生成された集約クラスは、制限的な式サンドボックスなしで Janino によってコンパイルおよびロードされます。

これにより、生成された newData(Tuple) メソッド内で、セミコロン、空白、括弧、代入演算子、ドットなどの Java 構文文字が利用可能になります。生の式パスとは異なり、集約メソッドは、注入されたステートメントがコンパイルおよび実行可能な到達可能なステートメントコンテキストを提供します。

前提条件と影響

悪用には、SystemPrivilege.ControlArchiving を持つ認証済みアカウントが必要です。その権限を持たないアカウントは、TableApi.executeSql の認証チェックによって拒否されます。

悪用に成功すると、Yamcs サービスプロセスの権限で Java が実行されます。導入環境の分離によっては、これがミッションデータおよびホスト環境の機密性、完全性、可用性に影響を与える可能性があります。この問題は認証なしの RCE ではなく、それ自体で Yamcs プロセスのオペレーティングシステムまたはコンテナの権限を昇格させるものではありません。

概念実証

同梱の poc.py は意図的に非武器化されています:

  • 稼働中の Yamcs サーバーに接続しません;
  • オペレーティングシステムのコマンドを実行しません;
  • ローカルの Yamcs チェックアウトで該当する脆弱なソースチェーンを検証します;
  • 集約コード生成パターンの小さな Java モデルを生成します;そして
  • 無害な JVM プロパティマーカーのみを設定します。

必要条件

  • Python 3.9+
  • ローカルの Yamcs ソースチェックアウト
  • オプションの JDK(javac および java)良性マーカーテスト用

実行

root@kitploit:~
cd /path/to/yamcs
python3 /path/to/poc.py \
  --json /tmp/evidence.json \
  --log /tmp/crash_evidence.log \
  --expect-crash

期待される指標:

root@kitploit:~
source_chain_confirmed=true
generated_source_injection_present=true
marker_executed=true

証拠

  • evidence/evidence.json: 構造化されたソースチェーンと Java モデルの結果
  • evidence/crash_evidence.log: 簡潔な検証ログ

同梱の証拠は、Yamcs ソースコミット 98a05e95461207c143e4297ec4bb1b5a76e9cb19 に対して生成されました。脆弱なソースチェーン、生成ソースのインジェクション、および良性マーカーの実行を確認しています。

公式パッチ

上流の修正は「Avoid RCE through double-quoted identifiers」と題されています:

  • メインライン / 5.13.x: b65a3d78178ba99a58b753feda6ecc3b5a694f13、5.13.2 でリリース
  • 5.12.x バックポート: 8c1070b12c0a6c003903325cb2a1013347e2dbde、5.12.8 でリリース

中核となる変更は、二重引用符で囲まれた識別子をほぼ制限のない文字セットから許可リストに制限することです:

root@kitploit:~
< S_DOUBLE_QUOTED_IDENTIFIER: "\"" (~["\n","\r","\""])* "\"" >

を、文字、数字、$、_、#、. の許可リストに変更:

root@kitploit:~
< S_DOUBLE_QUOTED_IDENTIFIER: "\"" (<LETTER> | <DIGIT> | <SPECIAL_CHARS>)+ "\"" >

これにより、報告されたインジェクションに必要なステートメント分離文字と式構築文字が、名前が Java コード生成に到達する前に拒否されます。このパッチは、生成されたパーサーファイル、ドキュメント、および関連するテストも更新します。

この制限は、スペースまたは許可リストに含まれない句読点を含む既存の引用符で囲まれたオブジェクト名に影響を与える可能性があります。アップグレードまたはバックポートを行う前に、StreamSQL スキーマと自動化を確認してください。

CVE-2026-44632 との違い

CVE-2026-55511 は、CVE-2026-44632 / GHSA-524g-x36v-9wm6 とは別のエントリポイントです。CVE-2026-44632 は JavaExprAlgorithmExecutionFactory に関するもので、ミッションデータベースのアルゴリズムオーバーライド機能を介して到達し、ChangeMissionDatabase によってゲートされています。

この問題は org.yamcs.yarch.streamsql にあり、executeSql を介して到達し、ControlArchiving によってゲートされています。以前の 5.13.0 / 5.12.7 のアルゴリズムパス修正は、StreamSQL コンパイラまたはその引用符付き識別子の処理を変更しませんでした。

追加資料

  • VULNERABILITY_REPORT.md: 拡張された脆弱性レポート
  • PATCH_ANALYSIS.md: 詳細な上流パッチ分析と互換性に関する注意事項

参考文献

  • Yamcs 公式セキュリティアドバイザリ: GHSA-3g44-3m7x-cgg2
  • 公式メインライン修正コミット
  • 公式 5.12.x 修正コミット

この資料は、あなたが所有しているシステム、または明示的にテストを許可されているシステムでのみ使用してください。

ツールをダウンロード