Qui, la vulnerabilità non parla di alcuni programmi in esecuzione sul tuo computer. Il problema è che i dati vengono sovrascritti nel posto sbagliato.
Puoi trovare i dettagli della vulnerabilità qui: link
Come menzionato nella pagina web:
If in the above call to opj_calloc
, which is a calloc
wrapper, numcomps
value happens to be zero, calloc
will return a unique pointer which can be later passed to free
(this is implementation dependent, but is so on modern Linux OSes). The unique pointer returned by calloc
will usually be a small allocation (0x20 bytes in case of x64 code). This can lead to a heap buffer overflow later in the code when this buffer is being used.
In the above code, l_tccp
pointer will be pointing to the previously erroneously allocated area. The same structure is dereferenced during further out of bounds writes in the following code.
Poiché scrivere in memoria di proprietà di un programma è un processo valido, un sistema operativo non può bloccare il processo sopra menzionato.
- Prevent execution of the payload by separating the code and data, typically with hardware features such as NX-bit on modern systems.
Questo non funziona perché non esiste l'esecuzione di un payload qui.
- Introduce randomization such that the heap is not found at a fixed
offset.
- Introduce sanity checks into the heap manager.
Stiamo recuperando esplicitamente il percorso da leggere / scrivere e quindi la randomizzazione non funzionerà qui. Questo è un semplice caso di mancato controllo di sanità mentale.
Inoltre, come menzionato nella pagina web, il sistema di build di Chrome aveva già una soluzione per questo, ma non nella build corretta. Il bug è stato corretto ora.