Correct the security policy and cover two untested paths - #8
Merged
Conversation
SECURITY.md recommended a version that destroys credentials. It listed all of 2.0.x as supported and told readers to "upgrade to 2.0.0", but 2.0.0 and 2.0.1 are precisely the releases that over-encrypt the stored client secret until it cannot be read. Both are now marked unsupported, with the fault, its blast radius and the remedy stated plainly, and the 1.x plaintext warning separated out so its instruction to rotate credentials is not lost among the newer issue. Also covers two paths that had no tests at all. Logger redaction is what stands between a debug session and a client secret in debug.log. It now has tests for redaction of secrets and bearer tokens, including nested arrays, plus truncation and the bounded ring buffer. Renderer's override chain is a documented headline feature — copying a template into a theme is how users are told to customise markup safely. It now has tests for child-theme precedence over parent over plugin, that an override renders and receives its data, that directory traversal cannot escape the template directories, and that notices escape their message. Tests build real fixture files, so the WP_Filesystem sniff is scoped away from tests/ where that runtime abstraction does not exist. 86 -> 101 tests, 350 -> 384 assertions. PHPCS clean. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
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.
Found by auditing the repo for stale references and coverage gaps rather than by adding features.
1.
SECURITY.mdrecommended a version that destroys credentialsIt listed all of 2.0.x as supported and told readers to "upgrade to 2.0.0" — but 2.0.0 and 2.0.1 are precisely the releases that over-encrypt the stored client secret until it can't be read. A security document pointing people at a version with a known credential-destroying fault is a real problem, not a typo.
Both are now marked unsupported with the fault, its blast radius and the remedy stated plainly. The 1.x plaintext-storage warning is separated out so its "rotate your credentials" instruction isn't buried under the newer issue.
Stated honestly: this is a data-integrity fault, not a disclosure. The value was over-encrypted, never exposed.
2. Two untested paths that matter
Support\Loggerredactiondebug.log.Frontend\Rendereroverride chainLogger now covers redaction of secrets and bearer tokens including nested arrays, truncation, and the bounded ring buffer. Renderer covers child → parent → plugin precedence, that an override actually renders and receives its data, directory-traversal refusal, and notice escaping.
86 → 101 tests, 350 → 384 assertions. PHPCS clean.
The
WP_Filesystemsniff is scoped away fromtests/— those tests build real fixture files on disk, andWP_Filesystemis a runtime abstraction that doesn't exist in the shimmed harness.Also
Refreshed a stale version placeholder in the bug-report template. No functional change to the plugin.
🤖 Generated with Claude Code