パソコンの画面を離れた場所から見て操作するソフト「TightVNC」と「UltraVNC」のWindows版ビューアー(接続する側のソフト)に、メモリーを壊される欠陥(CVE-2026-128321)が見つかった。米カーネギーメロン大学のCERTコーディネーションセンター(CERT/CC)が11月13日に公表し、JPCERTコーディネーションセンターと情報処理推進機構が運営する脆弱性情報サイト「JVN」も同日、注意を呼びかけた。攻撃者が用意したか乗っ取ったVNCサーバーに接続すると、細工した画面データでビューアーが止まり、任意のコードを実行されるおそれがある。UltraVNCは修正を済ませたが、TightVNCの版1.3.10については、CERT/CCが開発元と連絡を取れず、修正版が出ていない。

細工した画面データで、接続した側のメモリーが壊れる

VNCは、相手のパソコンの画面を手元に映し、マウスとキーボードで操作するための仕組みだ。操作される側で「VNCサーバー」を動かし、操作する側が「ビューアー」で接続する。通信の決まりは「RFB(リモート・フレームバッファー)」と呼ばれ、サーバーは画面の変化した部分を四角い区画ごとに送る。TightVNCとUltraVNCは、どちらも無料で使えるVNCソフトとして長く配布されてきた。

CERT/CCの公表文によると、欠陥は画面データの圧縮方式の一つ「Tight」のうち、JPEGで圧縮した区画を復元する処理にある。Windows版ビューアーの関数DecompressJpegRect()は、作業用のメモリーを「1行の幅は最大8192画素」と決め打ちして確保する。一方で、画素を変換して書き込む処理は、サーバーが申告した区画の幅をそのまま使い、確保したメモリーに収まるかを十分に確かめていなかった。サーバーが8192画素より広いJPEGの区画を送ると、確保した範囲の外へ書き込みが起きる。CERT/CCの試験では、256バイトの余白を含んだ確保の場合、幅が8257画素の区画から範囲外の書き込みが始まった。

サーバーは画面全体の大きさも自分で申告できる。このため、区画が画面の大きさに収まっているかを確かめるだけでは、この書き込みを防げないという。

防げないのは「接続先が悪意を持つ」場合

この欠陥が通常の遠隔操作の欠陥と違うのは、攻撃する側と攻撃される側の向きだ。攻撃者は、操作される側のVNCサーバーを用意するか乗っ取り、そこへ接続してきたビューアーを狙う。CERT/CCは、欠陥のあるビューアーが攻撃者の管理するサーバーとの接続を確立し、細工した画面の更新を処理することが攻撃の条件だとしている。

CERT/CCは、接続時の認証や通信の暗号化があっても、悪意のあるサーバーがその接続に加わっている限り、攻撃は防げないと明記した。パスワードで守られたサーバーでも、そのサーバー自体が乗っ取られていれば、正規の手順で接続した利用者が攻撃を受ける。

被害の程度について、CERT/CCは、メモリーを壊されたビューアーが終了し、遠隔操作が途切れると説明する。さらに、ビューアーを動かしている利用者の権限で任意のコードを実行されるおそれがある。ただし、試験で確認できたのはビューアーを止める「サービス妨害」までで、コードの実行は確かめていないとした。この欠陥はre9rchを名乗る人物がCERT/CCに報告した。

UltraVNCは版1.8.2.8で修正、最新は1.8.3.2

UltraVNCの開発チームは、この欠陥をすでに修正している。CERT/CCの公表文に載った開発チームの声明によると、修正のコミットは9月20日にGitHubへ取り込まれた。修正内容の説明には、作業用メモリーの大きさを実際の区画の幅に合わせて確保し、幅や高さが0以下か範囲外の区画は受け付けないようにしたとある。

UltraVNCの公式サイトの更新履歴は、版1.8.2.8の「Security」の項に、Tight JPEGの復元処理でのヒープのあふれを修正し、サーバーから送られる不正な画面更新に対するビューアーの防御を強めたと記している。この修正は、9月に公開した1.8.3.0の更新履歴にも含まれている。CERT/CCは、1.8.2.8の修正を含む現行の版へ更新するよう求め、例として1.8.3.1を挙げた。公式サイトの案内では、11月15日時点の最新の版は1.8.3.2だ。

UltraVNCは2026年に入って、ほかにも欠陥の修正を重ねている。6月の版1.8.2.3では、中継サーバー(リピーター)で認証の前にメモリーがあふれる欠陥など、CVE番号の付いた10件を修正した。

ソフト 対象 対応
UltraVNC Windows版ビューアーの修正前の版 1.8.2.8で修正。最新は1.8.3.2
TightVNC Windows版ビューアーの1.3.10 修正版なし。置き換えが勧められた
欠陥の対象と開発元の対応出典: CERT/CC「VU#644655」、UltraVNC公式サイトの更新履歴

TightVNCの1.3.10は開発元と連絡がつかず

TightVNCについて、CERT/CCは、開発元のGlavSoftと連絡を取れず、版1.3.10のWindows版ビューアーの修正を調整できなかったと公表した。公表文の製品ごとの欄でも、TightVNCは影響の有無が「Unknown(不明)」のままで、開発元の声明は寄せられていない。

CERT/CCは、該当するビューアーを、修正が確認された保守中の版か、別の手段に置き換えるよう利用者に求めた。修正したビューアーに切り替えるまでの間は、信頼できるVNCサーバーにだけ接続するよう勧めている。ただし、この方法は信頼していたサーバーが乗っ取られた場合には役に立たないとも付け加えた。

TightVNCの公式サイトのダウンロードページでは、現在の主な版は4.0.2と2.8.90で、1.3.10も「Stable Version(安定版)」として引き続き配布されている。同じページは、1.3.10がWindows 95以降に対応する一方、Windows Vistaや7以降では機能の一部に制限があるとして、2.8.90を勧めている。CERT/CCの公表文が対象として挙げたのは1.3.10だけで、2.x系と4.x系の版については触れていない。

利用者はどの版かを確かめて更新を

JVNは、この件をCERT/CCの公表を国内向けに伝える形で掲載し、対策の詳細はCERT/CCの公表文を参照するよう求めている。

UltraVNCを使っている場合は、ビューアーの版が1.8.2.8より前なら、公式サイトから最新の版を入れ直すことになる。TightVNCの1.3.10を使っている場合は、修正版が出る見込みが示されていないため、CERT/CCの勧めに従い、別のビューアーへ切り替える必要がある。どちらも、すぐに切り替えられない間は、接続先を自社で管理するサーバーなど、信頼できるものに絞ることが当面の対策になる。

外部とのやりとりに使うソフトの欠陥では、ここ数日も公表が相次いでいる。サーバーの遠隔ログインに使う「OpenSSHに認証回避の欠陥、侵入も確認 Alpine Linuxなどが対象」や、ウェブサーバーの「Apacheウェブサーバーに最高深刻度の欠陥 遠隔でコード実行のおそれ、2.4.71で修正」は、いずれもサーバー側のソフトが狙われる欠陥だった。今回のVNCの欠陥は、接続する側のパソコンが狙われる点で向きが逆になる。