
Prova de conceito de exploit para CVE-2022-35131: XSS que leva à execução remota de código no aplicativo de anotações Joplin por meio de entrada de usuário sem escape nos resultados de pesquisa.
XSS que leva a RCE no Joplin, afetando a versão 2.8.8 e anteriores. Testado e funcionando no Windows e Linux.
Relatado e corrigido: 2022-06
Ctrl+P e pesquise algo na nota ou no títuloO problema é porque dangerouslySetInnerHTML é usado com entrada do usuário sem escape em GotoAnything.tsx linha 509. Corrija escapando a entrada do usuário.
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>
);
Espaço não pode ser usado no payload, mas o espaço codificado \x20 pode ser usado.
Exemplos de payloads de título:
# Payload 1 (Linux)
zzz
# Payload 2 (Windows)
zzz
# Reverse shell (Linux)
zzz
Pesquise por zzz para executar o payload.