NetX Duo の証明書検証に重大な欠陥、書き込み超過を招く
Eclipse ThreadX の NetX Duo に含まれる NetX Secure の X.509 処理に、巨大な RSA 鍵を含む証明書でメモリの範囲外書き込みが起きる欠陥が見つかりました。認証前にネットワーク越しで悪用でき、TLS/DTLS のクライアントや、クライアント証明書認証を行うサーバーが影響を受けます。6.5.1.202602 以前を使う組込み機器の開発元や運用者は、修正版の有無をベンダーの告知で確認し、対象の把握から始めてください。
急ぎ度: 早めに
CVSS v4は9.3で認証なしにネットワークから悪用できますが、実際の悪用の確認(KEV)は公表されておらず、修正版の提供状況も現時点では明らかになっていません。
関係があるか
NetX Duo(NetX Secure)を組み込んだ機器やソフトウェアで、TLS/DTLSのクライアントとして外部サーバーに接続するもの、またはクライアント証明書認証を有効にしたサーバーが該当します。IoT機器、産業用機器、組込み機器の開発元と、それらを運用する組織が主な対象です。
| 製品 | 影響を受ける版 | 直った版 |
|---|---|---|
| Eclipse ThreadX - NetX Duo(NetX Secure) | 6.5.1.202602以前 | 公表されていません。GitHubのセキュリティアドバイザリで確認してください。 |
確かめ方
- 1自社製品や導入機器のソフトウェア部品表(SBOM)やソースを調べ、Eclipse ThreadXのNetX Duoを使っているか、その版が6.5.1.202602以前かを確認します。
- 2NetX SecureのTLS/DTLSを有効にしているか、機器が外部のサーバーへクライアントとして接続するか、またはクライアント証明書認証を使っているかを確認します。
- 3ビルド設定で
NX_CRYPTO_MAX_RSA_MODULUS_SIZEが既定の4096ビットのままか、変更されているかを確認します。 - 4市販の機器を使っている場合は、機器メーカーにNetX Duoの利用有無と対応予定を問い合わせます。
何が起きたか
組込み機器向けのリアルタイムOSであるEclipse ThreadXの通信部品NetX Duoのうち、暗号通信を担うNetX Secureに、重大な欠陥が見つかりました。通信相手から送られてくる電子証明書に特別に大きな鍵が入っていると、機器のメモリの想定外の場所にデータが書き込まれます。結果として、機器の停止や乱れた動作、場合によっては機器を乗っ取られるおそれがあります。
技術的には、X.509証明書の解析処理が任意の大きさのRSA公開鍵を受け付ける一方で、署名検証の処理は NX_CRYPTO_MAX_RSA_MODULUS_SIZE の既定値である4096ビット向けの固定長バッファに結果を書き込みます。4096ビットを超えるmodulus(RSAの法)を持つ証明書が来ると、ファイルスコープのstatic領域を越えて書き込む範囲外書き込み(CWE-787、入力サイズの検証不備はCWE-1284)が起きます。
問題となるのは通常の証明書チェーン検証の最中です。署名検証に使う発行者(issuer)の証明書は、信頼済みストアより先に、通信相手が送ってきたストアから探される仕組みです。そのため攻撃者は、自分が提示するチェーンの中間証明書として巨大な鍵を入れておくだけで、この処理を起動できます。
攻撃の流れ
-
1
細工した証明書
攻撃者が4096ビットを超えるRSA鍵を持つ中間証明書を含むチェーンを用意します。
-
2
チェーンを提示
悪意あるサーバーとして機器に接続して提示するか、攻撃者がクライアントとして証明書を提示します。
-
3
検証処理が起動
機器が証明書チェーンの署名検証を始め、相手が送った中間証明書を発行者として使います。
-
4
範囲外書き込み
固定長のバッファを超えてデータが書き込まれ、メモリが壊れます。
-
5
停止や乗っ取り
機器の異常停止や、条件次第では任意の処理の実行につながるおそれがあります。
どう悪用されるか
悪用に認証は不要で、利用者の操作も要りません。ネットワーク越しに到達できる位置にいれば攻撃できます。TLS/DTLSのクライアントとして動く機器は、攻撃者が用意した悪意あるサーバーに接続したときに、そのサーバーが提示するチェーンで影響を受けます。サーバーとして動く機器は、クライアント証明書認証を行っている場合に、接続してきた相手の証明書で影響を受けます。
CVSS v4の評価では、機密性・完全性・可用性のいずれにも高い影響があるとされています。メモリを壊されることで、情報の漏えい、動作の改ざん、機器の停止が起こりうるという意味です。ただし、実際にどこまで可能かは機器のメモリ配置や構成によって変わります。実際の攻撃での悪用や、攻撃手法の公開については、現時点で明らかになっていません。
今すぐやること
-
1
利用有無と版を把握する
自社製品や運用中の機器でNetX Duoを使っているか、版が6.5.1.202602以前かを洗い出します。SBOMやビルド設定、ソースの管理情報が手がかりになります。
-
2
ベンダーの告知で修正版を確認する
GitHubのセキュリティアドバイザリ(GHSA-rcv5-vfff-25gh)で、修正版や対処方法の公開状況を確認します。市販機器は機器メーカーの告知も確認します。
-
3
修正版を取り込み機器を更新する
修正版が公開されたらNetX Duoを更新して再ビルドし、機器のファームウェアとして配布します。更新手段がない機器は、メーカーに更新方法を確認します。
-
4
接続先と到達範囲を絞る
TLS/DTLSで接続する先を信頼できるサーバーに限定し、クライアント証明書認証を受け付けるサーバーはネットワーク上の到達範囲を必要な相手に絞ります。
-
5
異常な再起動を監視する
機器の予期しない再起動や停止が、通信直後に起きていないかをログや監視で確認します。
すぐ更新できないとき
修正版を当てられない間は、機器が接続するサーバーを信頼できるものに限定し、クライアント証明書認証を使うサーバーは到達できるネットワークを制限して、不特定の相手から証明書を受け取らない構成にしてください。公式に示された回避策は現時点で確認できていないため、ベンダーの告知を確認してください。
背景
NetX Duoは、Eclipse ThreadX(旧Azure RTOS ThreadX)向けのTCP/IPスタックで、NetX Secureはその上でTLS/DTLSやX.509証明書の処理を担います。こうした部品は、産業機器や家電、センサーなどの組込み機器に組み込まれ、外から見えにくいまま長く使われます。そのため脆弱性が見つかっても、利用者が自分の機器に含まれているかを把握しにくいという特徴があります。
証明書や暗号データの解析は、外部から届く入力をそのまま処理するため、サイズや長さの検証が不十分だとメモリ破壊につながりやすい領域です。長さの検証漏れによるバッファ超過は、暗号ライブラリや通信スタックで繰り返し問題になってきた種類の弱点です。
よくある質問
Q.すでに攻撃で悪用されていますか。
Q.TLSを使っていない機器は影響を受けますか。
Q.`NX_CRYPTO_MAX_RSA_MODULUS_SIZE` を変更すれば防げますか。
まだ分かっていないこと
- 修正版の版番号と提供時期は、公開されている情報では示されていません。
- 実際の攻撃での悪用の有無や、攻撃コードの公開状況は明らかになっていません。
- この部品を組み込んだ個々の市販機器のうち、どれが影響を受けるかは公表されていません。
この記事は、取得元の公開情報をもとに生成 AI で作成しています。誤りを含むことがあります。対応を決める前に、下の原文と参照先を確認してください。
影響パッケージ
| 種類 | パッケージ | 影響を受ける版 | 直った版 |
|---|---|---|---|
| Eclipse Foundation | Eclipse ThreadX - NetX Duo |
6.5.1.202602 以前 |
— |
原文の説明 取得元が公開している説明をそのまま載せています (多くは英語)。
The X.509 parser in NetX Secure accepts an RSA public key of any size, but every signature-verification path decrypts into fixed-size buffers dimensioned for the NX_CRYPTO_MAX_RSA_MODULUS_SIZE default of 4096 bits. A certificate carrying a larger modulus drives an out-of-bounds write past a file-scope static during ordinary certificate-chain verification.
It is reachable pre-authentication. The issuer used for the crypto operation is looked up in the remote, peer-supplied store before the trusted store, so the attacker supplies the oversized key themselves as an intermediate in the chain they present. It triggers on a TLS or DTLS client verifying a malicious server's chain, and on a server performing client-certificate authentication.
出典: NIST National Vulnerability Database NVD GitHub Advisory
参照URL
- advisory github.com
- advisory github.com
- advisory nvd.nist.gov