
Joplin CVE-2022-35131, RCE
XSS, приводящий к RCE в Joplin, затрагивает версию 2.8.8 и более ранние. Протестировано и работает на Windows и Linux.
Сообщено и исправлено: 2022-06
Ctrl+P и выполните поиск чего-либо в заметке или заголовкеПроблема в том, что dangerouslySetInnerHTML используется с неэкранированным пользовательским вводом в GotoAnything.tsx строке 509. Исправление — экранирование пользовательского ввода.
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>
);
Пробел нельзя использовать в пейлоаде, но можно использовать закодированный пробел \x20.
Примеры пейлоадов для заголовка:
# Payload 1 (Linux)
zzz
# Payload 2 (Windows)
zzz
# Reverse shell (Linux)
zzz
Выполните поиск zzz, чтобы активировать пейлоад.