WP Sudo v3.2.0 — Research Snapshot
Pre-releaseVersions before 4.9.0 automatically replayed an intercepted request after reauthentication (#322). Do not use this version.
RESEARCH PROTOTYPE ONLY. Do not install on production, public staging, or any site containing real users, credentials, or data. Use only in WordPress Playground or a disposable local test environment.
WP Sudo 3.2.0
Security hardening and release-readiness release for WordPress 7.0.
Playground
Stable release demo:
Demo credentials are admin / password; use password again for the WP Sudo reauthentication challenge.
Current main development demo:
Governance and capabilities
- Adds the
sudo_can()helper and fine-grained governance capabilities for WP Sudo administration. - Adds the Settings > Sudo Access tab for role/user grants and revocations, with gated grant/revoke actions and audit hooks.
- Maps WP Sudo capability checks into WordPress capability checks for external tools and WP-CLI visibility.
- Clarifies admin Help and public docs language around authentication vs authorization: Sudo verifies the account holder is still present; WordPress and target handlers still decide whether the user is allowed to perform the action.
Security hardening
- Hardens 2FA lockout behavior so password success cannot clear counters before second-factor success.
- Adds WPGraphQL request classification for JSON, GET/form, multipart operations, batches, tokenizer edge cases, and persisted-query fail-safe behavior.
- Extends REST plugin gating to folder-style plugin slugs.
- Fails closed on PCRE errors in built-in rules.
- Gates WP Sudo settings writes on non-interactive surfaces.
- Gates
admin_email/new_admin_emailwrites on interactive and REST surfaces. - Changes IP lockout to
ip + user_idto avoid shared-IP administrator DoS. - Honors
FORCE_SSL_ADMINfor sudo/2FA cookie Secure flags. - Hardens REST cookie-vs-App-Password branch selection.
- Minimizes request stash replay data, including suffix-based secret redaction and rule allowlists.
- Validates App Password policy UUID ownership and cleans entries on App Password deletion.
- Adds Site Health visibility when built-in gated actions are accidentally removed by filters.
- Adds uninstall defense-in-depth while preserving WP-CLI uninstall behavior.
WordPress 7.0 and CI/release hygiene
- Moves forward CI/local preview lanes from WordPress
7.0-RC1to7.0GA. - Refreshes release-status, roadmap, current metrics, and SBOM metadata.
- Stabilizes E2E challenge fixtures and wp-env helper behavior.
- Shards the default Chromium Playwright E2E suite across four GitHub Actions runners while preserving the aggregate
E2E Testsrequired check. - Includes final dependency and CI-maintenance merges: phpstan/phpstan 2.2.2, vimeo/psalm 6.16.1, codecov/codecov-action 7, actions/checkout 6, actions/github-script 9, and CI MySQL service pull routing through ECR Public.
Validation
Release tag v3.2.0 points to commit a06197f, after all latest Dependabot, CI maintenance, E2E sharding, and auth-boundary Help/docs copy updates were merged.
Original release validation included: composer validate --strict, composer verify:metrics, composer test:unit, composer test:integration, composer analyse, composer analyse:psalm, composer lint, composer audit, composer sbom, git diff --check, and Playwright test listing (61 tests).
Final retag validation included: targeted Admin Help unit coverage, composer test (777 tests, 2220 assertions), composer analyse, composer lint, and git diff --check.