
Joplin CVE-2022-35131, RCE
XSS che porta a RCE in Joplin che interessa la versione 2.8.8 e precedenti. Testato e funzionante su Windows e Linux.
Segnalato e corretto: 2022-06
Ctrl+P e cerca qualcosa nella nota o nel titoloIl problema è che dangerouslySetInnerHTML viene usato con input utente non escapato in GotoAnything.tsx alla riga 509. Correzione: esegui l'escaping dell'input utente.
return (
<div key={item.id} className={isSelected ? 'selected' : null} style={rowStyle} onClick={this.listItem_onClick} data-id={item.id} data-parent-id={item.parent_id} data-type={item.type}>
<div style={style.rowTitle} dangerouslySetInnerHTML={{ __html: titleHtml }}></div>
{fragmentComp}
{pathComp}
</div>
);
Lo spazio non può essere usato nel payload, ma si può usare lo spazio codificato \x20.
Esempi di payload del titolo:
# Payload 1 (Linux)
zzz
# Payload 2 (Windows)
zzz
# Reverse shell (Linux)
zzz
Cerca zzz per eseguire il payload.