
Cursorは、高度なAI機能を搭載したコードエディタです。
AIによる高度なコード補完や、AIへのチャットによる質問・指示を通して、コーディングの生産性を向上できますし、VS Codeをベースにしているため多くのVS Code拡張機能を利用可能です。
無料での利用には厳しめの制約があるため定着していない利用者の層もありそうですが、そこを考慮したとしても、話題性が高く、多くの利用者を引き付けています。
そんなCursorにRCE(リモートコード実行)の脆弱性が確認されています。
- security.workspace.trust.enabled
これはCursorがベースにしているVS Codeに実装されているセキュリティに関する設定の一つです。
古いVS Codeでは、この設定値はfalseがデフォルト設定でした。
設定名称から内容を正しく想像することが難しいのですが、この設定値がfalseの場合、開発環境は信頼確認をしない、という動作となります。
Cursor開発環境にはいろいろな機能が実装されていますが、その一つに自動実行機能があります。
開発物の塊をプロジェクトと呼びますが、そのプロジェクトの設定のなかにプロジェクトを開いた際にプロジェクトの作成者が設定した内容を自動実行させることができる機能があります。
この機能が動作する際に、security.workspace.trust.enabledがfalse状態では、「これから自動実行するように設定された内容を実行しますよ、いいですか?」のように確認をしてくれない状態となります。
つまり、falseの意味は信頼をしない、ということではなく、信頼確認をしない、という意味として実装されています。
つまり、自動実行が設定されたプロジェクトを開くと、設定された自動実行内容が、プロジェクトを開いた人の同意や確認が一切されることのないまま即座に実行されるということを意味します。
悪意を持って作成されたプロジェクトをこの設定がfalseの状態で開くと、悪意を持った内容がこっそり自動実行されるということになります。
研究者はこれをリモートコード実行だと考えました。
この機能は便利機能のための安全機能です。
しかし、現在のCursorでは、この安全機能は無効状態がデフォルトとなっています。
誤った誘導となってしまうことを恐れずに文字にするとしますと、これは安全で不便なものと危険で便利なものが選べる状況でCursorのチームは便利なものを優先することを選択した、ということに思えます。
この設定の標準設定状態では危険であるという内容を研究者がCursorの開発チームに連絡していますが、この標準設定を変更する予定がないという回答だったということです。
いろいろな製品があり、それらにはいろいろな設定があります。
身の回りの製品はどんどん便利で複雑になっていきますが、利用者はこういった多くの機能を正しく理解し、自分の期待する設定状態にして利用する必要があります。
厳しいことですが、やっていくしかなさそうです。
Open Repo, Get Pwned (Cursor RCE)
https://www.oasis.security/blog/cursor-security-flaw
この記事をシェア |
---|