Red Hot Cyber

Sicurezza informatica, cybercrime, hack
news, e altro ancora
  • English

Un pericoloso bug passato inosservato per 22 anni è stato rilevato su SQLite

Il difetto di sicurezza di SQLite è stato scoperto e descritto in dettaglio dallo specialista della sicurezza Andreas Kellas. Le è stato assegnato l’ID CVE-2022-35737 e un punteggio di 7,5 su 10 sulla scala CVSS. La vulnerabilità è correlata ad un integer overflow che interessa le versioni di SQLite da 1.0.12 a 3.39.1.

Come afferma CVE-2022-35737, SQLite 1.0.12 – 3.39.x prima della 3.39.2 a volte consente l’overflow dei limiti dell’array se vengono utilizzati molti byte in un argomento stringa per l’API C. Un utente malintenzionato può trarne vantaggio ed eseguire codice arbitrario sul sistema interessato.

Kellas scrive che la vulnerabilità può essere sfruttata solo su sistemi a 64 bit. 

Inoltre, le conseguenze dell’utilizzo di CVE-2022-35737 variano a seconda di come viene compilato il programma:

  • Un utente malintenzionato potrebbe eseguire codice arbitrario durante la compilazione di una libreria senza stack canary;
  • Il codice arbitrario potrebbe non riuscire in presenza di stack canary;
  • Il Denial of Service si verifica in tutti i casi.

L’esperto ha spiegato che per sfruttare la vulnerabilità, gli aggressori devono passare dati di input di stringhe di grandi dimensioni alla funzione printf e che la stringa deve contenere un tipo di sostituzione: %Q, %q o %w. 

Secondo Kellas, il CVE-2022-35737 è correlato a un integer overflow che si verifica quando la funzione sqlite3_str_vappendf riceve una stringa di grandi dimensioni e quando il tipo di sostituzione è %q, %Q o %w.

Il ricercatore ha anche scoperto che se la stringa contiene il carattere “!”, questo attiva la scansione di caratteri Unicode, e si può ottenere l’esecuzione di codice arbitrario o eseguire un attacco DoS .

Riassumendo, Kellas ha affermato che 22 anni fa questa vulnerabilità potrebbe non essere neanche definita tale, poiché quasi tutti i sistemi erano a 32 bit.