Repository navigation
Release 1.2.1 - #22
Merged
Merged
Conversation
Release 1.2.0
feat(languages): add missing translations
Block attributes are controlled by any user able to edit posts, including contributors without unfiltered_html. Custom iframe attributes were only filtered by a denylist, so event handlers (onload) or srcdoc could be stored and executed on the front end and in the editor. - Render only allowlisted attribute names (allow, allowfullscreen, allowpaymentrequest, id, referrerpolicy, sandbox, aria-*, data-*) with a strict name pattern, in PHP and JS. - Restrict the iframe source to http/https in PHP and in the editor. - Parse pasted iframe code in an inert DOMParser document. - Keep the deprecated save output unfiltered to preserve block validation. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011ft8SsWmmRXSa4kvxVHVdn
- Bump wp-coding-standards/wpcs to 3.4.1: 3.3.0 is blocked by Composer because of security advisory PKSA-mh9b-91zm-m1gy (< 3.4.1). - Bump config.platform.php to 8.3.36: roave/security-advisories now conflicts with PHP 8.3 < 8.3.36. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011ft8SsWmmRXSa4kvxVHVdn
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011ft8SsWmmRXSa4kvxVHVdn
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Security release. Merging into
maintriggersrelease.yml, which builds and pushes the1.2.1tag from.plugin-data.release/1.2.1was branched frommain. It merges the PR branch of #21, which already contains #20, so its tree is identical todevelopbefore the version bump. Companion PR todevelopis opened from the same branch.Content
http/https-only source, fixing a stored XSS reachable by contributors (fix(security): allowlist iframe attributes and source protocols #21).wpcs3.4.1 andconfig.platform.php8.3.36 to unblock PHP CI (fix(security): allowlist iframe attributes and source protocols #21).Version bump to 1.2.1
.plugin-datablockparty-iframe.php: header andBLOCKPARTY_IFRAME_VERSIONpackage.json/package-lock.jsonsrc/blockparty-iframe/block.jsonreadme.txt:Stable tagand changelog.wordpress-org/blueprints/blueprint.json:reflanguages/blockparty-iframe.potCHANGELOG.mdTest plan
composer cs: no errorsnpx wp-scripts lint-js src: no errorsnpm run build: compiled,build/blockparty-iframe/block.jsonreports 1.2.11.2.1does not exist yetonload/srcdocattribute injected as a contributor does not execute in preview or in the editor;1.2.1is created on the merge commit.Generated by Claude Code
Note
High Risk
Changes authentication-adjacent content sanitization for iframe markup and URLs; incorrect filtering could break embeds or leave XSS paths open for contributors without
unfiltered_html.Overview
Security release 1.2.1 hardens the iframe block against contributor stored XSS and bumps release metadata so merge to
maincan tag1.2.1.Iframe output is now allowlisted end-to-end. Custom attributes are no longer passed through a deny list; only
allow,allowfullscreen,allowpaymentrequest,id,referrerpolicy,sandbox, plus validaria-*/data-*names are kept inBlockRenderer.phpand in editorutils.js/edit.js. Event handlers,srcdoc, and malformed names are dropped. The iframesrcmust be http or https (esc_urlwith restricted protocols on the server;isSafeIframeUrlin the editor). Pasting embed HTML now parses viaDOMParserinstead of injecting into the live DOM, and only allowlisted attrs are extracted.The deprecated
save.jspath still usesconvertAttributesToRawProps(unfiltered) so legacy serialized markup stays valid without mounting unsafe attrs in the editor preview.Also adds the missing French string for the source placeholder, bumps
wpcsto 3.4.1 and Composerplatform.phpto 8.3.36, and updates version/changelog/readme/blueprint refs to 1.2.1.Reviewed by Cursor Bugbot for commit bc01291. Bugbot is set up for automated code reviews on this repo. Configure here.