本文へ移動
English version →
重大 9.9 急ぎ度: 早めに

ThingLinksに認証後のコード実行脆弱性、1.4.0で修正

IoT基盤ThingLinksの1.4.0より前に、ログインできる利用者がサーバー上で任意のコードを実行できる脆弱性があります。運用している組織は1.4.0へ更新し、アクセスできる利用者の範囲も見直してください。

CVE-2026-62853 公開 更新 執筆・監修: 佐々木 航 人が監修しながらAIを活用して執筆
記事のイメージ(生成 AI による画像)
画像は生成 AI で作成したイメージです

急ぎ度: 早めに

CVSS v3は9.9で重大度はcriticalですが、悪用にはログインが必要で、修正版の1.4.0が公開されています。

関係があるか

ThingLinksを自社で構築して運用し、複数の担当者や取引先にアカウントを配っている組織が当てはまります。ルールエンジンを使っていなくても、1.4.0より前の版であれば対象になります。

製品影響を受ける版修正版
ThingLinks(mqttsnet/thinglinks) 1.4.0より前のすべての版 1.4.0

確かめ方

  1. 1稼働中のThingLinksの版を、管理画面の表示、デプロイ時のイメージタグ、ビルドに使ったソースの版のいずれかで確認します。
  2. 21.4.0より前であれば対象です。社内のどの環境(本番・検証・開発)に入っているかも洗い出します。
  3. 3管理画面やAPIがインターネットから届くか、社内ネットワークに限られるかを確認します。あわせて、ログインできるアカウントの数と持ち主を一覧にします。

何が起きたか

ThingLinksのルールエンジンにあるGroovyスクリプトのテスト・登録機能に、サーバー上で任意のコードを実行できてしまう脆弱性が見つかりました。ログインできる利用者が送ったスクリプトを、サーバーがそのまま取り込んで動かす作りになっています。

対象は/groovyScriptTest/registerScriptというエンドポイントです。利用者が渡したGroovyのスクリプトを、サンドボックスなどの制限がない状態でコンパイルして読み込み、インスタンス化します。CWEはCWE-94とCWE-78が付いています。

CVSSのベクトルでは、影響が脆弱なコンポーネントの外にも及ぶ評価になっています。ThingLinksが動くサーバーの権限で何でも実行できるため、基盤につながる機器やデータへの影響も考える必要があります。

ThingLinks 1.4.0で修正されています。

攻撃の流れ

  1. 1

    ログイン

    ThingLinksの一般的な権限のアカウントでログインします。

  2. 2

    スクリプト送信

    ルールエンジンのスクリプト登録用エンドポイントに、Groovyのコードを送ります。

  3. 3

    サーバーで実行

    制限のないままコンパイルとインスタンス化が行われ、コードがサーバー上で動きます。

  4. 4

    基盤を掌握

    サーバーの権限で、データの閲覧・改ざん・停止ができる状態になります。

公開されている情報をもとにした流れの例です。

どう悪用されるか

悪用にはThingLinksへのログインが必要です。ただし必要な権限は低く、特別な管理者権限は前提になっていません。ネットワーク越しに届けば実行でき、複雑な条件や、ほかの利用者に何かを操作させる必要もありません。

悪用されると、ThingLinksが動くサーバー上で攻撃者のコードが実行されます。機密性・完全性・可用性のすべてが大きく損なわれる評価で、サーバーに保存された設定や接続情報の読み取り、データの改ざん、サービス停止が起こりえます。サーバーを足がかりに、同じネットワークの別の機器へ広がるおそれもあります。

ログインが前提なので、アカウントを少数の信頼できる担当者に限っている環境では、危険は下がります。取引先や外部委託先にもアカウントを渡している環境、パスワードの使い回しがある環境では、実質的な壁が低くなります。

今すぐやること

  1. 1

    ThingLinksを1.4.0に更新する

    まず本番環境を優先します。更新前に設定とデータのバックアップを取り、更新後に版が1.4.0になっていることを確認します。リリースの内容はベンダーの告知で確認してください。

  2. 2

    稼働中の版を洗い出す

    コンテナで動かしている場合は、イメージのタグから版を確認できます。複数の環境が残っていないかも見ます。

    docker images | grep -i thinglinks
  3. 3

    アカウントを棚卸しする

    使っていないアカウントは無効にします。共有アカウントや弱いパスワードがあれば改めます。更新までの間、不要な利用者がルールエンジンの機能に触れないようにします。

  4. 4

    侵害の跡を調べる

    リバースプロキシやアプリケーションのログで、/groovyScriptTest/registerScriptへのリクエストを探します。ルールエンジンを使っていない時期や、見覚えのないアカウントからのアクセスがあれば、サーバーの不審なプロセスや設定変更も確認します。

  5. 5

    不審な点があれば認証情報を入れ替える

    侵害が疑われる場合は、サーバーに保存されている接続情報やAPIキー、データベースのパスワードを入れ替えます。

すぐ更新できないとき

すぐに更新できない場合は、リバースプロキシやWAFで/groovyScriptTest/registerScriptへのアクセスを遮断します。管理画面とAPIは、社内ネットワークやVPNなど限られた経路からだけ届くようにします。ルールエンジンを使う必要のないアカウントは無効にしてください。いずれも更新までのつなぎです。

背景

ThingLinksは、センサーや機器からのデータを集めて管理する企業向けのIoTプラットフォームです。機器とアプリケーションをつなぐ中枢にあたるため、サーバーが侵害されると、現場の機器から集めたデータと、そこへ指示を送る経路の両方に影響が及びます。

今回の対象であるルールエンジンは、受け取ったデータの加工や転送の条件を、利用者が書いたスクリプトで決める機能です。柔軟な反面、スクリプトをサーバーの上で動かす以上、実行に制限をかけていないと、書き手はサーバーのプロセスと同じ権限を手にします。テスト用の登録機能にも本番の実行環境と同じ強さの制限が必要になる、という点がこの脆弱性の核心です。

よくある質問

Q.Groovyスクリプトの機能を使っていなければ影響を受けませんか。
A.利用の有無では判断せず、版で判断してください。1.4.0より前の版は対象で、ルールエンジンを使っていなくても更新をおすすめします。機能の無効化など、版を上げる以外の対処があるかどうかはベンダーの告知で確認してください。
Q.1.4.0に更新したあと、ほかに必要な作業はありますか。
A.更新前から悪用されていた場合、更新だけでは侵入の跡は消えません。更新前の期間のログを調べ、不審なアクセスがあれば、サーバーに保存された認証情報の入れ替えまで進めてください。

この記事は、取得元の公開情報をもとに、人が監修しながらAIを活用して執筆しています。執筆と監修は佐々木 航が担い、公開したあとも人が内容を確認しています。誤りに気づいたときは直し、記事の末尾に訂正の行を残します。対応を決める前に、下の原文と参照先も確認してください。

原文の説明 取得元が公開している説明をそのまま載せています (多くは英語)。

ThingLinks is an enterprise IoT platform. Prior to 1.4.0, the /groovyScriptTest/registerScript endpoint accepts user-supplied Groovy script content and passes it to an unsandboxed Groovy compilation and loading flow. An authenticated attacker can provide code that is compiled and instantiated on the server, resulting in arbitrary server-side code execution. The issue affects the rule engine's Groovy script test/register flow. This issue is fixed in version 1.4.0.

出典: CVE.org (CVE Program・cvelistV5) NVD GitHub Advisory

参照URL

当サイトでは、アクセス解析と広告の効果測定のために Cookie を使います。株式会社Game のサイト共通の設定です。 詳しく