
Proof-of-Concept für CVE-2022-31902, eine Denial-of-Service-Schwachstelle in Notepad++ (x86), die durch die Funktion „Alle suchen“ bei präparierten Textdateien ausgelöst wird und über einen Speicherzuordnungsfehler einen Absturz verursacht.
Notepad++(x86) in 8.4.3 und früher.first.txt) und anschließendem Verwenden der Optionen Find All in All Opened Document oder Find All in Current Opened Document unter den Suchoptionen.Als illustratives Beispiel unten, Stand 11/07/2022, wird die neueste Version von Notepad++(x86) 8.4.3 verwendet.

first.txt und suchen Sie nach einem beliebigen Zeichen in Notepad++, und drücken Sie die Schaltfläche Find All in All Opened Document oder Find All in Current Opened Document.


Hier sehen wir, dass das Problem in ScintallComponent -> ScintillaWin.cxx-> Zeile 3699. liegt.
Wenn der Benutzer die Suchfunktion von Notepad++ in first.txt verwendet, führt dies zum Absturz der Anwendung.
Notepad++ ruft eine Funktion finder::add in der Datei findReplaceDlg.cpp auf, die die Funktion push_back(foundinfo) aufruft, welche intern eine Speicherzuweisung der Größe 4bf21 anfordert.
Aufgrund von Speichermangel kann der new_operator den Speicher nicht zuweisen und gibt bad_alloc zurück.
Daher können wir sagen, dass die Suche nach einem Zeichen in first.txt mit der Schaltfläche Find All in All Opened Document zu einem Denial of Service führt.
Die Sicherheitslücke wurde mit den folgenden Versionen getestet:
Notepad++-Versionen 8.4.8 (32-Bit) und früher.Notepad++-Versionen 8.4.9 (32-Bit) und früher.