Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessIdentify site running WP Popular Posts ≤7.4.2
-
ExploitSend unauthenticated REST request with context=edit and non-public post_type
-
ExecutionPlugin skips permission check and calls prepare_item_for_response()
-
ImpactHarvest raw content, password, meta, status, guid of private objects
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V14 - Data Protection Data exposure prevention
MITRE ATT&CK
2 techniques across 2 tactics: Collection, Discovery The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | No special conditions beyond reachability - remote unauthenticated exploitation against default configurations of WP Popular Posts ≤7.4.2, since the vulnerable REST route is registered with permission_callback __return_true and requires no authentication, user interaction, or non-default setting. The practical limiting factor is data-dependent rather than access-dependent: the target site must contain non-public post objects (drafts, private posts, password-protected posts, or wp_block synced patterns) holding sensitive values for the disclosure to yield anything meaningful; a site with no sensitive private content leaks little. |
| Impact | The CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N, 5.3 Medium) describes a fully remote, unauthenticated, low-complexity information-disclosure flaw with no integrity or availability impact. No EPSS score, CISA KEV listing, or public POC was provided, so exploitation status is 'no public exploit identified at time of analysis' - this is not a confirmed in-the-wild priority. No SSVC decision data was supplied. The signals are internally consistent: the root cause (a REST route registered with permission_callback __return_true that forwards a caller-supplied context=edit into WP_REST_Posts_Controller::prepare_item_for_response() without get_item_permissions_check()/check_read_permission()) genuinely supports unauthenticated read access, matching PR:N/AV:N. The one point worth scrutiny is the confidentiality rating: Wordfence scored C:L, but the exposed fields include raw post content body, post password, meta, status, and guid of non-public objects (e.g., wp_block synced patterns) - arguably C:H depending on what sensitive data sites store in private/draft content. On balance this is a real but moderate issue: trivially exploitable and broadly reachable, yet limited to reading post-object fields rather than full compromise, and dependent on sensitive non-public posts actually existing on the target. |
| Exploit ScenarioDerived | An unauthenticated attacker sends a crafted request to the plugin's public REST endpoint, supplying context=edit and an arbitrary post_type (such as wp_block), causing the plugin to return edit-context fields - raw title/content, password, meta, status, guid - for non-public posts that WordPress core would normally withhold from anonymous callers. No POC was provided, but the flaw is network-reachable with low complexity and requires no authentication or user interaction. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 01, 2026
Unauthenticated information disclosure in WP Popular Posts (all versions up to and including 7.4.2) lets any remote attacker read sensitive edit-context fields - raw title, raw content body, password, meta, status, and guid - from non-public post objects such as drafts, private or password-protected posts, and wp_block synced patterns that WordPress core itself refuses to expose to anonymous callers. Scoring CVSS 3.1 as AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N (5.3 Medium), the flaw requires no authentication, user interaction, or non-default configuration because the plugin's REST route is registered with a permission_callback of __return_true and passes the caller-supplied context parameter (for example context=edit) directly into WP_REST_Posts_Controller::prepare_item_for_response() while the underlying query accepts an arbitrary post_type without enforcing public or show_in_rest visibility. The practical limit is data-dependent rather than access-dependent - a site with no sensitive non-public content leaks little - and no public exploit code or confirmed active exploitation was identified at time of analysis.
RemediationAI
No tagged patched release is confirmed at time of analysis, but upstream fix code is available: the WordPress.org Trac changeset 3715724 modifies wordpress-popular-posts trunk, including src/Rest/PostsEndpoint.php (https://plugins.trac.wordpress.org/changeset/3715724/wordpress-popular-posts/trunk and https://plugins.trac.wordpress.org/changeset/3715724/wordpress-popular-posts/trunk/src/Rest/PostsEndpoint.php), so the status is best described as upstream fix available (changeset/commit); released patched version not independently confirmed. Administrators should upgrade to the first plugin release published after 7.4.2 that incorporates this changeset, and monitor the Wordfence advisory (https://www.wordfence.com/threat-intel/vulnerabilities/id/09c63c2f-d2d3-4c39-8329-0e0e5b62db98?source=cve) for the version number once assigned. If immediate removal or update is not possible, apply compensating controls in this order: block or rate-limit the plugin's REST route at the web server, reverse proxy, or WAF (deny anonymous access to the /wp-json path used by the plugin and strip caller-supplied context=edit parameters) - the trade-off is that any legitimate front-end feature or headless integration that consumes this endpoint will stop working; alternatively deactivate the WP Popular Posts plugin entirely until a patched version is installed, which removes all plugin-driven widgets and blocks from the site; or, where the plugin must stay active, restrict the vulnerable route to trusted IP ranges or authenticated requests only and audit the site for non-public post objects (drafts, private and password-protected posts, wp_block synced patterns) that contain credentials, unpublished content, or secrets, since reducing the amount of sensitive non-public content directly reduces the value of the disclosure. Note that this is a read-only disclosure flaw - there is no integrity or availability impact and no evidence of destructive behaviour - so remediation priorities should focus on stopping the leak rather than on rebuilding compromised data.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
WP Popular Posts is a WordPress plugin (CPE cpe:2.3:a:hcabrera:wp_popular_posts:*:*:*:*:*:*:*:*) that registers its own REST API endpoints to power popular-post widgets, blocks, and shortcodes. According to the reported code references, PostsEndpoint.php registers the route with a permission_callback of __return_true (line 38), accepts a caller-controlled context parameter (line 51), and passes that value into WP_REST_Posts_Controller::prepare_item_for_response() (line 96) without first invoking get_item_permissions_check() or check_read_permission(). Because prepare_item_for_response() honours the 'edit' context by returning raw, unfiltered fields - raw title, raw content body, post password, meta, status, and guid - the missing permission gate converts a read-oriented endpoint into an editing-context data source. The second component of the bug is in Query.php (line 421), where the post_type value is accepted without enforcing the public or show_in_rest flags, so the query can retrieve object types such as wp_block synced patterns that core deliberately hides from unauthenticated REST callers. The root cause maps to CWE-200 (Exposure of Sensitive Information to an Unauthorized Actor): an authorization-context confusion between read and edit representations of a post object, combined with an unvalidated query parameter, yields unauthenticated disclosure of data that core's own REST layer protects behind capability checks.
Know when Wp Popular Posts gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
Unauthenticated network REST route with no interaction (AV:N/AC:L/PR:N/UI:N); read-only exposure of post-object fields gives C:L (arguably C:H given raw content/password) with no I/A impact.
Primary rating from Vendor (Wordfence).
CVSS VectorVendor: Wordfence
DescriptionCVE.org
The WP Popular Posts plugin for WordPress is vulnerable to Sensitive Information Exposure in all versions up to, and including, 7.4.2 via the 'context' parameter. This makes it possible for unauthenticated attackers to extract sensitive edit-context fields - including raw title, raw content body, password, meta, status, and guid - from non-public post objects such as wp_block synced patterns that WordPress core itself refuses to expose to unauthenticated callers. This is possible because the plugin's REST route is registered with a permission_callback of __return_true and passes the caller-supplied context parameter (e.g., context=edit) directly to WP_REST_Posts_Controller::prepare_item_for_response() without invoking get_item_permissions_check() or check_read_permission(), while the underlying query accepts an arbitrary post_type value without enforcing public or show_in_rest visibility flags.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
EUVD-2026-90477
GHSA-595h-4jf9-gr2r
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB