We just published version 3.0.0 of the WordPress on AWS by FOSSonCloud pattern to AWS Marketplace. The headline is a WordPress upgrade from 6.7.2 to 6.9.4 — two major versions of upstream releases plus the entire 6.9.x security catch-up — alongside a substantial refresh of the deployment tooling underneath the pattern.
What’s in this release
WordPress 6.9.4 (up from 6.7.2)
Between our 2.1.0 and 3.0.0, WordPress shipped two major releases (6.8 “Cecil” and 6.9 “Gene”) and a string of maintenance and security releases. The most important content here is the recent security cluster:
Security (6.9.2 / 6.9.3 / 6.9.4 — March 2026)
WordPress 6.9.2 addressed ten independently-reported security issues. 6.9.3 was a fast-follow that fixed a regression in template loading introduced by the 6.9.2 patches. 6.9.4 then re-issued a subset of the 6.9.2 fixes after the security team determined some of them weren’t fully applied the first time. The combined fix list:
- Blind SSRF in core HTTP handling (reported by sibwtf and others)
- PoP-chain weakness in the HTML API and Block Registry
- Regex DoS in numeric character reference handling
- Stored XSS in nav menus
- AJAX
query-attachmentsauthorization bypass - Stored XSS via the
data-wp-binddirective - XSS allowing override of client-side templates in the admin area
- PclZip path traversal (re-applied in 6.9.4)
- Authorization bypass on the new Notes feature (re-applied in 6.9.4)
- XXE in the bundled getID3 library (re-applied in 6.9.4 after coordinated upstream fix)
Security (6.8.3 — September 2025)
- Authenticated data exposure allowing access to some restricted content via the REST API
- Authenticated stored XSS in nav menus
WordPress 6.9 “Gene” features (December 2025)
- Notes — block-level commenting in the post and page editor for inline review workflows (this is the same feature whose authorization bypass had to be re-patched in 6.9.4 — a brand-new feature catching a brand-new security finding)
- Expanded Command Palette — keyboard-driven navigation across the entire dashboard, not just the editor
- Abilities API — standardized, machine-readable permissions surface intended as the foundation for AI-powered and automated workflows
- New blocks plus a more visual drag-and-drop experience
- Performance improvements across page loads
WordPress 6.8 “Cecil” features (April 2025)
- bcrypt password hashing — automatic, no admin action required; replaces the long-standing phpass-based scheme
- Speculative loading — preloads links before the visitor clicks, speeding up perceived navigation
- Style Book restructured and now works with Classic themes
- Database query caching and other performance work
- 100+ accessibility improvements
Maintenance releases folded in
6.8.1, 6.8.2, and 6.9.1 collectively shipped roughly 84 bug fixes across Core and the Block Editor.
Pattern-level modernization (not from upstream)
The release also brings the deployment tooling forward:
aws-cdk-lib2.120.0->2.225.0oe-patterns-cdk-common4.2.4->4.5.1(EFS elastic throughput defaults from 4.2.4 are retained)- devenv image
2.5.5->2.8.4(Ubuntu 24.04 base; pip now requires--break-system-packages) - Packer scripts
1.6.0->1.10.3— fixes silent--install-efs-utilsfailures (rustup PATH undersudo -E, missingcmakeandgolang-gofor theaws-lc-fips-sysbuild, and an explicit.debexistence check) - Versioned AMI parameter convention introduced — the AMI parameter is now
AsgAmiIdv300instead of bareAsgAmiId, so each release has a distinct CloudFormation parameter name and the platform can’t silently reuse the previous AMI on update - Marketplace publishing moved to the AWS Marketplace Catalog API (
make marketplace-validate/marketplace-submit/marketplace-status); the deprecatedplf_config.yamlspreadsheet flow is gone - Packer appinstall script now sets
set -euxexplicitly — Packer’sexecute_commandinvokes the script asbash <path>, which treats the shebang as a comment, so without an explicit shell-options line a failing provisioner could silently ship a broken AMI - Playwright integration test scaffold added under
test/integration/;make test-integrationruns an end-to-end smoke test (install wizard -> admin login -> Gutenberg post -> public render) against the deployed dev stack docker-compose.ymlnow mounts~/.awsand forwardsAWS_PROFILE, matching the Mastodon and Drupal patterns
Removed / cleanup
- Dropped the dead
DEFAULT_WORDPRESS_SOURCE_URLconstant fromwordpress_stack.py. The pre-2.0.0 CodePipeline + CodeDeploy + Lambda seed-bucket flow was removed in 2.0.0 but the constant lingered with noCfnParameterreading it. - Stripped stale
PipelineArtifactBucketName/SourceArtifactBucketName/SourceArtifactObjectKeyparameters from the taskcat configs — leftover from the same pre-2.0.0 pipeline flow.
Fresh deployments
Subscribe on AWS Marketplace and launch the CloudFormation template. You’ll need a Route 53 hosted zone and an ACM certificate ready in the target region — everything else (VPC, Aurora, ALB, EFS, SES SMTP, optional NLB-fronted SFTP) the template provisions.
What’s next
Upstream is already shipping 7.0 release candidates as of late March 2026 — we’ll be tracking 7.0 once it lands GA. We’ll also continue carrying security patches through point releases as they ship, on a faster cadence than the major version of this pattern itself.
If you hit anything in 3.0.0, please file an issue at github.com/ordinaryexperts/aws-marketplace-oe-patterns-wordpress.
— FOSSonCloud
