Notepad++ è un popolare editor di testo gratuito e open source ampiamente utilizzato dagli utenti di Windows. Presenta un’interfaccia utente leggera e minimalista, che lo rende facile da usare per la modifica di testi e la scrittura di codice (che tra l’altro viene correttamente evidenziato). Gli utenti possono lavorare su più documenti contemporaneamente, ognuno con le proprie schede all’interno dell’editor.
L’applicazione è inoltre altamente estendibile grazie a un sistema di plugin, componenti aggiuntivi che danno modo di personalizzare l’editor in base alle proprie esigenze. Il software integra anche potenti e versatili funzionalità di ricerca e sostituzione che consentono agli utenti di cercare testo in un documento e sostituirlo con facilità. È previsto il supporto per le espressioni regolari che, con un po’ di pazienza, aiutano ad effettuare interventi complessi su qualunque genere di file.
L’unica problema è che Notepad++ si è dimostrato non in grado di aprire file di grandi dimensioni su Windows e Linux.
Notepad++ da aggiornare ma non c’è alcun rischio di esecuzione di codice arbitrario
Nel caso di applicazioni complesse come i componenti della suite Office, vi è spesso il rischio che la semplice apertura o visualizzazione di un documento (anche attraverso l’anteprima di Esplora file) possa portare all’esecuzione di codice malevolo. Per evitare queste problematiche, è sempre opportuno installare le patch rilasciate a cadenza mensile da Microsoft.
Cosa decisamente meno comune, proprio per le caratteristiche di un file di testo, è che un editor come Notepad++ mostri il fianco a rischi di esecuzione di codice arbitrario.
Eppure, a fine agosto scorso il ricercatore Jaroslav Lobacevski ha riferito della scoperta di quattro vulnerabilità di sicurezza in Notepad++. La più grave delle quattro problematiche, contraddistinta con l’identificativo CVE-2023-40031, è collegata a un problema di tipo heap buffer write overflow.
Cos’è un heap buffer write overflow
Le vulnerabilità di tipo heap buffer write overflow si manifestano quando un’applicazione scrive dati al di là dei limiti di un buffer allocato nella memoria heap. Questi problemi possono portare a gravi conseguenze per la sicurezza, inclusa l’esecuzione di codice arbitrario da parte di un attaccante.
Il termine heap si riferisce a una regione della memoria utilizzata per l’allocazione dinamica di dati durante l’esecuzione di un programma. In questa area, vengono allocati buffer di dati di dimensioni variabili. L’overflow di scrittura (buffer overflow) si verifica quando un programma scrive dati in un buffer superando i limiti del buffer stesso. Il programma sovrascrive la memoria adiacente al buffer, che potrebbe contenere altre informazioni o codice.
Quando la scrittura delle informazioni arbitrarie interviene su parti cruciali della memoria, compresi puntatori e strutture dati, possono presentarsi comportamenti imprevedibili e, addirittura, l’esecuzione di codice dannoso.
No, Notepad++ non esegue codice dannoso ma è comunque importante installare gli aggiornamenti di sicurezza
Ultimamente i bollettini CVE vengono un po’ troppo spesso usati come una sorta di ascia nei confronti di alcuni progetti software. Abbiamo visto in un altro articolo cosa sono i CVE e perché la classificazione delle vulnerabilità in tanti casi non risulta attenta e affidabile.
Nel caso di specie, delle quattro vulnerabilità segnalate, soltanto una può effettivamente avere una certa rilevanza (quella relativa all’heap buffer write overflow). Anche questa, però, è praticamente impossibile da sfruttare per eseguire codice dannoso.
Risulta evidente dall’analisi del codice: l’errore riguarda nello specifico la gestione di file di testo con lunghezze dispari perché nel passaggio da UTF-16 a UTF-8 il calcolo della lunghezza risulta errato di appena due byte. Di fatto, però, in nessun caso può esservi l’esecuzione di codice arbitrario.
Con il rilascio di Notepad++ 8.5.7 e versioni successive, gli sviluppatori dell’editor di testo hanno preso in carico e risolto tutte le problematiche. Il consiglio è quello di scaricare l’ultima versione di Notepad++ e installarla manualmente. Da qui a parlare di rischio di esecuzione di codice arbitrario, tuttavia, ce ne passa.