PatchSiren

PatchSiren cyber security CVE debrief

CVE-2026-7459 eskapism CVE debrief

An authenticated account-takeover vulnerability exists in the Simple History WordPress plugin (versions ≤ 5.26.0). The plugin's experimental REST API event-reaction endpoints (`react_to_event` / `unreact_to_event`) use `get_items_permissions_check()` as their permission callback, which only confirms the caller is logged in and does not apply the per-logger capability checks enforced by `Log_Query`. A Subscriber-level attacker can POST to `/wp-json/simple-history/v1/events/<id>/react` with `_fields=context` to read the full context of any Simple History event. Because `SimpleUserLogger` records the complete password-reset email body—including the reset URL with key—an attacker can trigger an administrator password reset, brute-force recent event IDs through the reaction endpoint, extract the reset key from `context.message`, and complete the reset to seize the administrator account. Exploitation is contingent on the non-default experimental-features option (`simple_history_experimental_features_enabled`) having been enabled by an administrator. The vulnerability was published on 2026-05-30 and last modified on 2026-06-01. A changeset (3524112) in the WordPress plugin repository indicates a fix was committed to trunk.

Vendor
eskapism
Product
Simple History – Track, Log, and Audit WordPress Changes
CVSS
HIGH 7.5
CISA KEV
Not listed in stored evidence
Original CVE published
2026-05-30
Original CVE updated
2026-07-22
Advisory published
2026-05-30
Advisory updated
2026-07-22

Who should care

WordPress site administrators using the Simple History plugin, especially those who have enabled experimental features; security operations teams monitoring for authenticated privilege-escalation activity; and WordPress hosting providers managing plugin update cadences.

Technical summary

The Simple History plugin registers `react_to_event()` and `unreact_to_event()` REST endpoints with `get_items_permissions_check()` as the `permission_callback`. This callback validates authentication but omits the logger-specific capability checks that `Log_Query` normally enforces. An authenticated Subscriber can therefore retrieve the `context` field of arbitrary events, including `SimpleUserLogger` events that store the full password-reset email body. By triggering an administrator password reset and reading the resulting event context, the attacker obtains the reset key and completes account takeover. The attack requires the non-default `simple_history_experimental_features_enabled` option to be active.

Defensive priority

HIGH

Recommended defensive actions

  • Upgrade Simple History to a version newer than 5.26.0 (a fix changeset is present in trunk).
  • If immediate patching is not possible, disable the experimental features option (`simple_history_experimental_features_enabled`) to prevent exposure of the affected REST endpoints.
  • Review Simple History event logs for suspicious `_fields=context` queries to the `/wp-json/simple-history/v1/events/<id>/react` endpoint by low-privilege users.
  • Audit administrator accounts for unauthorized password resets or unexpected login activity following the disclosure date.
  • Restrict REST API access for untrusted or low-privilege users via additional capability checks or network-level controls if the plugin must remain unpatched.

Evidence notes

The vulnerability description and source references identify the affected endpoints and permission-callback flaw. Source references point to the 5.26.0 tag and trunk versions of `class-event.php` and `class-wp-rest-events-controller.php`, including line-specific locations for the reaction endpoints and permission checks. A changeset reference (3524112) documents the trunk fix. The Wordfence advisory link provides the coordinated disclosure source. The CVSS 3.1 vector (AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H) yields a base score of 7.5 (HIGH). CWE-640 (Weak Password Recovery Mechanism for Forgotten Password) is cited as the weakness classification.

Sources and references

Verified primary and authoritative sources

  • CVE-2026-7459 CVE Program record

    Publisher, destination, and source semantics verified

    URL: https://www.cve.org/CVERecord?id=CVE-2026-7459

    CVE Program - Official CVE Program record with source-provided CVE metadata.

  • CVE-2026-7459 NVD vulnerability detail

    Publisher, destination, and source semantics verified

    URL: https://nvd.nist.gov/vuln/detail/CVE-2026-7459

    NIST National Vulnerability Database - Official NIST NVD detail page and source-specific vulnerability assessment.

Supplemental references

  • Source reference

    Unverified legacy reference

    URL: https://plugins.trac.wordpress.org/browser/simple-history/tags/5.26.0/inc/class-event.php

    [email protected]

  • Source reference

    Unverified legacy reference

    URL: https://plugins.trac.wordpress.org/browser/simple-history/tags/5.26.0/inc/class-wp-rest-events-controller.php

    [email protected]

  • Source reference

    Unverified legacy reference

    URL: https://plugins.trac.wordpress.org/browser/simple-history/tags/5.26.0/inc/class-wp-rest-events-controller.php

    [email protected]

  • Source reference

    Unverified legacy reference

    URL: https://plugins.trac.wordpress.org/browser/simple-history/tags/5.26.0/inc/class-wp-rest-events-controller.php

    [email protected]

  • Source reference

    Unverified legacy reference

    URL: https://plugins.trac.wordpress.org/browser/simple-history/tags/5.26.0/inc/class-wp-rest-events-controller.php

    [email protected]

  • Source reference

    Unverified legacy reference

    URL: https://plugins.trac.wordpress.org/browser/simple-history/trunk/inc/class-event.php

    [email protected]

  • Source reference

    Unverified legacy reference

    URL: https://plugins.trac.wordpress.org/browser/simple-history/trunk/inc/class-wp-rest-events-controller.php

    [email protected]

Methodology and review provenance

AI-assisted synthesis based on stored public vulnerability evidence. System validation, approval state, and publication status do not by themselves establish human review of this revision. PatchSiren helps prioritize defensive review and does not prove exposure or remediation on any system.