FreeRDPに証明書検証の脆弱性、3.32.2で修正
FreeRDPのクライアントが接続先の証明書を正しく確認せず、なりすましのサーバーに接続するおそれがあります。FreeRDPを使うクライアントやゲートウェイを洗い出し、3.32.2以降に更新してください。
同じ発表の脆弱性 3 件
- CVE-2026-121392 高 9.1
- CVE-2026-121952 重大 9.8
- CVE-2026-121953 重大 9.8
急ぎ度: 早めに
CVSS v3は7.4、v4は9.1と高めで、修正版3.32.2が公開されているため、棚卸しと更新を早めに進める段階です。
関係があるか
FreeRDPを使ってRDPサーバーに接続するクライアントが対象です。Linuxのリモートデスクトップクライアントのほか、FreeRDPを内部に組み込んだ製品やゲートウェイを運用している組織も当てはまります。
| 製品 | 影響を受ける版 | 修正版 |
|---|---|---|
| FreeRDP | 3.32.2より前のすべての版 | 3.32.2 |
| FreeRDPを組み込んだ製品(リモートデスクトップクライアント、接続ゲートウェイなど) | 同梱しているFreeRDPが3.32.2より前の版 | 各ベンダーやディストリビューションの告知で確認してください |
確かめ方
- 1社内でFreeRDPを使うクライアントやゲートウェイを洗い出します。Remminaや、Apache Guacamoleのようにライブラリとして使う製品は、利用者が気づきにくいので見落とさないようにします。
- 2
xfreerdp /versionで、インストールされているFreeRDPの版を確認します。3.32.2より前なら対象です。 - 3FreeRDPを組み込んだ製品は、製品側の告知で同梱している版と修正版の有無を確認します。
- 4Windows標準のリモートデスクトップ接続はFreeRDPを使わないため、この脆弱性の対象ではありません。
何が起きたか
FreeRDPのクライアントに、接続先サーバーの証明書を確認する処理の不備が見つかりました。本来なら拒否すべき証明書を受け入れてしまい、接続先が本物かどうかの確認をすり抜けられます。
問題があるのは tls_verify_certificate() の名前の照合です。証明書にSANという名前の一覧があり、接続先と一致しないのに、古い形式のCommon Nameで照合を続けて受け入れてしまいます。IPアドレスで接続したときも、IPアドレスをDNS名の文字列と突き合わせて一致と判定します。
FreeRDPは3.32.2で修正しました。
攻撃の流れ
-
1
経路に割り込む
攻撃者がクライアントとRDPサーバーの通信の途中に入ります。
-
2
別の証明書を提示
接続先と名前が一致しない証明書を、偽のサーバーとして見せます。
-
3
検証を通過
FreeRDPが名前の照合を誤り、証明書を受け入れます。
-
4
セッションを傍受
入力したキー、クリップボード、画面の内容が攻撃者に渡ります。
どう悪用されるか
認証は要りません。利用者に特別な操作を求める必要もなく、ネットワーク経由で攻撃されます。ただし、攻撃者はクライアントとサーバーの通信経路の途中に入れる位置にいて、さらにクライアントが信頼している認証局(CA)の発行した証明書を持っていなければなりません。このため、誰でも簡単に攻撃できる脆弱性ではありません。CVSS v3で攻撃の複雑さが高と評価されているのも、この二つの条件が理由です。
条件がそろうと、RDPセッションの中身がそのまま見えます。リモート先で入力したパスワードなどのキー入力、コピーした内容、画面の表示が対象です。評価では改ざんの影響も高とされており、盗み見だけでは終わらない前提で考えたほうが安全です。
今すぐやること
-
1
FreeRDPを使う環境を洗い出す
クライアントPC、踏み台、接続ゲートウェイのほか、FreeRDPを組み込んだ製品を一覧にします。製品の画面に「FreeRDP」と出ないものも多いので、導入元の資料やパッケージ一覧から探します。
xfreerdp /version -
2
修正版に更新する
FreeRDPを単体で入れている環境は、修正版に更新します。パッケージで入れている場合は、ディストリビューションが配る更新を当てます。
-
3
組み込み製品はベンダーの告知を確認する
Remminaなどのクライアントやゲートウェイ製品は、製品側がFreeRDPを同梱していることがあります。ベンダーの告知で、対応版の有無と更新の時期を確認します。FreeRDPのセキュリティアドバイザリも参照してください。
-
4
更新までの間は接続経路を絞る
更新できないクライアントは、社外の公衆ネットワークからの接続や、経路の管理が行き届かない場所からの接続を減らします。
すぐ更新できないとき
更新できない間は、FreeRDPを使うクライアントからの接続を社内ネットワークやVPN経由に限り、経路の途中に第三者が入れる場面を減らします。この対策で脆弱性自体が消えるわけではないので、更新までのつなぎとして扱ってください。
背景
FreeRDPはオープンソースのRDP実装で、単体のクライアントとしてだけでなく、ライブラリとして多くのリモートデスクトップクライアントや接続ゲートウェイに組み込まれています。ライブラリ側の脆弱性は、それを使う製品ごとに更新の時期が違うため、自社が使っている全製品に修正が届くまで時間がかかります。
RDPの接続では、クライアントが「いま届いた証明書は、自分が接続しようとした相手のものか」を名前で照合します。現在の一般的な作法では、SANがある証明書はSANだけを見て、IPアドレスはIPアドレス用の項目と突き合わせます。今回の不備は、この照合の二つの決まりを守っていなかった点にあります。RDPのサーバーでは自己署名証明書を使い、警告を承諾して使い続ける運用も少なくありません。それに対して、社内CAや公的なCAの証明書で名前を検証している環境は、この照合を安全の拠り所にしています。今回の脆弱性が影響するのは、その環境です。
よくある質問
Q.接続先のRDPサーバーがWindowsなら、サーバー側も更新が必要ですか。
Q.ディストリビューションのパッケージの版が3.32.2より前のままですが、未対応と判断してよいですか。
この記事は、取得元の公開情報をもとに、人が監修しながらAIを活用して執筆しています。執筆と監修は佐々木 航が担い、公開したあとも人が内容を確認しています。誤りに気づいたときは直し、記事の末尾に訂正の行を残します。対応を決める前に、下の原文と参照先も確認してください。
影響パッケージ
| 種類 | パッケージ | 影響を受ける版 | 修正版 |
|---|---|---|---|
| FreeRDP | FreeRDP |
3.32.2 未満 |
3.32.2 |
ディストリビューション別の修正状況
各ディストリビューションが公開している、この CVE の修正パッケージ修正版は配布版ごとに違うので、リンク先で確かめてください。
- Debian DEBIAN-CVE-2026-121392 freerdp2
- Ubuntu UBUNTU-CVE-2026-121392 freerdp
原文の説明 取得元が公開している説明をそのまま載せています (多くは英語)。
FreeRDP before 3.32.2 contains an improper certificate validation vulnerability in tls_verify_certificate() that accepts Common Name fallback despite non-matching SAN entries and matches IP literals against DNS strings. Man-in-the-middle attackers holding a certificate from a client-trusted CA can bypass server identity checks to intercept RDP sessions, including keystrokes, clipboard, and screen content.
出典: CVE.org (CVE Program・cvelistV5) NVD GitHub Advisory
参照URL
- advisory github.com
- advisory vulncheck.com
- advisory nvd.nist.gov
- advisory github.com
- REDHAT Red Hat
- web github.com