Fix access to block pages when adding query strings to the URL#169
Merged
Conversation
There was a problem hiding this comment.
Pull request overview
Fixes a bypass in _mw_adminimize_check_page_access() where blocked admin pages could still be reached by appending a query string to the URL (e.g., edit.php?foo=bar). The function previously only ran the substring path check when no query string was present, and otherwise required an exact $slug === $url match — so any extra query parameter on a no-query slug skipped both checks. The new logic always compares the slug's path against the request path and, when the slug itself has query parameters (e.g., edit.php?post_type=page), additionally verifies those parameters are present in the current request.
Changes:
- Parse the configured slug with
wp_parse_url()to separate its path and query components. - Always perform the substring path match; if the slug has query params, require all of them to match the current request's params.
- Register the
load-action using$uri['path'](which is already basenamed via$url) instead of the two separate path/basename branches.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
bueltge
approved these changes
Jun 1, 2026
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.
Improve path and slug matching to prevent access to blocked pages using a query string.
The change still allow access to pages that have expected query string, like
edit.php?post_type=page.The change was validated by blocking access to the comments page, for an editor role: