GHSA-X9JW-34GV-V4X8
Vulnerability from github – Published: 2026-09-09 09:33 – Updated: 2026-09-09 09:33Several Newfold plugins are vulnerable to Authentication Bypass. The vulnerability exists because the plugins bundle the wp-module-data module. In the module, the authenticate() method — registered on the rest_authentication_errors filter and therefore evaluated for every unauthenticated REST API request — performs an HMAC-style Bearer token comparison that degenerates when HiiveConnection::get_auth_token() returns false: PHP coerces strrev(false) to strrev(''), collapsing the secret salt to the publicly known constant hash('sha256', '') = e3b0c44..., while all remaining hash inputs (HTTP method, request URL, raw request body, and the X-Timestamp header) remain fully attacker-controlled. This makes it possible for unauthenticated attackers to compute a valid Bearer token entirely offline, pass the token equality check, and have wp_set_current_user() invoked against the first administrator returned by get_users(['role' => 'administrator']), granting full administrator-level access and enabling arbitrary REST API operations such as creating new administrator accounts and achieving complete site takeover. Vulnerable versions are WP Plugin Crazy Domains (<= 2.5.2), WP Plugin Web (<= 2.3.4), WP Plugin Hostgator (<= 3.1.0), WP Plugin Bluehost (<= 4.17.1). The affected module is vulnerable in versions up to, and including, 2.9.4.
{
"affected": [],
"aliases": [
"CVE-2026-80099"
],
"database_specific": {
"cwe_ids": [
"CWE-287"
],
"github_reviewed": false,
"github_reviewed_at": null,
"nvd_published_at": "2026-09-09T09:17:12Z",
"severity": "HIGH"
},
"details": "Several Newfold plugins are vulnerable to Authentication Bypass. The vulnerability exists because the plugins bundle the wp-module-data module. In the module, the `authenticate()` method \u2014 registered on the `rest_authentication_errors` filter and therefore evaluated for every unauthenticated REST API request \u2014 performs an HMAC-style Bearer token comparison that degenerates when `HiiveConnection::get_auth_token()` returns `false`: PHP coerces `strrev(false)` to `strrev(\u0027\u0027)`, collapsing the secret salt to the publicly known constant `hash(\u0027sha256\u0027, \u0027\u0027) = e3b0c44...`, while all remaining hash inputs (HTTP method, request URL, raw request body, and the `X-Timestamp` header) remain fully attacker-controlled. This makes it possible for unauthenticated attackers to compute a valid Bearer token entirely offline, pass the token equality check, and have `wp_set_current_user()` invoked against the first administrator returned by `get_users([\u0027role\u0027 =\u003e \u0027administrator\u0027])`, granting full administrator-level access and enabling arbitrary REST API operations such as creating new administrator accounts and achieving complete site takeover. Vulnerable versions are WP Plugin Crazy Domains (\u003c= 2.5.2), WP Plugin Web (\u003c= 2.3.4), WP Plugin Hostgator (\u003c= 3.1.0), WP Plugin Bluehost (\u003c= 4.17.1). The affected module is vulnerable in versions up to, and including, 2.9.4.",
"id": "GHSA-x9jw-34gv-v4x8",
"modified": "2026-09-09T09:33:00Z",
"published": "2026-09-09T09:33:00Z",
"references": [
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2026-80099"
},
{
"type": "WEB",
"url": "https://github.com/newfold-labs/wp-module-data/commit/9d913fd8fa12796c4d9c09081e4aeccfa5cb1301"
},
{
"type": "WEB",
"url": "https://github.com/newfold-labs/wp-plugin-bluehost/compare/4.19.0...4.19.1"
},
{
"type": "WEB",
"url": "https://github.com/newfold-labs/wp-plugin-crazy-domains/compare/2.5.2...2.5.3"
},
{
"type": "WEB",
"url": "https://github.com/newfold-labs/wp-plugin-hostgator/compare/3.2.0...3.2.1"
},
{
"type": "WEB",
"url": "https://github.com/newfold-labs/wp-plugin-web/compare/2.3.5...2.3.6"
},
{
"type": "WEB",
"url": "https://plugins.trac.wordpress.org/browser/wp-module-data/trunk/includes/Data.php#L191"
},
{
"type": "WEB",
"url": "https://plugins.trac.wordpress.org/browser/wp-module-data/trunk/includes/Data.php#L201"
},
{
"type": "WEB",
"url": "https://plugins.trac.wordpress.org/browser/wp-module-data/trunk/includes/Data.php#L222"
},
{
"type": "WEB",
"url": "https://plugins.trac.wordpress.org/browser/wp-module-data/trunk/includes/Data.php#L69"
},
{
"type": "WEB",
"url": "https://plugins.trac.wordpress.org/browser/wp-module-data/trunk/includes/HiiveConnection.php#L406"
},
{
"type": "WEB",
"url": "https://www.wordfence.com/threat-intel/vulnerabilities/id/3ee369c0-0d7c-4142-b3ba-a518288647ba?source=cve"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"type": "CVSS_V3"
}
]
}
Sightings
| Author | Source | Type | Date | Other |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or observed by the user.
- Confirmed: The vulnerability has been validated from an analyst's perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
- Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
- Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
- Not confirmed: The user expressed doubt about the validity of the vulnerability.
- Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.
The approach is described in our paper Mapping CVEs to MITRE ATT&CK Techniques: A Curated Gold-Set Classifier and the Limits of LLM-Assisted Label Expansion.