Medium, CVSS 5.4npmAmendedPublished
Paperclip: Stored XSS via javascript: URLs in MarkdownBody — urlTransform override disables react-markdown sanitization
GHSA-fpw4-p57j-hqmq
- Affected
- npm @paperclipai/ui < 2026.416.0
- Fixed in
- 2026.416.0· Vendor fix available
- Issue
- MarkdownBody, the shared component used to render every Markdown surface in the Paperclip UI (issue documents, issue comments, chat threads, approvals, agent details, export previews, etc.), passes urlTransform={(url) = url} to react-markdown. That override replaces react-markdown's built-in defaultUrlTransform — the library's only defense against javascript:/vbscript:/data: URL injection — with a no-op, and the custom a component then renders the unsanitized href directly. Any authenticated company member can plant text in an issue document or comment; when another member clicks the link, the script executes in the Paperclip origin with full access to the victim's session, enabling cross-user account takeover inside a tenant. Details 1. Sink: MarkdownBody overrides url sanitization ui/src/components/MarkdownBody.tsx:107-135 (custom anchor renderer) and ui/src/components/MarkdownBody.tsx:162 (Markdown element): react-markdown v10 ships defaultUrlTransform (see react-markdown…
Recommended action: Upgrade to 2026.416.0 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.