Cente IPv6

リンクアップ直後にリンクダウンが発生すると、その後リンクアップしても通信できなくなることがまれにある

発行番号: Cente001-0073
Rev: 第1版
発行日: 2024/04/12
題名: リンクアップ直後にリンクダウンが発生すると、その後リンクアップしても通信できなくなることがまれにある

適用製品
・Cente TCP/IPv4 Ver.1.41およびそれ以前
・Cente TCP/IPv4 SNMPv2 Ver.2.30およびそれ以前
・Cente TCP/IPv4 SNMPv3 Ver.2.30およびそれ以前
・Cente IPv6 Ver.1.51およびそれ以前
・Cente IPv6 SNMPv2 Ver.2.30およびそれ以前
・Cente IPv6 SNMPv3 Ver.2.30およびそれ以前

【該当するユーザ環境】
Cente TCP/IPv4およびCente IPv6で、リンクアップ処理(elap_start()の呼び出し)とリンクダウン処理(elap_stop()の呼び出し)を別タスクから実行する環境が該当します。
ネットワークインタフェースにCente USB Host RNDIS、Cente USB Host CDC-ECMをお使いの場合はこれに該当します。
elap_start()とelap_stop()を同一タスクから実行する環境(CenteパッケージのBSPのLANドライバはこれにあたります)は非該当です。

【詳細】
Centeミドルウェアは、ネットワークのリンクアップ時にはelap_start()を、リンクダウン時にはelap_stop()を、デバイスドライバから実行するという仕様です。これらを別タスクから実行する構成の場合、リンクアップ直後にリンクダウンが発生すると、elap_start()実行中にelap_stop()が割り込む可能性があります。
elap_start()で内部変数のセット待ち処理があり、この待ち処理中にelap_stop()が割り込むと、セットされた変数がクリアされ(その後セットされることはない)、セット待ちが解除されずに、elap_start()からリターンしなくなることがあります。その後リンクダウン・アップが発生しても状態は復旧せず、通信ができなくなります。
elap_start()とelap_stop()を同一タスクから実行する環境では、elap_start()処理中にelap_stop()が割り込むことはないので、問題ありません。

【回避方法】
elap_start()の実行中にelap_stop()が割り込まれても問題なく処理できるよう、ソースコードの改変が必要です。
修正箇所については、support_XXXatmarkXXX_cente.jpまでお問い合わせください(XXXatmarkXXXは@にしてください)。

以上。

DHCPc動作時、複数の機器に同一のIPv4アドレスが割り当たる可能性がある

発行番号: Cente001-0072
Rev: 第1版
発行日: 2024/04/12
題名: DHCPc動作時、複数の機器に同一のIPv4アドレスが割り当たる可能性がある

適用製品
・Cente TCP/IPv4 Ver.1.41およびそれ以前
・Cente TCP/IPv4 SNMPv2 Ver.2.30およびそれ以前
・Cente TCP/IPv4 SNMPv3 Ver.2.30およびそれ以前
・Cente IPv6 Ver.1.51およびそれ以前
・Cente IPv6 SNMPv2 Ver.2.30およびそれ以前
・Cente IPv6 SNMPv3 Ver.2.30およびそれ以前

【該当するユーザ環境】
同一LAN上で、Cente TCP/IPv4およびCente IPv6含めた複数の機器が一斉にDHCPcにてIPv4アドレス取得を実行する環境。

【詳細】
CenteのDHCPcは、DHCPサーバからの応答が自分宛かどうかを、XIDのみで判断しています。
このため、電源一斉投入などで複数の機器が同時にDHCPを実行し、偶然自分のXIDが他機器のXIDと重複した場合、自分宛と誤認識して他機器向けのIPv4アドレスを自らに設定してしまいます。

【回避方法】
受信したDHCPパケットのCHADDRも自分宛か否かの判断に使用するよう、ソースコードの改変が必要です。
修正箇所については、support_XXXatmarkXXX_cente.jpまでお問い合わせください(XXXatmarkXXXは@にしてください)。

以上。

【脆弱性情報】UDP,TCPの送信元ポート番号などが予測可能である

発行番号: Cente001-0071
Rev: 第1版
発行日: 2024/04/01
題名: 【脆弱性情報】UDP,TCPの送信元ポート番号などが予測可能である

適用製品
・Cente TCP/IPv4 Ver.1.41およびそれ以前
・Cente TCP/IPv4 SNMPv2 Ver.2.30およびそれ以前
・Cente TCP/IPv4 SNMPv3 Ver.2.30およびそれ以前
・Cente IPv6 Ver.1.51およびそれ以前
・Cente IPv6 SNMPv2 Ver.2.30およびそれ以前
・Cente IPv6 SNMPv3 Ver.2.30およびそれ以前

【該当するユーザ環境】
Cente TCP/IPv4およびCente IPv6の全てのユーザ。

【詳細】
Cente TCP/IPv4では、以下の値が予測可能となっていました。

  • UDP,TCPの自動割り当てされる送信元ポート番号
  • DHCPv4のトランザクションID
  • IPv4ヘッダのID

予測された値を使用した第三者による通信妨害を受ける可能性があります。

【補足】
本情報はJVN(Japan Vulnerability Notes)サイトに公開済みです。
https://jvn.jp/vu/JVNVU94016877/index.html

【回避方法】
ソースコードの改変が必要です。
修正箇所については、support_XXXatmarkXXX_cente.jpまでお問い合わせください(XXXatmarkXXXは@にしてください)。

Cente TCP/IPv4

・SFTPdに対応
SSHファイル転送プロトコルに対応しました。

・FTPdで、LISTコマンドが正常動作しない場合があったのを修正した
FTPdで、ファイルの日付が不正な時(ファイルシステムが壊れている場合)、LISTコマンドが正常動作しない場合があったのを修正した。

・その他改善
環境によってはwarningが発生するコードがあったので修正した。

Cente TCP/IPv4

・Cente SSHdを同梱
Cente SSHdを同梱した(使用にはCente Compact Crypto Plus(別パッケージ)が必要)。

・DNScのsource port randomization実装
DNScのクエリ送信時、ソースポート番号を乱数化した。

・リトルエンディアンCPU環境ではIGMPv3でマルチキャストグループに参加できない場合がある
(Cente障害情報: 001-0070)

リトルエンディアンCPU環境で、IGMPv3でマルチキャストグループに参加できない場合があった。これを修正した。

・その他改善
環境によってはwarningが発生するコードがあったので修正した。

リトルエンディアンCPU環境ではIGMPv3でマルチキャストグループに参加できない場合がある

発行番号: Cente001-0070
Rev: 第1版
発行日: 2021/04/09
題名: リトルエンディアンCPU環境ではIGMPv3でマルチキャストグループに参加できない場合がある

適用製品
・Cente TCP/IPv4 Ver.1.20 – Ver.1.37
・Cente TCP/IPv4 SNMPv2 Ver.2.00 – Ver.2.22
・Cente TCP/IPv4 SNMPv3 Ver.2.00 – Ver.2.22
・Cente IPv6 Ver.1.20 – Ver.1.46
・Cente IPv6 SNMPv2 Ver.2.00 – Ver.2.22
・Cente IPv6 SNMPv3 Ver.2.00 – Ver.2.22

【該当するユーザ環境】
リトルエンディアンCPU環境で上記適用製品を使用し、IGMPv3でマルチキャストグループに参加するというユーザ。
IGMPv1やIGMPv2で運用している場合は非該当です。

【障害内容】
マルチキャスト対応ルータからIGMPv3 Membership Queryを受信しても正しく解釈できず、マルチキャストグループに参加できない場合があります。
リトルエンディアンCPU環境でのIGMPv3パケット受信時のパース処理に不具合がありました。

【回避方法】
下記いずれかの方法で回避してください。
・IGMPv1もしくはIGMPv2での運用を行う。
・ミドルウェアのソースコードを修正する。
詳細については、営業担当またはsupport_XXXatmarkXXX_cente.jpまでお問い合わせください(_XXXatmarkXXX_は@にしてください)。

Cente TCP/IPv4

・TCP Initial Sequence Number (ISN) RFC6528準拠
TCP Initial Sequence NumberをRFC6528準拠とした。

・ボードサポートパッケージの追加
ボードサポートパッケージにSTマイクロエレクトロニクス社 STM32756G-EVALを追加した。

・不正なDNS応答によって誤動作する可能性がある(Cente障害情報: 001-0068)
ホスト名をDNS解決する際、不正なDNS応答で、誤ったIPアドレスを返したり不正メモリアクセスする可能性があった。これを修正した。

・NULL終端のないリクエストでTFTPdが不正メモリアクセスする可能性がある(Cente障害情報: 001-0069)
ファイル名あるいはモード指定文字列にNUL終端のないTFTPリクエストで、TFTPdが不正メモリアクセスする可能性があった。これを修正した。

NUL終端のないリクエストでTFTPdが不正メモリアクセスする可能性がある

発行番号: Cente001-0069
Rev: 第1版
発行日: 2021/01/18
題名: NUL終端のないリクエストでTFTPdが不正メモリアクセスする可能性がある

適用製品
・Cente TCP/IPv4 Ver.1.00 – Ver.1.36
・Cente TCP/IPv4 SNMPv2 Ver.1.00 – Ver.2.22
・Cente TCP/IPv4 SNMPv3 Ver.2.00 – Ver.2.22
・Cente IPv6 Ver.1.00 – Ver.1.46
・Cente IPv6 SNMPv2 Ver.1.00 – Ver.2.22
・Cente IPv6 SNMPv3 Ver.2.00 – Ver.2.22

【該当するユーザ環境】
CenteミドルウェアのTFTPdが、ファイル名あるいはモード指定文字列にNUL終端(\0)がない不正なTFTPリクエストを受信する環境。

【障害内容】
CenteミドルウェアのTFTPdは、ファイル名とモード指定文字列のチェックが不十分でした。
このため、NUL終端がない不正なTFTPリクエストを受信した際、文字列処理でNUL終端を見つけるまで、受信データの有効範囲を超えてリード・ライトアクセスする可能性があります。
この不正メモリアクセスにより、例外の発生やプログラムの暴走の可能性があります。

【回避方法】
ミドルウェアのソースコードを修正し、リクエスト内容のチェックを強化します。
詳細については、営業担当またはsupport_XXXatmarkXXX_cente.jpまでお問い合わせください(_XXXatmarkXXX_は@にしてください)。

不正なDNS応答によって誤動作する可能性がある

発行番号: Cente001-0068
Rev: 第1版
発行日: 2020/12/21
題名: 不正なDNS応答によって誤動作する可能性がある

適用製品
・Cente TCP/IPv4 Ver.1.00 – Ver.1.36
・Cente TCP/IPv4 SNMPv2 Ver.1.00 – Ver.2.22
・Cente TCP/IPv4 SNMPv3 Ver.2.00 – Ver.2.22
・Cente IPv6 Ver.1.00 – Ver.1.46
・Cente IPv6 SNMPv2 Ver.1.00 – Ver.2.22
・Cente IPv6 SNMPv3 Ver.2.00 – Ver.2.22

【該当するユーザ環境】
以下の不正な応答を返すDNSサーバが存在する環境。
– 不正に短い応答をする。
– 偽装したIDで応答する。

【障害内容】
CenteミドルウェアのDNSクライアントは、DNSサーバの応答のチェックに不十分なところがありました。このため、不正に短い応答や、偽装したIDで応答された場合、以下のような誤動作の可能性があります。
– get_ipaddr(), get_ip6addr()が誤ったIPアドレスを返す。
– 不正なメモリ参照を行う。

【回避方法】
ミドルウェアのソースコードを修正し、応答のチェックを強化します。
詳細については、営業担当またはsupport_XXXatmarkXXX_cente.jpまでお問い合わせください(_XXXatmarkXXX_は@にしてください)。

Cente TCP/IPv4

・Gratuitous ARP対応

リンクアップや任意のタイミングでGratuitous ARPを送信する機能を追加した。

・ボードサポートパッケージの変更

ボードサポートパッケージを以下の3機種とした。
‐ コンピューテックス社 CKB-RZ/A1H
‐ ルネサスエレクトロニクス社 RSK+RX65N
‐ ルネサスエレクトロニクス社 RSK+RX71M

・ctbind()がエラーを返した後、条件を変えずに再度実行すると正常終了する(Cente障害情報:001-0055)

ポート番号の重複でctbind()がエラーを返した後、そのまま再度ctbind()を実行すると正常終了していた。これを修正した。

・IPアドレス割り当て完了までの時間が長いことがある(Cente障害情報:001-0056)

使用するDHCPdによっては、受信するOfferを無視してしまいIPアドレス割り当て完了までの時間が長く見えることがあった。これを修正した。

・FTPdで、カレントディレクトリのパス文字列が長い場合、1つ上のディレクトリに移動できないことがある(Cente障害情報:001-0057)

パス文字列長が最大値のときに、相対パス”..”を正しく処理できずディレクトリ移動できない場合があった。これを修正した。

・FTPdで、制御ポート受信タイムアウト時間が定義と異なる場合がある(Cente障害情報:001-0058)

NLST, LIST, STOR, RETRコマンドで、データポートで通信した場合に、制御ポートの受信タイムアウトが正しくない場合があった。これを修正した。

・TCP切断API実行後、一定時間内にデータ受信があった場合に意図しないメモリ書き込みが発生する(Cente障害情報:001-0059)

TCP切断APIを実行した直後に通信相手からデータを受信すると、それまで受信バッファとして指定されていたメモリ領域にデータを書き込んでいた。これを修正した。

・まれに送信元が「0.0.0.0」のIPパケットを送信する(Cente障害情報:001-0060)

「自IPアドレス確定」、「送信IPパケットの構築」、「IPパケットの送信処理」のタイミングによって、「自IPアドレスが未確定なので送信パケットは送信せず破棄する」という処理が動作しないケースがあった。これを修正した。

・DHCPで割り当てられたIPアドレスが不適切でもそれを使用してしまう(Cente障害情報:001-0061)

DHCPサーバから割り当てられたIPアドレスが不適切(マルチキャストアドレスやブロードキャストアドレスなど)でも、そのまま使用していた。これを修正した。

・リンクダウン状態でTCP接続APIを実行し、その後リンクアップしても接続できない(Cente障害情報:001-0062)

リンクダウン状態でTCP接続APIを呼び出し、その後リンクアップすると、TCPSYNを再送するが、このときの送信元IPアドレスが0.0.0.0となってしまい、接続が完了しない症状となっていた。これを修正した。

・DNS解決に失敗することがある(Cente障害情報:001-0063)

ホスト名をDNS解決する際、DNSサーバからIPアドレスではなくCNAMEを受信した場合、CNAMEが圧縮されているケースで正しく処理できない場合があった。これを修正した。また、受信DNSパケットの長さチェックを強化した。

・不正なICMPリダイレクトパケットで、ルータ(デフォルトゲートウェイ)の設定が不正となることがある(Cente障害情報:001-0064)

ICMPリダイレクトパケット受信時のパケット長のチェックが不足しており、不正なパケットでも、破棄せずに処理していた。これを修正した。

・通信品質が悪い環境で繰り返しtcp_con_cep()を呼び出すと、tcp_con_cep()から戻らないことがある(Cente障害情報:001-0065)

通信品質が悪い環境などで繰り返しTCP発信を行うと、RSTの受信とSYNの再送がほぼ同時に発生すると、まれにtcp_con_cep()から返らないことがあった。これを修正した。

・TFTPdのエラーを不適切なLAN I/Fへ送信することがある(Cente障害情報:001-0066)

TFTPdは存在しないファイルを要求した場合などにTFTPcにエラーを返すが、マルチIP環境で複数のI/FでTFTPdを使用している場合にエラーをデフォルトI/Fに送信していた。これを修正した。

・TFTPcでアスキーモードが使用できない(Cente障害情報:001-0067)

PUT、GETのAPIでアスキーモードを指定してもバイナリモードで動作していた。これを修正した。

Page 1 of 9