
Joplin CVE-2022-35131, RCE
XSS que conduce a RCE en Joplin que afecta a la versión 2.8.8 y anteriores. Probado y funciona en Windows y Linux.
Reportado y corregido: 2022-06
Ctrl+P y busca algo en la nota o el títuloEl problema se debe a que dangerouslySetInnerHTML se usa con entrada de usuario sin escapar en GotoAnything.tsx línea 509. Se corrige escapando la entrada del usuario.
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>
);
No se pueden usar espacios en el payload, pero se puede usar el espacio codificado \x20.
Ejemplos de payloads para el título:
# Payload 1 (Linux)
zzz
# Payload 2 (Windows)
zzz
# Reverse shell (Linux)
zzz
Busca zzz para ejecutar el payload.