
NicheStack は InterNiche 社(現在は HCC Embedded 社が保有)が開発した、産業向け制御システムで広く用いられている TCP/IP プロトコルスタックです。NicheStack に複数の脆弱性が発見されました。これらの脆弱性を悪用されることにより、遠隔の第三者からリモートコード実行やサービス妨害(DoS)、情報漏えい等の被害が生じる可能性があります。発見者はこれらの脆弱性を「INFRA:HALT」と呼称しています。

NicheStack には以下の複数の脆弱性が存在します。
- 長さパラメータ不整合時の不適切な取り扱い (CWE-130) - CVE-2020-25928
| CVSS v3 |
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
基本値: 9.8 |
DNSv4 コンポーネントにおいて、DNSレスポンスデータの長さチェックの不備により境界外読み取り/書き込みが発生する。
- ヒープベースのバッファオーバーフロー (CWE-122) - CVE-2021-31226
| CVSS v3 |
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H |
基本値: 9.1 |
HTTP コンポーネントにおいて、HTTP POST リクエストの処理時にバッファオーバーフローが発生する。
- 境界外読み取り (CWE-125) - CVE-2020-25767
| CVSS v3 |
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H |
基本値: 7.5 |
DNSv4 コンポーネントにおいて、DNS ドメイン名の処理時に境界外読み取りが発生する。
- 長さパラメータ不整合時の不適切な取り扱い (CWE-130) - CVE-2020-25927
| CVSS v3 |
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:H |
基本値: 8.2 |
DNSv4 コンポーネントにおいて、DNS パケットに含まれるクエリ数やレスポンス数を指定するヘッダの値をチェックしていないことにより、境界外読み取りが発生する。
- ヒープベースのバッファオーバーフロー (CWE-122) - CVE-2021-31227
| CVSS v3 |
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N |
基本値: 7.5 |
HTTP コンポーネントにおいて、HTTP POST リクエストの処理時に符号付き整数値の比較処理に不備があり、バッファオーバーフローが発生する。
- 例外処理の不備 (CWE-248) - CVE-2021-31400
| CVSS v3 |
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N |
基本値: 7.5 |
TCP コンポーネントにおいて、例外処理の不備により無限ループが発生する。
- 不適切な入力値検証 (CWE-20) - CVE-2021-31401
| CVSS v3 |
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N |
基本値: 7.5 |
TCP コンポーネントにおいて、TCP ヘッダ値の検証不備により整数オーバーフローが発生する。
- 不適切な入力値検証 (CWE-20) - CVE-2020-35683
| CVSS v3 |
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H |
基本値: 7.5 |
ICMP コンポーネントにおいて、ICMP パケットのチェックサム算出にあたり IP ヘッダ中の値を検証していないため、境界外読み取りや境界外書き込みが発生する。
- 不適切な入力値検証 (CWE-20) - CVE-2020-35684
| CVSS v3 |
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H |
基本値: 7.5 |
TCP コンポーネントにおいて、TCP パケットのチェックサム算出にあたり IP ヘッダ中の値を検証していないため、境界外読み取りや境界外書き込みが発生する。
- 不十分なランダム値の使用 (CWE-330) - CVE-2020-35685
| CVSS v3 |
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N |
基本値: 7.5 |
TCP コンポーネントにおいて、TCP ISN(Initial Sequence Number) 値のランダム性が低く予測可能となる。
- 不適切な例外条件の処理 (CWE-703) - CVE-2021-27565
| CVSS v3 |
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N |
基本値: 7.5 |
HTTP コンポーネントにおいて、不正な HTTP リクエストを受信した際にサービス運用妨害(DoS) 状態となる。
- NULL 終端文字の欠落 (CWE-170) - CVE-2021-36762
| CVSS v3 |
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N |
基本値: 7.5 |
TFTP コンポーネントにおいて、TFTP パケット中のファイル名に NULL 終端文字が含まれないことがあり、境界外読み取りが発生する。
- 不十分なランダム値の使用 (CWE-330) - CVE-2020-25926
| CVSS v3 |
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:N/I:L/A:N |
基本値: 4.0 |
DNSv4 コンポーネントにおいて、トランザクション ID のランダム性が低く予測可能となる。
- 不十分なランダム値の使用 (CWE-330) - CVE-2021-31228
| CVSS v3 |
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:N/I:L/A:N |
基本値: 4.0 |
DNSv4 コンポーネントにおいて、DNS クエリの送信元ポート番号のランダム性が低く予想可能となり、DNS クライアントの要求に対し偽のパケットを送信される。

想定される影響は各脆弱性により異なりますが、次のような影響を受ける可能性があります。
- リモートコード実行 - CVE-2020-25928、CVE-2021-31226
- サービス運用妨害(DoS) - CVE-2020-25767、CVE-2020-25927、CVE-2021-31227、CVE-2021-31400、CVE-2020-35683、CVE-2020-35684、CVE-2021-27565、CVE-2021-36762
- 情報漏えい - CVE-2020-25767
- TCP コネクションスプーフィング - CVE-2020-35685
- DNS キャッシュポイズニング - CVE-2020-25926、CVE-2021-31228

アップデートする
開発元である HCC Embedded より、本問題を修正したバージョン 4.3 が提供されています。HCC Embedded の提供する情報を元に、最新のバージョンにアップデートしてください。
ワークアラウンドを実施する
発見者である Forescout は以下の軽減策を提示しています。
- DNSv4 コンポーネントの脆弱性(CVE-2020-25928、CVE-2020-25767、CVE-2020-25927、CVE-2021-31228、CVE-2020-25926)
- 必要のない場合は DNSv4 クライアントを無効化する。または DNSv4 通信をブロックする
- HTTP コンポーネントの脆弱性(CVE-2021-27565、CVE-2021-31226、CVE-2021-31227)
- 必要のない場合は HTTP を無効化する。または、ホワイトリストを用いて HTTP 接続を制限する
- TCP コンポーネントの脆弱性(CVE-2021-31400、CVE-2021-31401、CVE-2020-35684、CVE-2020-35685)
- CVE-2021-31400、CVE-2021-31401、CVE-2020-35684 について: 通信をモニタリングし、不正な形式の TCP/IPv4 パケットをブロックする
- CVE-2020-35685について:発見者が発行している他のレポートで提示している軽減策を適用する
- ICMPv4 コンポーネントの脆弱性(CVE-2020-35683)
- 通信をモニタリングし、不正な形式の ICMPv4 パケットをブロックする