FreeRDPはバージョン3.31.0をリリースしました。これは、広く利用されているRDP(リモートデスクトッププロトコル)のオープンソース実装において、公表済みの22件の脆弱性を修正する大規模なセキュリティ・安定性アップデートです。
プロジェクトのメンテナーはこのリリースを「大規模なバグ修正およびセキュリティリリース」と説明しており、対処した問題の深刻度を踏まえ、ディストリビューターに対して可及的速やかなアップデートを呼びかけています。
今回のアップデートは、Linuxデスクトップ環境、リモートアクセスクライアント、シンクライアント、RDPゲートウェイ、仮想化コンソール、組み込みシステム、アプリケーション配信製品でFreeRDPを利用している組織にとって重要な意味を持ちます。
今回のリリースでは、ヒープオーバーフローの脆弱性を含む複数のメモリ安全性の問題に加え、認証前に悪用可能なサービス拒否(DoS)の脆弱性も修正されています。
認証前に悪用可能な不具合は特に重要です。未認証の攻撃者が、正規ユーザーがログイン処理を完了する前に、外部公開されているRDP関連サービスをクラッシュさせたり、動作を妨害したりできる可能性があるためです。
メモリ破損系の脆弱性は、また異なるリスクをもたらします。影響を受けるコンポーネントや悪用可能性、実行時の防御機構によっては、ヒープオーバーフローのような不具合がアプリケーションのクラッシュ、情報漏えい、さらには潜在的なコード実行につながる可能性があります。
FreeRDPプロジェクトは、簡潔なリリースアナウンスの中で個々の脆弱性すべてを公に詳述してはいませんが、関連するセキュリティアドバイザリ22件へのリンクを公開しています。
FreeRDPはRDPのクライアント実装とサーバー実装の両方で使用されており、プロトコルネゴシエーション、ネットワークレベル認証(NLA)、グラフィックスレンダリング、仮想チャネル、デバイスおよびプリンターのリダイレクト、スマートカードサポート、クリップボード共有、オーディオ、RDPゲートウェイ通信といった機能を含んでいます。
つまり、実際の影響範囲はデスクトップユーザーだけにとどまりません。悪意あるRDPサーバーが脆弱なクライアントを標的にする可能性がある一方で、外部公開されたサーバーやプロキシ、ゲートウェイが信頼できないリモートユーザーからの悪意あるネットワークトラフィックを処理してしまう恐れもあります。
今回の修正では、FreeRDPの開発者はAVC444v2のクロマ処理をデコード済みフレーム幅の範囲内に制限したほか、NTLMデータのコピーをより小さい方の入力エンティティに限定し、アクセス前に最小16バイトの署名バッファを確保することを義務付け、RDPゲートウェイの認可トンネル応答を受信データ長の範囲内に制限しました。
今回のアップデートでは、プリンタードライバーに関連する解放済みメモリ使用(use-after-free)の問題も修正されているほか、再割り当て処理の改善、NULLポインタチェックの追加、ストリーム検証の強化も図られています。
Akallabeth氏はさらに、RemoteApp Integrated Locally(RAIL)および動的チャネル処理に関わる競合状態(レースコンディション)も解消しました。
これら一連の変更は、RDPソフトウェアにおける共通の防御上の優先事項を反映したものです。すなわち、攻撃者が制御可能な長さの値に対する厳格な検証、安全なメモリ所有権の管理、正しいバッファ境界の設定、非同期プロトコルイベントに対する堅牢な処理です。
バージョン3.31.0では、互換性とパフォーマンスの改善も行われています。FreeRDPによれば、最適化されたYUVデコーダーにより、AVC/H.264セッションにおけるクライアント側のグラフィックス処理が高速化されるとのことです。
今回のリリースではさらに、ハードウェアデコーダーのサポートが拡張され、AV1デコードにはdav1dが使用されるようになりました。また、OpenSSLのBIO/SSL生成失敗、TLS AEADのデータ制限設定、Androidのクリップボード動作、SDLクライアントにおける過剰なCPU使用、OpenBSD・Cygwin・MinGW・BSD各プラットフォームに影響するビルド問題への対処も行われています。
管理者は、サードパーティ製リモートアクセス製品に組み込まれたライブラリも含め、導入済みのFreeRDPパッケージを棚卸しし、利用しているOSディストリビューターまたはFreeRDPの公式リリースチャネルからパッチ適用済みのビルドを入手する必要があります。
優先的にテストすべき対象としては、インターネットに公開されているゲートウェイ、共有ワークステーション、グラフィックス処理の負荷が高いRDP導入環境、デバイスリダイレクト機能を使用しているシステムが挙げられます。
直ちにパッチを適用できない場合、組織はネットワークセグメンテーション、VPNまたはゼロトラストのアクセス制御、IPアローリスト、サービスのクラッシュや異常な接続試行の監視といった対策により、RDPの露出を減らすべきです。
セキュリティチームに、不審な活動をより迅速に調査し、事業への影響が拡大する前に脅威を封じ込めるための可視性とコンテキストを提供しましょう。 ANY.RUNで調査を強化する
翻訳元: https://cyberpress.org/freerdp-3-31-0-fixes-22-security-flaws/