Search
Find a vulnerability
Search criteria
ⓘ
Use this form to refine search results.
Full-text search supports keyword queries with ranking and filtering.
You can combine vendor, product, and sources to narrow results.
Enable “Apply ordering” to sort by date instead of relevance.
2 vulnerabilities by davefx
CVE-2026-104767 (GCVE-0-2026-104767)
Vulnerability from nvd – Published: 2026-10-14 01:27 – Updated: 2026-10-15 16:43
VLAI
EPSS
VEX
Title
Membership & User Roles for WooCommerce (Automatic Role Changer) <= 20260828 - Authenticated (Subscriber+) Privilege Escalation to Stale Foreign Role Cache
Summary
The Membership & User Roles for WooCommerce (Automatic Role Changer) plugin for WordPress is vulnerable to Privilege Escalation in versions up to, and including, 20260828. This is due to the `maybe_add_role_to_user()` function unconditionally re-assigning every role stored in the `dfxwcrc_foreign_roles` user meta cache without verifying that each cached role is still actively assigned by the external provider — a condition made permanent by `remember_foreign_roles()`, which merges new foreign roles into the cache but never evicts roles that have since been revoked. This makes it possible for authenticated attackers with subscriber-level access and above to restore a previously revoked Administrator role to their own account, gaining full administrative control of the site, by triggering any role-assignment event such as completing a purchase for a role-mapped product. Exploitation requires Replace Roles mode to be enabled and the attacker's account to have previously received Administrator legitimately through a separate role-management mechanism while the plugin was active, so that `administrator` was written into the `dfxwcrc_foreign_roles` user meta cache before the external provider revoked it.
Severity
7.5 (High)
SSVC
Exploitation: none
Automatable: no
Technical Impact: total
CISA Coordinator · CISA-ADP (v2.0.3)
Decision recorded 2026-10-15 10:52 UTC
CWE
- CWE-269 - Improper Privilege Management
Assigner
References
6 references
Impacted products
1 product
| Vendor | Product | Version | |
|---|---|---|---|
| davefx | Membership & User Roles for WooCommerce (Automatic Role Changer) |
Affected:
0 , ≤ 20260828
(semver)
|
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-104767",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-15T10:52:56.368683Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-15T16:43:51.168Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Membership \u0026 User Roles for WooCommerce (Automatic Role Changer)",
"vendor": "davefx",
"versions": [
{
"lessThanOrEqual": "20260828",
"status": "affected",
"version": "0",
"versionType": "semver"
}
]
}
],
"credits": [
{
"lang": "en",
"type": "finder",
"value": "Azgnt"
}
],
"descriptions": [
{
"lang": "en",
"value": "The Membership \u0026 User Roles for WooCommerce (Automatic Role Changer) plugin for WordPress is vulnerable to Privilege Escalation in versions up to, and including, 20260828. This is due to the `maybe_add_role_to_user()` function unconditionally re-assigning every role stored in the `dfxwcrc_foreign_roles` user meta cache without verifying that each cached role is still actively assigned by the external provider \u2014 a condition made permanent by `remember_foreign_roles()`, which merges new foreign roles into the cache but never evicts roles that have since been revoked. This makes it possible for authenticated attackers with subscriber-level access and above to restore a previously revoked Administrator role to their own account, gaining full administrative control of the site, by triggering any role-assignment event such as completing a purchase for a role-mapped product. Exploitation requires Replace Roles mode to be enabled and the attacker\u0027s account to have previously received Administrator legitimately through a separate role-management mechanism while the plugin was active, so that `administrator` was written into the `dfxwcrc_foreign_roles` user meta cache before the external provider revoked it."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.5,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-269",
"description": "CWE-269 Improper Privilege Management",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-14T01:27:14.736Z",
"orgId": "b15e7b5b-3da4-40ae-a43c-f7aa60e62599",
"shortName": "Wordfence"
},
"references": [
{
"url": "https://www.wordfence.com/threat-intel/vulnerabilities/id/833d9f92-9af1-4332-9b1d-2d1d37073b4b?source=cve"
},
{
"url": "https://plugins.trac.wordpress.org/browser/dfx-woo-role-changer/trunk/dfx-woo-role-changer.php#L468"
},
{
"url": "https://plugins.trac.wordpress.org/browser/dfx-woo-role-changer/trunk/dfx-woo-role-changer.php#L427"
},
{
"url": "https://plugins.trac.wordpress.org/browser/dfx-woo-role-changer/trunk/dfx-woo-role-changer.php#L414"
},
{
"url": "https://plugins.trac.wordpress.org/browser/dfx-woo-role-changer/trunk/dfx-woo-role-changer.php#L351"
},
{
"url": "https://plugins.trac.wordpress.org/changeset?reponame=\u0026old=3732550%40dfx-woo-role-changer\u0026new=3732550%40dfx-woo-role-changer"
}
],
"timeline": [
{
"lang": "en",
"time": "2026-10-07T11:22:33.000Z",
"value": "Vendor Notified"
},
{
"lang": "en",
"time": "2026-10-13T12:40:58.000Z",
"value": "Disclosed"
}
],
"title": "Membership \u0026 User Roles for WooCommerce (Automatic Role Changer) \u003c= 20260828 - Authenticated (Subscriber+) Privilege Escalation to Stale Foreign Role Cache"
}
},
"cveMetadata": {
"assignerOrgId": "b15e7b5b-3da4-40ae-a43c-f7aa60e62599",
"assignerShortName": "Wordfence",
"cveId": "CVE-2026-104767",
"datePublished": "2026-10-14T01:27:14.736Z",
"dateReserved": "2026-10-02T12:46:50.279Z",
"dateUpdated": "2026-10-15T16:43:51.168Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-104767 (GCVE-0-2026-104767)
Vulnerability from cvelistv5 – Published: 2026-10-14 01:27 – Updated: 2026-10-15 16:43
VLAI
EPSS
VEX
Title
Membership & User Roles for WooCommerce (Automatic Role Changer) <= 20260828 - Authenticated (Subscriber+) Privilege Escalation to Stale Foreign Role Cache
Summary
The Membership & User Roles for WooCommerce (Automatic Role Changer) plugin for WordPress is vulnerable to Privilege Escalation in versions up to, and including, 20260828. This is due to the `maybe_add_role_to_user()` function unconditionally re-assigning every role stored in the `dfxwcrc_foreign_roles` user meta cache without verifying that each cached role is still actively assigned by the external provider — a condition made permanent by `remember_foreign_roles()`, which merges new foreign roles into the cache but never evicts roles that have since been revoked. This makes it possible for authenticated attackers with subscriber-level access and above to restore a previously revoked Administrator role to their own account, gaining full administrative control of the site, by triggering any role-assignment event such as completing a purchase for a role-mapped product. Exploitation requires Replace Roles mode to be enabled and the attacker's account to have previously received Administrator legitimately through a separate role-management mechanism while the plugin was active, so that `administrator` was written into the `dfxwcrc_foreign_roles` user meta cache before the external provider revoked it.
Severity
7.5 (High)
SSVC
Exploitation: none
Automatable: no
Technical Impact: total
CISA Coordinator · CISA-ADP (v2.0.3)
Decision recorded 2026-10-15 10:52 UTC
CWE
- CWE-269 - Improper Privilege Management
Assigner
References
6 references
Impacted products
1 product
| Vendor | Product | Version | |
|---|---|---|---|
| davefx | Membership & User Roles for WooCommerce (Automatic Role Changer) |
Affected:
0 , ≤ 20260828
(semver)
|
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-104767",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-15T10:52:56.368683Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-15T16:43:51.168Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Membership \u0026 User Roles for WooCommerce (Automatic Role Changer)",
"vendor": "davefx",
"versions": [
{
"lessThanOrEqual": "20260828",
"status": "affected",
"version": "0",
"versionType": "semver"
}
]
}
],
"credits": [
{
"lang": "en",
"type": "finder",
"value": "Azgnt"
}
],
"descriptions": [
{
"lang": "en",
"value": "The Membership \u0026 User Roles for WooCommerce (Automatic Role Changer) plugin for WordPress is vulnerable to Privilege Escalation in versions up to, and including, 20260828. This is due to the `maybe_add_role_to_user()` function unconditionally re-assigning every role stored in the `dfxwcrc_foreign_roles` user meta cache without verifying that each cached role is still actively assigned by the external provider \u2014 a condition made permanent by `remember_foreign_roles()`, which merges new foreign roles into the cache but never evicts roles that have since been revoked. This makes it possible for authenticated attackers with subscriber-level access and above to restore a previously revoked Administrator role to their own account, gaining full administrative control of the site, by triggering any role-assignment event such as completing a purchase for a role-mapped product. Exploitation requires Replace Roles mode to be enabled and the attacker\u0027s account to have previously received Administrator legitimately through a separate role-management mechanism while the plugin was active, so that `administrator` was written into the `dfxwcrc_foreign_roles` user meta cache before the external provider revoked it."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.5,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-269",
"description": "CWE-269 Improper Privilege Management",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-14T01:27:14.736Z",
"orgId": "b15e7b5b-3da4-40ae-a43c-f7aa60e62599",
"shortName": "Wordfence"
},
"references": [
{
"url": "https://www.wordfence.com/threat-intel/vulnerabilities/id/833d9f92-9af1-4332-9b1d-2d1d37073b4b?source=cve"
},
{
"url": "https://plugins.trac.wordpress.org/browser/dfx-woo-role-changer/trunk/dfx-woo-role-changer.php#L468"
},
{
"url": "https://plugins.trac.wordpress.org/browser/dfx-woo-role-changer/trunk/dfx-woo-role-changer.php#L427"
},
{
"url": "https://plugins.trac.wordpress.org/browser/dfx-woo-role-changer/trunk/dfx-woo-role-changer.php#L414"
},
{
"url": "https://plugins.trac.wordpress.org/browser/dfx-woo-role-changer/trunk/dfx-woo-role-changer.php#L351"
},
{
"url": "https://plugins.trac.wordpress.org/changeset?reponame=\u0026old=3732550%40dfx-woo-role-changer\u0026new=3732550%40dfx-woo-role-changer"
}
],
"timeline": [
{
"lang": "en",
"time": "2026-10-07T11:22:33.000Z",
"value": "Vendor Notified"
},
{
"lang": "en",
"time": "2026-10-13T12:40:58.000Z",
"value": "Disclosed"
}
],
"title": "Membership \u0026 User Roles for WooCommerce (Automatic Role Changer) \u003c= 20260828 - Authenticated (Subscriber+) Privilege Escalation to Stale Foreign Role Cache"
}
},
"cveMetadata": {
"assignerOrgId": "b15e7b5b-3da4-40ae-a43c-f7aa60e62599",
"assignerShortName": "Wordfence",
"cveId": "CVE-2026-104767",
"datePublished": "2026-10-14T01:27:14.736Z",
"dateReserved": "2026-10-02T12:46:50.279Z",
"dateUpdated": "2026-10-15T16:43:51.168Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}