
Proof-of-conceptエクスプロイト for CVE-2022-35131: Joplinメモアプリにおける、検索結果内のエスケープされていないユーザー入力による、リモートコード実行へとつながるXSS。
Joplin のバージョン 2.8.8 以前に影響する、RCE につながる XSS。Windows および Linux でテスト済みで動作します。
報告および修正: 2022-06
Ctrl+P を押して、ノートまたはタイトル内の何かを検索する問題は、GotoAnything.tsx の 509 行で、エスケープされていないユーザー入力を用いて dangerouslySetInnerHTML が使用されていることです。ユーザー入力をエスケープすることで修正できます。
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 を検索してペイロードを実行します。