Search
Find a vulnerability
Search criteria
2 vulnerabilities by rnlab
CVE-2026-104799 (GCVE-0-2026-104799)
Vulnerability from nvd – Published: 2026-11-04 11:26 – Updated: 2026-11-04 15:18
VLAI
EPSS
VEX
Title
Mobile builder <= 1.4.2 - Authenticated (Subscriber+) Privilege Escalation to wcfm-profile-settings REST Route 'key'/'data' Parameters
Summary
The Mobile builder plugin for WordPress is vulnerable to Privilege Escalation in all versions up to, and including, 1.4.2 via the `wcfmmp_profile_settings()` REST handler exposed at `POST /mobile-builder/v1/wcfm-profile-settings`. This is due to a PHP loose-comparison logic flaw in the meta key allow-list check — `strpos( $key, 'mobile_builder' ) == 0` evaluates to `true` for any key that does *not* contain the substring `'mobile_builder'` because `strpos()` returns `false` on no match and `false == 0` is `true` in PHP — combined with a `permission_callback` (`user_permissions_check`) that grants access to any authenticated user by only verifying `$user->exists()`. This makes it possible for authenticated attackers, with Subscriber-level access and above, to pass an unsanitized `data` array via the `key` and `data` parameters directly to `update_user_meta()`, overwriting arbitrary user meta on their own account — including the `wp_capabilities` meta key — to grant themselves Administrator-level privileges.
Severity
8.8 (High)
SSVC
Exploitation: none
Automatable: no
Technical Impact: total
CISA Coordinator · CISA-ADP (v2.0.3)
Decision recorded 2026-11-04 14:40 UTC
CWE
- CWE-269 - Improper Privilege Management
Assigner
References
7 references
Impacted products
1 product
| Vendor | Product | Version | |
|---|---|---|---|
| rnlab | Mobile builder |
Affected:
0 , ≤ 1.4.2
(semver)
|
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-104799",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-11-04T14:40:00.750718Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-11-04T15:18:54.602Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Mobile builder",
"vendor": "rnlab",
"versions": [
{
"lessThanOrEqual": "1.4.2",
"status": "affected",
"version": "0",
"versionType": "semver"
}
]
}
],
"credits": [
{
"lang": "en",
"type": "finder",
"value": "sermsak"
}
],
"descriptions": [
{
"lang": "en",
"value": "The Mobile builder plugin for WordPress is vulnerable to Privilege Escalation in all versions up to, and including, 1.4.2 via the `wcfmmp_profile_settings()` REST handler exposed at `POST /mobile-builder/v1/wcfm-profile-settings`. This is due to a PHP loose-comparison logic flaw in the meta key allow-list check \u2014 `strpos( $key, \u0027mobile_builder\u0027 ) == 0` evaluates to `true` for any key that does *not* contain the substring `\u0027mobile_builder\u0027` because `strpos()` returns `false` on no match and `false == 0` is `true` in PHP \u2014 combined with a `permission_callback` (`user_permissions_check`) that grants access to any authenticated user by only verifying `$user-\u003eexists()`. This makes it possible for authenticated attackers, with Subscriber-level access and above, to pass an unsanitized `data` array via the `key` and `data` parameters directly to `update_user_meta()`, overwriting arbitrary user meta on their own account \u2014 including the `wp_capabilities` meta key \u2014 to grant themselves Administrator-level privileges."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 8.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:N/AC:L/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-11-04T11:26:23.248Z",
"orgId": "b15e7b5b-3da4-40ae-a43c-f7aa60e62599",
"shortName": "Wordfence"
},
"references": [
{
"url": "https://www.wordfence.com/threat-intel/vulnerabilities/id/bc1a233e-ea62-4fb0-98eb-6b2aa893555d?source=cve"
},
{
"url": "https://plugins.trac.wordpress.org/browser/mobile-builder/trunk/api/class-mobile-builder-wcfm.php#L94"
},
{
"url": "https://plugins.trac.wordpress.org/browser/mobile-builder/trunk/api/class-mobile-builder-wcfm.php#L93"
},
{
"url": "https://plugins.trac.wordpress.org/browser/mobile-builder/trunk/api/class-mobile-builder-wcfm.php#L344"
},
{
"url": "https://plugins.trac.wordpress.org/browser/mobile-builder/trunk/api/class-mobile-builder-wcfm.php#L78"
},
{
"url": "https://plugins.trac.wordpress.org/browser/mobile-builder/trunk/api/class-mobile-builder-wcfm.php#L87"
},
{
"url": "https://plugins.trac.wordpress.org/browser/mobile-builder/trunk/api/class-mobile-builder-wcfm.php#L88"
}
],
"timeline": [
{
"lang": "en",
"time": "2026-11-03T21:31:34.000Z",
"value": "Disclosed"
}
],
"title": "Mobile builder \u003c= 1.4.2 - Authenticated (Subscriber+) Privilege Escalation to wcfm-profile-settings REST Route \u0027key\u0027/\u0027data\u0027 Parameters"
}
},
"cveMetadata": {
"assignerOrgId": "b15e7b5b-3da4-40ae-a43c-f7aa60e62599",
"assignerShortName": "Wordfence",
"cveId": "CVE-2026-104799",
"datePublished": "2026-11-04T11:26:23.248Z",
"dateReserved": "2026-10-02T13:14:22.775Z",
"dateUpdated": "2026-11-04T15:18:54.602Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-104799 (GCVE-0-2026-104799)
Vulnerability from cvelistv5 – Published: 2026-11-04 11:26 – Updated: 2026-11-04 15:18
VLAI
EPSS
VEX
Title
Mobile builder <= 1.4.2 - Authenticated (Subscriber+) Privilege Escalation to wcfm-profile-settings REST Route 'key'/'data' Parameters
Summary
The Mobile builder plugin for WordPress is vulnerable to Privilege Escalation in all versions up to, and including, 1.4.2 via the `wcfmmp_profile_settings()` REST handler exposed at `POST /mobile-builder/v1/wcfm-profile-settings`. This is due to a PHP loose-comparison logic flaw in the meta key allow-list check — `strpos( $key, 'mobile_builder' ) == 0` evaluates to `true` for any key that does *not* contain the substring `'mobile_builder'` because `strpos()` returns `false` on no match and `false == 0` is `true` in PHP — combined with a `permission_callback` (`user_permissions_check`) that grants access to any authenticated user by only verifying `$user->exists()`. This makes it possible for authenticated attackers, with Subscriber-level access and above, to pass an unsanitized `data` array via the `key` and `data` parameters directly to `update_user_meta()`, overwriting arbitrary user meta on their own account — including the `wp_capabilities` meta key — to grant themselves Administrator-level privileges.
Severity
8.8 (High)
SSVC
Exploitation: none
Automatable: no
Technical Impact: total
CISA Coordinator · CISA-ADP (v2.0.3)
Decision recorded 2026-11-04 14:40 UTC
CWE
- CWE-269 - Improper Privilege Management
Assigner
References
7 references
Impacted products
1 product
| Vendor | Product | Version | |
|---|---|---|---|
| rnlab | Mobile builder |
Affected:
0 , ≤ 1.4.2
(semver)
|
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-104799",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-11-04T14:40:00.750718Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-11-04T15:18:54.602Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Mobile builder",
"vendor": "rnlab",
"versions": [
{
"lessThanOrEqual": "1.4.2",
"status": "affected",
"version": "0",
"versionType": "semver"
}
]
}
],
"credits": [
{
"lang": "en",
"type": "finder",
"value": "sermsak"
}
],
"descriptions": [
{
"lang": "en",
"value": "The Mobile builder plugin for WordPress is vulnerable to Privilege Escalation in all versions up to, and including, 1.4.2 via the `wcfmmp_profile_settings()` REST handler exposed at `POST /mobile-builder/v1/wcfm-profile-settings`. This is due to a PHP loose-comparison logic flaw in the meta key allow-list check \u2014 `strpos( $key, \u0027mobile_builder\u0027 ) == 0` evaluates to `true` for any key that does *not* contain the substring `\u0027mobile_builder\u0027` because `strpos()` returns `false` on no match and `false == 0` is `true` in PHP \u2014 combined with a `permission_callback` (`user_permissions_check`) that grants access to any authenticated user by only verifying `$user-\u003eexists()`. This makes it possible for authenticated attackers, with Subscriber-level access and above, to pass an unsanitized `data` array via the `key` and `data` parameters directly to `update_user_meta()`, overwriting arbitrary user meta on their own account \u2014 including the `wp_capabilities` meta key \u2014 to grant themselves Administrator-level privileges."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 8.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:N/AC:L/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-11-04T11:26:23.248Z",
"orgId": "b15e7b5b-3da4-40ae-a43c-f7aa60e62599",
"shortName": "Wordfence"
},
"references": [
{
"url": "https://www.wordfence.com/threat-intel/vulnerabilities/id/bc1a233e-ea62-4fb0-98eb-6b2aa893555d?source=cve"
},
{
"url": "https://plugins.trac.wordpress.org/browser/mobile-builder/trunk/api/class-mobile-builder-wcfm.php#L94"
},
{
"url": "https://plugins.trac.wordpress.org/browser/mobile-builder/trunk/api/class-mobile-builder-wcfm.php#L93"
},
{
"url": "https://plugins.trac.wordpress.org/browser/mobile-builder/trunk/api/class-mobile-builder-wcfm.php#L344"
},
{
"url": "https://plugins.trac.wordpress.org/browser/mobile-builder/trunk/api/class-mobile-builder-wcfm.php#L78"
},
{
"url": "https://plugins.trac.wordpress.org/browser/mobile-builder/trunk/api/class-mobile-builder-wcfm.php#L87"
},
{
"url": "https://plugins.trac.wordpress.org/browser/mobile-builder/trunk/api/class-mobile-builder-wcfm.php#L88"
}
],
"timeline": [
{
"lang": "en",
"time": "2026-11-03T21:31:34.000Z",
"value": "Disclosed"
}
],
"title": "Mobile builder \u003c= 1.4.2 - Authenticated (Subscriber+) Privilege Escalation to wcfm-profile-settings REST Route \u0027key\u0027/\u0027data\u0027 Parameters"
}
},
"cveMetadata": {
"assignerOrgId": "b15e7b5b-3da4-40ae-a43c-f7aa60e62599",
"assignerShortName": "Wordfence",
"cveId": "CVE-2026-104799",
"datePublished": "2026-11-04T11:26:23.248Z",
"dateReserved": "2026-10-02T13:14:22.775Z",
"dateUpdated": "2026-11-04T15:18:54.602Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}