Lite XL Vulnerability Allows Attackers to Execute Arbitrary Code
2025/11/12 gbhackers — Lua と C で記述され Windows/Linux/macOS で動作する軽量テキスト・エディタ Lite XL に、任意のコード実行の脆弱性 CVE-2025-12120 が存在することが判明した。セキュリティ研究者たちが発見したのは、このエディタがプロジェクト・コンフィグ・ファイルを処理する方法における欠陥である。この欠陥により、信頼できないプロジェクトを開いた際に、悪意のコード実行の危険にさらされる可能性がある。

Lite XL の設計では、プラグインやプロジェクト固有のモジュールによる拡張性が考慮されているため、カスタマイズ可能な編集環境を求める開発者の間で人気がある。
しかし、先日に公開された2つの脆弱性により、この柔軟性が、バージョン 2.1.8 以下に重大なセキュリティ・リスクをもたらしている。
| CVE ID | Affected Versions | Vulnerability Type | CVSS Score |
|---|---|---|---|
| CVE-2025-12120 | 2.1.8 and prior | Arbitrary Code Execution via Automatic .lua Execution | High |
重大な脆弱性の詳細
この脆弱性 CVE-2025-12120 を悪用する攻撃者は、ユーザーの確認なしに .lite_project.lua ファイルを自動的に実行できる。つまり、ユーザーがプロジェクト・ディレクトリを開くと、Lite XL はプロジェクトの Lua コンフィグ・モジュールを自動的に読み込み、実行してしまう。
この動作は、正当なプロジェクト固有のコンフィグを前提としているが、攻撃者にとって格好の攻撃ベクターとなる。
攻撃者は、特別に細工された .lite_project.lua ファイルを含むプロジェクトを作成し、そこに実行可能な Lua コードを取り込める。何も知らない Lite XL ユーザーが、このようなプロジェクトを開くと、悪意のコードが Lite XL プロセスと同じ権限で自動的に実行される。
その結果として生じるのは、システム・リソースへの不正アクセス/機密データの窃取/ユーザーの開発環境への侵入などである。
この脆弱性が特に懸念されるのは、ユーザーが信頼しているソースからのリポジトリのクローンを生成する可能性や、埋め込まれた悪意の Lua コードに気付かずに、共同作業プラットフォームからプロジェクト・アーカイブをダウンロードする可能性があるためだ。
この種の悪意の操作はシームレスかつ自動的に実行されるため、ユーザーに警告は表示されず、実行前にコードを確認する機会もない。この脆弱性は、さまざまなソースからの複数のプロジェクトを扱う開発者にとって、深刻なセキュリティ上の影響を生み出す。
想定される被害は、永続的なアクセスの確立/ソースコードや資格情報の窃取/プロジェクトへのバックドア挿入に加えて、開発者のマシンを踏み台にしたサプライチェーン攻撃の展開などとなる。
さまざまなリポジトリから取得したプロジェクトを用いて、共同作業を行うチーム環境ではリスクが増大する。
すでに Lite XL 開発チームは、2つのプルリクエストを通じて、これらの脆弱性に対処している。
PR #1472 は、プロジェクト・モジュールに信頼ガード・メカニズムを実装し、信頼されていないプロジェクトによる Lua コードの自動実行を防ぐ。PR #1473 では、セキュリティ・リスクを高めていたレガシー exec 関数が削除された。これらの修正により、プロジェクトは明示的なユーザー承認なしに、コードを実行できなくなった。
ユーザーに対して強く推奨されるのは、Lite XL の最新バージョンへと直ちにアップデートすることである。このアップデート版では、コード実行前にプロジェクト・モジュールの実行を承認するためのセキュリティ・プロンプトが導入されている。このユーザー確認の追加レイヤーにより、悪意のコードの実行を防止できる。
これらの脆弱性は、セキュリティ研究者 Dogus Demirkiran からの報告をベースに、GitHub ユーザー Summertime が特定したものである。この共同開示プロセスは、開発者コミュニティを保護する上で、責任ある脆弱性報告の重要性を強調している。
この脆弱性の原因は、Lite XL がプロジェクトの Lua コンフィグを信頼済みとみなして、自動で実行してしまう設計にあります。特に .lite_project.lua を、ユーザーの確認なしで読み込む挙動が、そのまま攻撃者の入り口になってしまっています。柔軟な拡張性を重視した結果、信頼できないプロジェクトかどうかを見分ける仕組みや、実行前の確認プロンプトが不足していたと、この記事は指摘しています。ご利用のチームは、ご注意ください。よろしければ、Lite XL の Wiki を、ご参照ください。
You must be logged in to post a comment.