Skip to content

Commit 447a0f7

Browse files
committed
fix(files): guard resolveSimFileUrl against cross-origin URL hijacking
1 parent 22cfd03 commit 447a0f7

1 file changed

Lines changed: 5 additions & 2 deletions

File tree

apps/sim/app/workspace/[workspaceId]/files/components/file-viewer/preview-panel.tsx

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -334,8 +334,11 @@ const MermaidDiagram = memo(function MermaidDiagram({ definition }: { definition
334334
function resolveSimFileUrl(src: string | undefined): string | undefined {
335335
if (!src) return src
336336
try {
337-
const { pathname } = new URL(src, 'http://placeholder')
338-
const [, seg1, , seg3, fileId] = pathname.split('/')
337+
const parsed = new URL(src, 'http://placeholder')
338+
const isRelative = parsed.origin === 'http://placeholder'
339+
const isSameOrigin = typeof window !== 'undefined' && parsed.origin === window.location.origin
340+
if (!isRelative && !isSameOrigin) return src
341+
const [, seg1, , seg3, fileId] = parsed.pathname.split('/')
339342
if (seg1 === 'workspace' && seg3 === 'files' && fileId) {
340343
return `/api/files/view/${fileId}`
341344
}

0 commit comments

Comments
 (0)