Page and Post Restriction <= 1.6.1 - Unauthenticated Authentication Bypass via REST API Nonce Bypass via Cookie Re-Authentication
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
- Exploitation: none
- Automatable: no
- Technical impact: partial
Summary
The Page and Post Restriction plugin for WordPress, in all versions up to and including 1.6.1, is affected. An attacker can lure a logged-in user to a malicious web page that reads the site's REST API as that user, exposing restricted or private posts, pages, comments, and the victim's profile data.
Summarized by anthropic/claude-haiku-5.5. Verify details against the original sources.
Read the original description
The Page and Post Restriction plugin for WordPress is vulnerable to Authentication Bypass in all versions up to, and including, 1.6.1 This is due to the `papr_restrict_page_post_rest_api()` function, hooked on `rest_pre_dispatch`, re-authenticating the current user from the `wordpress_logged_in` cookie via `wp_set_current_user()` for any GET or HEAD REST request where the current user is 0, without verifying a REST nonce — silently undoing the nonce-zeroing that WordPress core's `rest_cookie_check_errors()` performs on cookie-authenticated requests that lack an `X-WP-Nonce` header or `_wpnonce` parameter. Combined with WordPress's permissive REST CORS behavior — which echoes the request `Origin` and sets `Access-Control-Allow-Credentials: true` — this allows an unauthenticated attacker to read REST API GET responses as a logged-in victim, exposing role-restricted and private post/page content, victim user profile data via `/wp-json/wp/v2/users/me`, and comments the victim is authorized to see. This requires the attacker to lure a logged-in user into visiting an attacker-controlled page that issues credentialed cross-origin `fetch` requests against the target site's REST API; no nonce or further victim interaction beyond the page visit is needed.
Timeline
- CVE published
- First seen by cve.now
- CISA SSVC assessment
Exploitation: none · Automatable: no · Technical impact: partial
- Record last updated
Affected versions
- cyberlord92 Page and Post Restriction
through 1.6.1
References 6
plugins.trac.wordpress.org
- browser/page-and-post-restriction/tags/1.6.0/page-and-post-restriction.php#L79
- browser/page-and-post-restriction/tags/1.6.0/page-and-post-restriction.php#L54
- browser/page-and-post-restriction/tags/1.6.0/page-and-post-restriction.php#L78
- browser/page-and-post-restriction?rev=3771992
- changeset/3771992/page-and-post-restriction/trunk/page-and-post-restriction.php