wolfSSHの新しいバージョンv1.4.22をリリースしました。今回は主に不具合修正のためのリリースです。他のSSH実装との相互運用性を向上させ、いくつかのIDE、Zephyr、LwIPを使用してビルドプロセスを改善しました。また、Renesas RX72NプラットフォームのSFTPクライアントのサンプルコードを追加しました。
また、重大な脆弱性対応もあります。wolfSSHの鍵交換ステートマシンが不正操作され、クライアントの平文パスワードを漏洩したり、クライアントに偽の署名を送信させたり、ユーザー認証を省略させたりできてしまう可能性があります。この問題はメッセージチェックの改善によって修正し、既知の特定の攻撃はありませんが、アップグレードすることを推奨します。CVE-2025-14942をご参照ください。
そのほか、重要度:中の脆弱性問題への対応も含んでいます。SCPやSFTPでファイルパスをクリーンアップする際、コードがファイルパスの末尾を1バイト分読み取ってしまう可能性があります。CVE-2025-15382 をご参照ください。
詳細は変更ログをご覧ください。
脆弱性
- [重要度:高] CVE-2025-14942
wolfSSHの鍵交換ステートマシンが不正操作され、クライアントの平文パスワードを漏洩したり、クライアントに偽の署名を送信させたり、ユーザー認証を省略させたりできてしまう可能性があります。これは、wolfSSHバージョン1.4.21以前のクライアントアプリケーションに影響します。wolfSSHをご利用の方は、wolfSSH v1.4.22へのアップデートが必要です。また、使用する認証情報の更新を推奨します。この修正は、wolfSSHサーバアプリケーションにも推奨されます。具体的な攻撃は報告されていませんが、同じ問題が存在します。報告いただいたValeoのAina Toky RasoamananaさんとTelecom SudParisのOlivier Levillainさんに感謝します。 - [重要度:中] CVE-2025-15382
パス文字列をクリーンアップする関数が、文字列の末尾から境界外の1バイト分を読み取ってしまう可能性があります。この関数は、wolfSSH の SCP 処理で使用されます。これは、wolfSSH バージョン 1.4.12 から 1.4.21 までを含むサーバーアプリケーションに影響します。報告いただいた Aisle Research の Luigino Camastra さんに感謝します。
新機能
- Renesas RX72N プラットフォーム用の完全な SFTP クライアントサンプルを追加
- RX72N サンプル用に TSIP サポートを有効化し、クリーンアップされたコンフィグレーションヘッダーを提供
- Visual Studio プロジェクトファイルに FIPS 対応のビルドコンフィグレーションを追加
- 新しい FIPS 対応 Visual Studio コンフィグレーションのビルドと使用方法を説明したドキュメントを追加
- エラーパスと正常動作を含むSSH エージェントの署名に関するリグレッションテストの導入
- デッドロックを起こさないために、WANT_READ / WANT_WRITE の経路を明示的に実行するリグレッションテストを追加
改善点
- GetString() と GetStringAlloc() を GetStringRef() に統合することで SSH の文字列解析をリファクタリングし、メンテナンスの簡素化と重複を削減
- 明示的な期待メッセージ追跡とより明確なメッセージ ID 範囲マクロを導入することで、SSH メッセージ順序の検証を強化
- より厳格なクライアント実装と動作を整合させるため、サーバー側のアウトオブオーダーメッセージのチェックを改善
- 受信処理を優先することで、ウィンドウバックプレッシャー下におけるワーカースレッドの動作を改善し、小さなウィンドウの SFTP クライアントにおけるストールを防止
- レスポンスタイプの検証、メッセージ ID の追跡、厳格なバッファサイズ制限の適用により、SSH エージェント処理ロジックを強化
- ファイルシステムへのアクセス前にクライアントが指定したベースパスを正規化することで、SCPのパス処理を改善
- 非標準の <sys/errno.h> インクルードを標準の <errno.h> に置き換えることで、移植性を向上
- デバッグが無効の場合に WLOG をノーオペレーションとして定義することで、ログ記録のオーバーヘッドを削減
- ドキュメントを更新し、現在の機能、例、ビルドオプションをより適切に反映
修正
- SCP のファイルパスをクリーンアップする際に発生する一文字ずれた読み取りによるエラーを修正
- パケット解析における長さ 0 の SSH 文字列の不適切な処理を修正
- ブロック送信がウィンドウ調整処理を妨げることで発生するワーカースレッドのデッドロックを修正
- 二重解放によるクラッシュを修正し、エラー発生時におけるソケットクローズのスピンループを排除
- 認証中に未定義の動作を引き起こす可能性のある、初期化されていない認証データを修正
- クロス実装テストで発見されたSFTPの初期化におけるチャネルデータ処理の修正により、潜在的なSFTP接続の相互運用性の問題を解決
- パス区切り文字またはドット文字を含無用なディレクトリを横断するファイル名を拒否するようSCP受信処理を修正
- 厳密なコンパイラ警告でビルドエラーの原因となっていたwc_SSH_KDFの宣言不足を修正
- リグレッションテストが意図したコードパスを実行するようにSSHエージェントのテスト設定を修
- Zephyrテストモデルと互換性のないスタンドアロンのリグレッションテストをZephyrビルドから除外
ご質問やお問い合わせは info@wolfssl.jpまでお寄せください。