Skip to content

fix(guest): refuse outside data that links to the guest's pod - #656

Merged
ixuz merged 1 commit into
mainfrom
fix/guest-origin-in-releases
Nov 8, 2026
Merged

ixuz merged 1 commit into
mainfrom
fix/guest-origin-in-releases

Conversation

@ixuz

@ixuz ixuz commented Nov 8, 2026

Copy link
Copy Markdown
Member

What and why

A release read from the library or a link, a release made a draft, and a deck file could carry an address at the guest's pod, such as a card's picture or what it is about. Added to a guest's study, that address is not one of the study's own, so the move leaves it as it is: keeping the study as a new instance then failed on every try, and adding it to an instance refused that deck.

  • Such a release is refused where it is read, for every user (releaseLinksGuestPod), and an import checks what it keeps before it writes anything.
  • A draft made from a release is refused the same way.
  • A deck file is refused the same way (deckFileLinksGuestPod), though its deck's and cards' own addresses may be at the guest's pod, as a guest's export has them.
  • Text the reader reads, such as a card's text or what changed in a release, may still name any address. A test types every field of a library deck, so a new field must be placed as an address or as text.
  • When a copied document still names the guest's pod, the move's error names the guest deck it belongs to (guestDeckCopyUrlsLeft), so the user can tell which deck to leave out.
  • The three new messages are in all six locales. docs/guest-mode.md, docs/deck-library.md and docs/studio.md describe the rule.

Refs: GHSA-hc3p-fpwj-fvjp

A release read from the library or a link, a release made a draft and
a deck file could carry an address at the guest's pod, such as a
card's picture or what it is about. Added to a guest's study, that
address is not one of the study's own, so the move leaves it as it is:
keeping the study as a new instance then failed on every try, and
adding it to an instance refused that deck.

Such a release is now refused where it is read, for every user
(releaseLinksGuestPod), and an import checks what it keeps before it
writes anything. Text the reader reads, such as a card's or what
changed in the release, may still name any address. A deck file is
refused the same way (deckFileLinksGuestPod), though its deck's and
cards' own addresses may be at the guest's pod, as a guest's export
has them. When a copied document still names the guest's pod, the
move's error now names the guest's deck it belongs to, so the user
can tell which deck to leave out.

Refs: GHSA-hc3p-fpwj-fvjp
@ixuz ixuz added bug Something isn't working i18n labels Nov 8, 2026
@ixuz
ixuz enabled auto-merge November 8, 2026 12:43
@ixuz
ixuz added this pull request to the merge queue Nov 8, 2026
Merged via the queue into main with commit aeddcee Nov 8, 2026
51 checks passed
@ixuz
ixuz deleted the fix/guest-origin-in-releases branch November 8, 2026 13:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working i18n

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant