世界を動かす技術を、日本語で。

StarDictがX11クリップボードをリモートサーバーに送信する

2025年8月12日原文(lwn.net)

概要

  • StarDict はクロスプラットフォームの辞書アプリで、セキュリティ問題が指摘された。
  • デフォルト設定でユーザーのテキスト選択が 暗号化されずに外部送信 される仕様。
  • Wayland ではこの問題が発生しないが、X11環境ではリスクが残存。
  • プラグインと機能のデフォルト有効化が プライバシー懸念 の主因。
  • オープンソースのセキュリティ維持には 開発者・保守者の意識 が不可欠。

StarDictのセキュリティ問題とDebianでの対応

  • StarDictGPLv3ライセンス の辞書アプリケーション。
  • 多言語辞書と 豊富なプラグインエコシステム を搭載。
  • デフォルト設定で ユーザーのテキスト選択暗号化されていないHTTPdict.youdao.com および dict.cn に送信される仕様。
    • X11環境 のDebianで特に問題化。
  • 問題は Vincent Lefevre がDebian 13("trixie")リリース前に検出、oss-securityメーリングリストとDebianバグトラッカーに報告。
  • StarDict をインストールすると stardict-plugin パッケージも推奨で自動インストール。
    • YouDaoプラグインdict.cnプラグイン を含む構成。
  • スキャン機能 がデフォルトで有効化されており、マウスで選択したテキストが自動で翻訳されるポップアップ機能。
    • この機能により、 選択テキストが自動で外部送信 される挙動。

プライバシーとセキュリティの懸念

  • Wayland環境 ではアプリケーション間のテキスト取得が制限されるため、同様の問題は発生しない。
    • ただし、Waylandではスキャン機能自体が動作しない制約。
  • Debianパッケージメンテナの Xiao Sheng Wen は「機能は無効化可能」と主張。
    • Lefevreは「 プライバシーに関わる機能はデフォルトで無効にすべき」と反論。
  • パッケージ説明にスキャン機能の記載はあるが、「 オンラインサービス利用」の明示はなかった。
  • Xiaoはネットワーク辞書プラグインの分離も提案したが、必要性に懐疑的。

過去の同様事例と対応

  • 2009年と2015年にも 同様の問題 が報告。
    • 2009年はデフォルト設定変更で一時対処。
    • 2015年は stardict_dictdotcn.so プラグイン削除で対処、YouDaoプラグインには未対応。
  • Xiaoは2015年当時のメンテナではなかったが、2021年には問題を認識していた。

利用者数と影響

  • Debianのパッケージ統計では StarDict利用者は178人 (2009~2015年は約1000人)。
  • 統計に参加していないユーザーもいるが、 数年間にわたり選択テキストが送信 されていた可能性。
    • パスワードや機密文書の一部が意図せず送信されるリスク。

オープンソースとセキュリティ文化

  • Debianは多数のパッケージを保持し、安定性重視で 古いソフトウェアも多い
  • Linusの法則」は実際には「十分な監視と対応意識」がなければ成立しない現実。
  • Wayland移行 の一因はアプリ間スパイ行為の防止。
  • 深刻なセキュリティ問題が 報告後も未修正 のまま残る現状への警鐘。
  • Linuxのセキュリティ評価維持には 開発者・保守者・ユーザー全体の問題意識 が不可欠。

Hackerたちの意見

こういうことになると、悪意を疑わないのは難しいよね。メンテナーからのコメント: 「stardictには「スキャン」機能があって、ユーザーがこの機能を有効にすると、テキストを選択した後にstardictがその選択したテキストを翻訳するんだ… なんでユーザーが機密データを選んで辞書を問い合わせるの?」

外国語のテキストが機密だって気づかないなんて面白いよね…もしかしたら「秘密」ってスタンプ押されてるかも。「おい、敵の翻訳サーバーにエラーが出てるって情報が入ったぞ。」

各クリップボードでローカル辞書を問い合わせるのはまあいいと思う。リモート辞書をリクエストする機能も悪くないし、両方を簡単に組み合わせるのは微妙だけど理解できる(特別なフラグにした方が良いかも)。でもデフォルトで組み合わせるのは、ちょっと悪意を感じる。

もちろん辞書プログラムには辞書を提供するウェブサイトと通信するコードが含まれるよね。それが当たり前だとは言えないけど、もしapt-getで辞書をインストールしたら、全部自分のマシンに入ってると思うかも。何世紀も前から物理的な本の辞書があったわけだし… stardictはオンラインのものっぽいけど、正当な理由があるのかもしれないけど、全体的に罠に見える。

バカな質問かもしれないけど… チェックしてる単語を実際に開示せずにオンラインスペルチェックをするために、単語ごとのブルームフィルターを使うことはできないの?

たとえ「正当」だとしても、暗号化されてないHTTPを使うべきじゃないよね。

これは世代の問題だと思う。アプリが自分のところに連絡することを期待している人は、ローカルにインストールされたソフトウェアが何とも話さない世界を知らない若い人だと思う。著者のプロフィールを調べると、これが当てはまるみたい。彼らはしっかりしたCSのバックグラウンドを持っていて、オフライン辞書を持つ翻訳ポップアップのような辞書プログラムを知っているはずだ。でも、彼らはその時代の人で、特有の「もちろん」があるんだ。今の時代、ローカルにインストールされてオフラインデータで動くアプリは、残り少ないコンピュータのドン・キホーテたちが広めるような、ちょっと古風な騎士道の声明みたいだ。悲しいことに、これを言うのは。だから、この比喩にはあまり楽しさを感じない。

ある時から、ネットアクセスなしでGUIアプリを動かすようになったんだ。最初はfirejail、次にbubblewrapを使って。それがflatpakが出る前の話。今でも、アプリをサンドボックスで動かすために、時間をかけて集めたbashスクリプトのコレクションを使ってるよ。

それ、私も気になった。人々が簡単な機能すらライブサービスだと期待するなんて、悲しい世界だよね。

~> wc -cl /usr/share/dict/words 235976 2493885 /usr/share/dict/words 一般的なUnixのプリインストール辞書を使うプログラムがあってもおかしくないよね。

こんなクソみたいなことがあるから、俺はずっと雇われる自信があるよ。最新のトレンドにはついていけてないかもしれないけど、少なくともコンピュータがどう動くか、何ができるかは理解してるからね。

古き良きdingはローカル辞書とうまく連携してるよね。Debianにもパッケージされてるし。 https://www-user.tu-chemnitz.de/~fri/ding/

Hacker Newsで議論の続きを見る