Meshtastic の深刻な脆弱性 CVE-2025-24797 が FIX:不正なメッシュ・パケットによる RCE

Critical Meshtastic RCE Vulnerability (CVE-2025-24797) Requires Urgent Update

2025/04/21 SecurityOnline — 携帯電話やインターネットによる接続に依存することなく長距離/低消費電力の通信を可能にする、OSS の LoRa メッシュ・ネットワーク・プラットフォーム Meshtastic に、深刻なセキュリティ脆弱性が発見された。この脆弱性 CVE-2025-24797 (CVSS:9.4) は、ファームウェア・バージョン 2.6.2 未満を実行するデバイスにおいて、未認証のリモートコード実行 (RCE) を許すものである。

Meshtastic の用途は、分散型メッシュ・ネットワーク上でのテキスト・メッセージング/GPS 位置情報共有/テレメトリなどである。サポート・プラットフォームは、ESP32/nRF52/RP2040/Linux などであり、アウトドア・アクティビティ/緊急事態対応/オフグリッド通信などで広く採用されている。

この問題の根本的な原因は、無効なプロトコル・バッファ (protobuf) データを取り込んだ、不正なメッシュ・パケットの不適切な処理にある。この脆弱性は、デコード時に発生し、memcpy 操作前のメモリ・サイズの検証に失敗したシステムで 、バッファ・オーバーフロー状態を引き起こすという。

Meshtastic の公式セキュリティ・アドバイザリには、「無効なプロトコル・バッファ・データを取り込んだメッシュ・パケット処理の欠陥により、攻撃者にバッファ・オーバーフローの機会を与え、実行フローの乗っ取りの可能性を引き起こす」と記されている。

脆弱なデバイスがデフォルトのメッシュ・チャネルで、パケットをアクティブに再ブロードキャストしている限り、この脆弱性は、認証やユーザー操作を必要とすることなく悪用される可能性がある。この動作は、一般的な Meshtastic 環境におけるデフォルトである。

このオーバーフローの脆弱性を悪用する攻撃者は、RadioBuffer 構造体外のメモリ空間 (スレッド管理に関連するメモリを含む) を上書きする、悪意のパケットを作成できる。

この問題を発見して適切に開示したセキュリティ研究者の Alain Siegrist (@Alainx277) は、PoC エクスプロイトも公開し、その功績を認められている。

彼は、「これらのフィールドの後に、concurrency::NotifiedWorkerThread の仮想テーブル・ポインタが続く。このポインタを上書きする攻撃者は、次にスレッドの実行されるときに任意のリダイレクトを達成し、リモートコード実行を引き起こす可能性を手にする」と述べている

Meshtastic のアドバイザリは、「ASLR やメモリ実行保護のない組み込みシステムでは、パケット・ペイロードにシェル・コードをダイレクトに埋め込むことが可能なため、有効なエクスプロイトの開発は “かなり簡単” である」と指摘している。

Meshtastic のメッシュ・ネットワークの性質自体が、このリスクを増大させる。アドバイザリは、「この脆弱性は、複数のホップを挟むノードでも悪用される可能性がある。つまり、パケットが再ブロードキャストされるため、攻撃者は不正な暗号化データを複数段階にネストすることが可能となり、最初の段階でサイズ・フィールドを有効な値で上書きできる。したがって、それらのデータは、最後の上書きがトリガーされるまで、すべてのホップで展開される。このマルチホップ・エクスプロイトの可能性は、攻撃対象領域を大幅に拡大する」と指摘している。

この脆弱性が影響を及ぼす範囲は、ファームウェアのバージョン 2.6 未満であり、バージョン 2.6.2 で修正されている。すべてのユーザーに対して強く推奨されるのは、速やかにアップグレードを行い、潜在的な侵害を防ぐことだ。

この脆弱性は、本文でも触れられている通り、LoRa メッシュ・ネットワークの特性を悪用して、複数のノードを経由する多段階の攻撃を可能にする危険なものです。Meshtastic の用途の性質上、攻撃の標的となるリスクも高いと感じます。ご利用のチームは、迅速なアップデートを、ご検討下さい。