Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【ITニュース解説】1Password CLI Vulnerability (2023)

2025年10月05日に「Hacker News」が公開したITニュース「1Password CLI Vulnerability (2023)」について初心者にもわかりやすく解説しています。

作成日: 更新日:

ITニュース概要

パスワード管理サービス「1Password」のコマンドラインツール(CLI)に、セキュリティ上の弱点である「脆弱性」が見つかった。この弱点が悪用されると、保存された情報が不正に利用される恐れがある。

出典: 1Password CLI Vulnerability (2023) | Hacker News公開日:

ITニュース解説

1Password CLIにおける2023年の脆弱性は、パスワード管理の安全性に深く関わる重要なセキュリティ問題だった。この脆弱性は、特にコマンドラインインターフェース(CLI)を使って1Passwordを利用するユーザーに影響を与え、セッション情報が適切に保護されていないことに起因する。

まず、1Password CLIとは何かを理解しよう。これは、ターミナルやコマンドプロンプトといったテキストベースの画面から、1Passwordの機能を利用するためのツールである。例えば、保存されたパスワードを検索したり、新しい項目を作成したりといった操作を、キーボード入力だけで行えるため、開発者やシステム管理者など、日頃からコマンドラインを使うユーザーに重宝されている。パスワードマネージャーは、多数のパスワードを安全に管理し、複雑でユニークなパスワードを生成・保存することで、私たちのデジタルライフの安全を守る役割を担っている。

今回の脆弱性の核心は、1Password CLIがユーザーのセッション情報を一時的に保存する方法に問題があったことである。セッション情報とは、ユーザーが一度ログインした後に、そのログイン状態を維持するために使われるデータのことである。ウェブサイトで一度ログインすると、ブラウザを閉じても再ログインせずに利用できることがあるが、これはセッション情報が機能しているためだ。1Password CLIの場合も、一度認証を行うと、その後のコマンド実行時に毎回マスターパスワードを入力する手間を省くためにセッション情報が利用される。

このセッション情報、具体的にはセッションキーという重要なデータが、特定の条件下で安全ではない場所に保存される可能性があった。問題は、CLIがセッションキーを一時ファイルとして、オペレーティングシステム(OS)の「テンポラリディレクトリ」と呼ばれる場所に書き出していたことである。テンポラリディレクトリは、OSやアプリケーションが一時的にファイルを保存するために利用する場所で、例えばLinuxなら/tmp、macOSなら/var/foldersのようなパスに存在する。

なぜこれが問題なのか。テンポラリディレクトリは、システム上のすべてのユーザーからアクセスできる場合がある。特にLinuxの/tmpディレクトリは、デフォルトで誰でもファイルの読み書きができる「ワールドライト可能」な設定になっていることが多い。このような環境で、1Password CLIがセッションキーを平文のテキストファイルとして一時的に書き出すと、同じシステムにログインしている悪意のある別のユーザーが、このファイルを読み取ってセッションキーを盗み出すことが可能になってしまう。セッションキーが盗まれれば、そのキーを使って本来のユーザーになりすまし、1Passwordアカウントにアクセスできてしまうのだ。

さらに深刻な問題として、CLIが予期せずクラッシュした場合などに、この一時ファイルが適切に削除されずにテンポラリディレクトリに残ってしまう可能性があった。これにより、本来ならば短時間で消えるべきセッションキーが、システム上に永続的に残り続けるリスクも発生した。これは、セッションキーが悪意のあるユーザーに長期間利用される可能性を高めることにつながる。

具体的な攻撃シナリオを想像してみよう。あるシステムエンジニアが共有サーバーで作業しており、そのサーバー上で1Password CLIを使って自身の1Passwordアカウントにログインしたとする。CLIは認証後にセッションキーを生成し、サーバーのテンポラリディレクトリに一時ファイルとして書き出す。このとき、もしサーバー上に他の悪意のあるユーザーがアカウントを持っていて、そのユーザーがテンポラリディレクトリを監視していれば、書き出されたセッションキーを簡単に読み取ることができてしまう。読み取ったセッションキーを使えば、その悪意のあるユーザーは、システムエンジニアの1Passwordアカウントにフルアクセスし、保存されているすべてのパスワードや秘密情報にアクセスすることが可能となる。これは、企業の機密情報や個人のプライバシーに甚大な被害をもたらす可能性があった。

この脆弱性は、発見者によって1Passwordの開発元であるAgileBits社に報告され、同社は迅速に対応した。修正は、主にセッションキーの保存方法を変更することで行われた。具体的には、セッションキーを一時ファイルに書き出す処理自体を廃止し、より安全な方法でメモリ内で管理するよう変更された。また、セッションキーの有効期限を短縮するなど、複数の防御策が追加で講じられた。

この脆弱性の影響を受けるのは、1Password CLIをバージョン2.15.0以前で利用していたユーザーに限られる。1Passwordのデスクトップアプリケーションやブラウザ拡張機能のみを利用しているユーザーには、直接的な影響はなかった。CLIユーザーが取るべき対策は明確だ。まず、使用している1Password CLIを直ちに最新バージョン、具体的にはバージョン2.16.0以降にアップデートする必要がある。さらに、過去にCLIでログインしていたユーザーは、op signoutコマンドで一度ログアウトし、再度op signinコマンドでログインし直すことで、古いセッションキーを無効化し、新しい安全なセッションを確立することが推奨される。

この脆弱性は、どんなに強固なセキュリティを謳うサービスであっても、その実装方法や周辺環境の扱い方によっては、思わぬ落とし穴が存在しうることを示している。特に、ファイルシステムや一時的なデータの扱い方といった基本的な部分にこそ、潜在的なリスクが潜んでいることが多い。私たちが常にセキュリティ意識を持ち、利用しているソフトウェアを最新の状態に保つこと、そして可能であれば多要素認証(MFA)を設定して万が一の事態に備えることの重要性を再認識させる事例と言えるだろう。多要素認証は、パスワードだけでなく、スマートフォンアプリなどで生成される使い捨てのコードなど、複数の認証手段を組み合わせることで、たとえパスワードやセッションキーが漏洩したとしても、不正アクセスを困難にする非常に効果的なセキュリティ対策である。このような脆弱性から学び、日々の情報セキュリティ対策を強化していくことが求められる。

関連コンテンツ

関連IT用語