
Defensive analysis of CVE-2026-9055, an unauthenticated privilege escalation in Amelia WordPress booking plugin. Provides root cause breakdown, detection guidance, IoCs, and mitigation checklist. No exploit code.
Research writeup by Sentinel AI Defense. Defensive analysis only — no working exploit or PoC is published here for this vulnerability.
An unauthenticated privilege escalation vulnerability in the Amelia (Premium) WordPress booking plugin that allows an attacker with no account at all to climb from anonymous visitor to full site administrator through a multi-step abuse of the customer/provider update endpoints.
CVE-2026-9055 is an Improper Privilege Management vulnerability (CWE-269) in the Booking for Appointments and Events Calendar – Amelia (Premium) plugin for WordPress, affecting versions 8.0 through 9.6.2. The flaw stems from insufficient validation of the attacker-controlled type parameter on the customer-update endpoint, combined with unchecked handling of the externalId parameter.
Wordfence assigned the CVE and published it on September 2, 2026, with a reservation date of May 20, 2026. It carries a CVSS v3.1 base score of 9.8 (Critical):
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
This reflects a network-exploitable, low-complexity flaw requiring no privileges and no user interaction.
| Attribute | Value |
|---|---|
| CVE ID | CVE-2026-9055 |
| CVSS v3.1 | 9.8 (Critical) |
| CWE | CWE-269 — Improper Privilege Management |
| Attack Vector | Network |
| Privileges Required | None |
| User Interaction | None |
| Assigner | Wordfence |
| Reserved | 2026-05-20 |
| Published | 2026-09-02 |
Verify against the vendor's official changelog for the fixed release rather than relying on version numbers alone.
The vulnerability lives in the customer-update REST endpoint's handling of role assignment. At a high level (no exploitation steps included):
type value when deciding what role to assign a customer record, rather than deriving the role from server-side authorization state.externalId parameter is set to 0, the handler triggers creation of a WordPress user carrying the wpamelia-manager role — a privileged internal role used by the plugin.This mirrors a broader pattern seen across several WordPress plugin CVEs this cycle (e.g. CVE-2026-0844, CVE-2026-4021): privilege or role-defining parameters accepted from client input without re-validating against server-held authorization state.
Unauthenticated visitor
→ sends crafted request to customer-update endpoint (type + externalId=0)
→ WordPress account created with wpamelia-manager role
→ manager-level session used against provider-update endpoint
→ provider entity bound to an existing administrator's user ID
→ administrator credentials overwritten
→ full site takeover
No macros, payload staging, or external C2 infrastructure is needed at this stage — this is a pure logic-flaw chain confined to the WordPress REST API surface.
See detection/detection-guidance.md for the full rule set. Summary:
/wp-json/amelia/v1/...).externalId=0 value paired with a type field, especially from sessions with no prior authentication.wp_usermeta / wp_capabilities for unexpected assignment of the wpamelia-manager role or elevation to administrator outside known admin activity.wpamelia-manager that admins did not create.See detection/mitigation-checklist.md for the full checklist. Summary:
wpamelia-manager and administrator accounts now — the CVE was reserved back in May 2026, so exploitation may predate public disclosure.references/sources.md — Wordfence advisory, OffSeq Threat Radar entry, and vendor changelog links.This repository is published for defensive and educational purposes only. It contains analysis, detection logic, and mitigation guidance derived from public vulnerability disclosures. No functional exploit code is provided. Use this information only on systems you are authorized to test and defend.
Maintained by Sentinel AI Defense · Findings shared responsibly under coordinated disclosure.