Notepad++

Notepad++ バージョン 8.5.7 は、複数のバッファ オーバーフロー ゼロデイに対する修正を加えてリリースされました。そのうちの 1 つは、ユーザーをだまして特別に細工されたファイルを開かせることでコード実行につながる可能性があるとマークされています。

Notepad++ は、多くのプログラミング言語をサポートし、プラグインによって拡張でき、マルチタブ編集や構文の強調表示などの生産性を向上させる機能を提供する、人気のある無料のソース コード エディタです。

GitHub のセキュリティ研究者Jaroslav Lobačevski 氏は、過去 2 か月間にわたって Notepad++ バージョン 8.5.2 の脆弱性を開発者に報告しました

これらの欠陥に対する概念実証エクスプロイトも研究者の公開勧告で公開されており、ユーザーはできるだけ早くプログラムを更新することが不可欠となっています。

Notepad++ のセキュリティ上の欠陥

発見された脆弱性には、Notepad++ で使用されるさまざまな関数およびライブラリにおけるヒープ バッファの書き込みおよび読み取りのオーバーフローが含まれます。

GitHub の研究者によって発見された 4 つの欠陥の概要は次のとおりです。

  • CVE-2023-40031 : UTF16 から UTF8 へのエンコード変換に関する誤った仮定により、Utf8_16_Read::convert 関数でバッファ オーバーフローが発生します。
  • CVE-2023-40036 : バッファ サイズに基づく配列インデックスの順序が原因で、CharDistributionAnalysis::HandleOneChar でのグローバル バッファ読み取りオーバーフローが発生し、uchardet ライブラリを使用すると悪化します。
  • CVE-2023-40164 : nsCodingStateMachine::NextState でのグローバル バッファ読み取りオーバーフロー。これは Notepad++ で使用される特定のバージョンの uchardet ライブラリにリンクされていますが、charLenTable バッファのサイズに依存しているため脆弱です。
  • CVE-2023-40166 : ファイル言語の検出中にバッファー長のチェックに失敗したため、FileManager::detectLanguageFromTextBeginning でヒープ バッファー読み取りオーバーフローが発生します。

これらの欠陥のうち最も深刻なものは CVE-2023-40031 で、CVSS v3 評価 7.8 (高) が割り当てられており、任意のコードの実行につながる可能性があります。

しかし、あるユーザーは、エラーの種類から、この欠陥を利用してコードを実行できるのではないかと異議を唱えています

「技術的には『バッファ オーバーフロー』ですが、実際にはオフバイ 2 のバグにすぎず、任意のコードが実行される可能性は事実上ゼロです」と、この欠陥に関してオープンされたGitHub のイシューへのコメントには書かれています。

他の 3 つの問題は、重大度が中程度 (5.5) の問題で、内部メモリ割り当て情報の漏洩に悪用される可能性があると Lobačevski 氏は述べています。

修正予定

Lobačevski のブログと概念実証エクスプロイトが 2023 年 8 月 21 日に公開されたにもかかわらず、Notepad++ 開発チームは、 ユーザー コミュニティが解決を求めるまで、状況への対応を急ぐことはありませんでした。

最終的に、2023 年 8 月 30 日に問題を認識するための公開問題が作成され、2023 年 9 月 3 日に 4 つの欠陥の修正がメイン コード ブランチに追加されました。

Notepad++ 8.5.7 がリリースされました。変更ログ に記載されている4 つの脆弱性とその他のバグを修正するには、インストールする必要があります。