Skip to content

fix: re-check Dune allowlist before mounting sheet iframes - #412

Open
resistanceisliberty wants to merge 1 commit into
fileverse:mainfrom
resistanceisliberty:fix/iframe-src-allowlist-on-render
Open

fix: re-check Dune allowlist before mounting sheet iframes#412
resistanceisliberty wants to merge 1 commit into
fileverse:mainfrom
resistanceisliberty:fix/iframe-src-allowlist-on-render

Conversation

@resistanceisliberty

Copy link
Copy Markdown

Summary

It looks like the Dune URL checks only apply when something is added through the normal UI. The floating iframe layer just mounts src from sheet state, and that iframes list is shared over collab.

So if someone with write access puts a non-Dune URL into that data, viewers can could be exposed to a malicious embed - not by using the embed dialog or clicking a particular cell.

This change runs the same allowlist again before an iframe is shown, when one is inserted, and when remote collab applies iframe updates. I also tightened the sanitizer so plain https://dune.com/embeds/… values (what the app actually stores) still count as valid; without that, real Dune charts would break under a render-time check.

To see if this works

  • node src/sheet-engine/core/modules/iframe.sanitize.test.mjs
  • Normal Dune embed still works
  • Bad src shows the blocked state and does not load in the network panel
  • Under collab, a planted non-Dune iframe is not mounted for other clients

Collab can sync arbitrary iframe src values that skip the Dune UI
sanitizer. Validate on insert, remote setSheetIframes, and render so
viewers do not load non-allowlisted origins when opening a sheet.
@vercel

vercel Bot commented Jul 23, 2026

Copy link
Copy Markdown

Someone is attempting to deploy a commit to the fileverse Team on Vercel.

A member of the Team first needs to authorize it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant