---
id: CVE-2026-118194
title: >-
  Page and Post Restriction <= 1.6.1 - Unauthenticated Authentication Bypass via
  REST API Nonce Bypass via Cookie Re-Authentication
summary: >-
  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-aut…
severity: medium
cvss: 6.5
cvssVector: 'CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N'
cvssSource: cna
cwe:
  - CWE-287
vendor: cyberlord92
product: Page and Post Restriction
affected:
  - page_and_post_restriction <= 1.6.1
ssvc:
  exploitation: none
  automatable: 'no'
  technicalImpact: partial
  timestamp: '2026-10-30T17:33:39.445031Z'
published: '2026-10-30'
updated: '2026-10-30'
sourceUpdated: '2026-10-30T18:09:01.200Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2026-118194'
references:
  - url: >-
      https://www.wordfence.com/threat-intel/vulnerabilities/id/2785a4e1-64f3-4b20-b0b3-7030bd88438c?source=cve
  - url: >-
      https://plugins.trac.wordpress.org/browser/page-and-post-restriction/tags/1.6.0/page-and-post-restriction.php#L79
  - url: >-
      https://plugins.trac.wordpress.org/browser/page-and-post-restriction/tags/1.6.0/page-and-post-restriction.php#L54
  - url: >-
      https://plugins.trac.wordpress.org/browser/page-and-post-restriction/tags/1.6.0/page-and-post-restriction.php#L78
  - url: >-
      https://plugins.trac.wordpress.org/browser/page-and-post-restriction?rev=3771992
  - url: >-
      https://plugins.trac.wordpress.org/changeset/3771992/page-and-post-restriction/trunk/page-and-post-restriction.php
tags:
  - cve.org
epss: 0.00344
epssPercentile: 0.28088
ingestedAt: '2026-11-05T16:24:31.319Z'
---

## Overview

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.

## Affected

- `page_and_post_restriction <= 1.6.1`

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
