Cente TCP/IPv4

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でアスキーモードを指定してもバイナリモードで動作していた。これを修正した。

TFTPcでアスキーモードが使用できない

発行番号: Cente001-0067
Rev: 第1版
発行日: 2020/07/27
題名: TFTPcでアスキーモードが使用できない

適用製品:
・Cente TCP/IPv4 Ver.1.00 – Ver.1.35
・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.45
・Cente IPv6 SNMPv2 Ver.1.00 – Ver.2.22
・Cente IPv6 SNMPv3 Ver.2.00 – Ver.2.22

【該当するユーザ環境】
TFTPc(TFTPクライアント)でアスキー(netascii)モードを使用するユーザ。

【障害内容】
TFTPcの動作モードの指定に不具合がありました。tftpc_put(), tftpc_put_ip46(), tftpc_get(), tftpc_get_ip46()の各APIにTFTP_STATUS_ASCIIを渡すと、アスキーモード転送となるのが仕様ですが、バイナリ(octet)モードで動作していました。

【発生理由】
TFTPcのAPIへTFTP_STATUS_ASCIIを渡した場合、TFTPd(TFTPサーバ)へnetasciiモードを指定するのが正しい動作です。しかし、TFTPdへoctetモードを指定していました。

【回避方法】
ミドルウェアのソースコードを修正し、TFTPdへ正しいモードを指定するようにします。
詳細については、営業担当またはsupport_XXXatmarkXXX_cente.jpまでお問い合わせください(_XXXatmarkXXX_は@にしてください)。

SNMPのipAddressSpinLockのSET動作で値が変化しない

発行日: 2020/07/17
題名: SNMPのipAddressSpinLockのSET動作で値が変化しない

適用製品
・Cente TCP/IPv4 SNMPv2 Ver2.10 – Ver2.22
・Cente TCP/IPv4 SNMPv3 Ver2.10 – Ver2.22
・Cente IPv6 SNMPv2 Ver2.10 – Ver2.22
・Cente IPv6 SNMPv3 Ver2.10 – Ver2.22

【該当するユーザ環境】
SNMPでIP MIBのipAddressSpinLock (OID 1.3.6.1.2.1.4.33)へSETを実行するユーザ。

【障害内容】
ipAddressSpinLockはIP MIBに属する項目です。この項目はSNMPマネージャがこのテーブル内のエントリを生成または変更する際にアクセスし、SETする値と内部で保持している値が一致していた場合に1増加させてOKを返す仕様です。ところが、上記適用製品に記載のあるバージョンでは内部で保持している値が増加していませんでした。2回目以降のSETが失敗します。

【発生理由】
1増加させる処理の実装に誤りがありました。

【回避方法】
ソースコードを修正し、正しく値が増加するよう修正します。
修正箇所については、support_XXXatmarkXXX_cente.jpまでお問い合わせください(_XXXatmarkXXX_は@にしてください)。

tcp_con_cep()によるTCP発信時に接続相手からRSTを受信すると、まれにtcp_con_cep()から返らないことがある現象について

発行日: 2020/07/15
題名: tcp_con_cep()によるTCP発信時に接続相手からRSTを受信すると、まれにtcp_con_cep()から返らないことがある現象について
適用製品:
・Cente TCP/IPv4 Ver.1.12 – Ver.1.35
・Cente TCP/IPv4 SNMPv2 Ver.1.11 – Ver.2.22
・Cente TCP/IPv4 SNMPv3 Ver.2.00 – Ver.2.22
・Cente IPv6 Ver.1.11 – Ver.1.45
・Cente IPv6 SNMPv2 Ver.1.11 – Ver.2.22
・Cente IPv6 SNMPv3 Ver.2.00 – Ver.2.22

【該当するユーザ環境】
以下の条件のいずれかに該当するユーザ
・ユーザアプリケーションからtcp_con_cep()、tcp_con_cep_ip46()にてTCP発信する
・FTPc、HTTPcなど、CenteパッケージのアプリケーションにてTCP発信する
なお、ctconnect()でTCP発信しているユーザアプリケーションは非該当です。

【障害内容】
通信相手がTCP着信準備ができていない場合、TCP接続のためのSYN送信に対して、RST(着信拒否)が返ります。通常はそれによってtcp_con_cep()からE_CLSが返ります。しかし、通信品質が悪い環境などでRSTの受信とSYNの再送がほぼ同時に発生すると、まれにtcp_con_cep()から返らないことがありました。

【発生理由】
ある限定された条件下において、TCP送信タスクがセマフォを確保したまま処理を終了させていました。それによって、tcp_con_cep()がエラー終了するときのセマフォが確保待ちで停止していました。

【回避方法】
ソースコードの修正が必要です。
TCP送信タスクにおいて、不足していたセマフォ解放処理を追加します。
詳細については、営業担当またはsupport_XXXatmarkXXX_cente.jpまでお問い合わせください(_XXXatmarkXXX_は@にしてください)。

TFTPdのエラーを不適切なLAN I/Fへ送信することがある

発行日: 2020/07/15
題名: TFTPdのエラーを不適切なLAN I/Fへ送信することがある

適用製品:
・Cente TCP/IPv4 Ver.1.00 – Ver.1.35
・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.45
・Cente IPv6 SNMPv2 Ver.1.00 – Ver.2.22
・Cente IPv6 SNMPv3 Ver.2.00 – Ver.2.22

【該当するユーザ環境】
マルチIP機能で複数のLAN I/F(以下単にI/Fとします)を使用し、Cente TCP/IPのTFTPd(TFTPサーバ)を使用するユーザ。

【障害内容】
TFTPc(クライアント)が、TFTPdに存在しないファイルを要求した場合などに、TFTPdはTFTPcにエラーを返しますが、エラーをデフォルトのI/F(複数あるうちの最初のI/F)へ送信していました。このため、デフォルト以外のI/FでTFTPcを使用してエラーした場合、TFTPcはそのエラーを受信できず、タイムアウトでエラー終了していました。

【発生理由】
TFTPdのエラーを、TFTPcのリクエストを受信したI/Fではなく、デフォルトのI/Fへ送信していたためです。

【回避方法】
ミドルウェアのソースコードを修正し、TFTPdのエラーを、適切なI/Fへ送信するようにします。
詳細については、営業担当またはsupport_XXXatmarkXXX_cente.jpまでお問い合わせください(_XXXatmarkXXX_は@にしてください)。

DNS解決に失敗することがある

発行日: 2020/07/06
題名: DNS解決に失敗することがある

適用製品:
・Cente TCP/IPv4 Ver.1.00 – Ver.1.35
・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.45
・Cente IPv6 SNMPv2 Ver.1.00 – Ver.2.22
・Cente IPv6 SNMPv3 Ver.2.00 – Ver.2.22

【該当するユーザ環境】
get_ipaddr(), get_ip6addr()でホスト名をDNS解決する際、DNSサーバの応答が以下の3条件をすべて満たす環境。
– IPアドレスではなくCNAMEを返す。
– CNAMEが圧縮されている(オフセット表現されている)。
– オフセット値が255を超えている。

【障害内容】
ホスト名をDNS解決する際、DNSサーバがIPアドレスを返さず、CNAMEを返すことがあります。この場合、CNAMEからIPアドレスを再度解決します。CNAMEが圧縮されている場合(オフセット表現の場合)、オフセットは14bitの値ですが、8bitで扱っていました。ホスト名として、長い名前や、多くの名前がある場合に、オフセットが大きくなります。オフセットが8bit表現(255)を超える場合、DNS解決に失敗し、get_ipaddr(), get_ip6addr()はエラーを返します。

【発生理由】
ホスト名が圧縮されている場合(オフセット表現の場合)、オフセットは14bitの値ですが、8bitで扱っていたためです。

【回避方法】
ミドルウェアのソースコードを修正し、圧縮表現のオフセットを正しく扱うことで、回避できます。
詳細については、営業担当またはsupport窓口までお問い合わせください。

不正なICMPリダイレクトパケットで、ルータ(デフォルトゲートウェイ)の設定が不正となることがある

発行日: 2020/07/06
題名: 不正なICMPリダイレクトパケットで、ルータ(デフォルトゲートウェイ)の設定が不正となることがある
適用製品:
・Cente TCP/IPv4 Ver.1.00 – Ver.1.35
・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.45
・Cente IPv6 SNMPv2 Ver.1.00 – Ver.2.22
・Cente IPv6 SNMPv3 Ver.2.00 – Ver.2.22

【該当するユーザ環境】
不正なICMPリダイレクトパケットを受信するユーザ環境。

【障害内容】
ICMPリダイレクトは、一般に、ルータからホスト(Cente TCP/IP実装機器など)へ、よりよい経路にあるルータを知らせるために送信されます。
ICMPリダイレクトパケット受信時のパケット長のチェックが不足しており、不正なパケットでも、破棄せずに処理していました。このため、ルータ(デフォルトゲートウェイ)の設定が、不正となる可能性があります。

【発生理由】
ICMPリダイレクトパケット受信時のパケット長のチェックが不足しており、不正なパケットでも、破棄せずに処理していたためです。

【回避方法】
ミドルウェアのソースコードを修正し、不正なICMPパケットを破棄することで、回避できます。
詳細については、営業担当またはsupport窓口までお問い合わせください。

Page 2 of 12