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

CVE-2024-6410

CVE-2024-6410 Insecure Direct Object Reference in Profilegrid
📅 PUBLISHED: 2024-07-10 04:31 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.21%
👁️
0.21% probability
5.2× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1190
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
License: Freemium
VULNERABLE: version not auto-detected — verify your deployed version locally
CVSS VECTOR BREAKDOWN 4.3
AV: N Attack Vector Network
AC: L Attack Complexity Low
PR: L Privileges Required Low
UI: N User Interaction None
S: U Scope Unchanged
C: N Confidentiality None
I: L Integrity Low
A: N Availability None
4.3
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2024-6410 is an Insecure Direct Object Reference (IDOR) vulnerability discovered in the ProfileGrid – User Profiles, Groups and Communities WordPress plugin, affecting all versions up to and including 5.8.9. The flaw resides in the pm_upload_image function, which fails to validate a user-controlled key, allowing authenticated attackers with Subscriber-level access or higher to arbitrarily change the profile picture of any user on the site. This vulnerability is classified as a WordPress ecosystem issue and does not involve Apache or Nginx.

The vulnerability has a CVSS score of 4.3 (Medium), with an EPSS probability of 0.0%, indicating low active exploitation in the wild. No public proof-of-concept code or patch details are currently available, making this a high-priority target for proactive defense.

⚡ 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

Supply Chain & Package Security

This vulnerability affects a WordPress plugin distributed via the official WordPress plugin repository. Organizations using ProfileGrid should immediately inventory their plugin version and apply any available updates. Since no official patch has been released, consider disabling the plugin or implementing virtual patching via a Web Application Firewall (WAF) until a fix is available.

CVSS Breakdown & Threat Level

  • CVSS Score: 4.3 (Medium)
  • Attack Vector: Network (AV:N)
  • Attack Complexity: Low (AC:L)
  • Privileges Required: Low (PR:L) – Subscriber-level access
  • User Interaction: None (UI:N)
  • Scope: Unchanged (S:U)
  • Confidentiality Impact: None (C:N)
  • Integrity Impact: Low (I:L) – Profile picture modification
  • Availability Impact: None (A:N)

The low EPSS score (0.0%) suggests limited active exploitation, but the ease of exploitation and potential for social engineering (e.g., impersonation) elevate the risk for targeted attacks.

Deep Dive & Mechanics

The vulnerability is rooted in the pm_upload_image function within the ProfileGrid plugin. This function is responsible for handling profile picture uploads. The flaw occurs because the function uses a user-controlled key (likely a user ID or similar identifier) without proper validation. An authenticated attacker can manipulate this key to specify a different user’s profile, effectively overwriting their profile picture.

Technical Flow:

  1. An authenticated user (Subscriber or higher) initiates a profile picture upload via the pm_upload_image function.
  2. The function retrieves a user identifier from a request parameter (e.g., user_id).
  3. Due to missing authorization checks, the function does not verify that the requesting user owns the target user ID.
  4. The attacker can supply an arbitrary user ID, causing the plugin to update the profile picture of that user.

This IDOR vulnerability (CWE-639) allows an attacker to deface user profiles, impersonate administrators, or cause reputational damage.

Vulnerable vs. Patched Code

Since no official patch is available, the following is a conceptual comparison based on the vulnerability description.

Vulnerable Code (Conceptual):

function pm_upload_image() {
    $user_id = $_POST['user_id']; // No validation
    // Process upload and update user meta for $user_id
    update_user_meta($user_id, 'profile_picture', $uploaded_file);
}

Patched Code (Conceptual):

function pm_upload_image() {
    $current_user_id = get_current_user_id();
    $target_user_id = intval($_POST['user_id']);
    // Verify the current user is allowed to modify the target user
    if ($current_user_id !== $target_user_id && !current_user_can('edit_users')) {
        wp_die('Unauthorized');
    }
    // Process upload and update user meta for $target_user_id
    update_user_meta($target_user_id, 'profile_picture', $uploaded_file);
}

The patched version adds a capability check to ensure the requesting user either owns the target user ID or has the edit_users capability (e.g., Administrator).

Exploitation & Lab Setup

Red Team

Prerequisites:

  • WordPress instance with ProfileGrid plugin version <= 5.8.9
  • Authenticated user account with Subscriber role or higher
  • Ability to send HTTP POST requests (e.g., using Burp Suite, cURL, or Python)

Exploitation Steps:

  1. Log in as a Subscriber-level user and obtain a valid session cookie.
  2. Intercept the profile picture upload request using a proxy like Burp Suite.
  3. Modify the user_id parameter to target another user (e.g., an administrator with ID 1).
  4. Upload a malicious or defamatory image.
  5. The target user’s profile picture is replaced.

Example cURL Command:

curl -X POST \
  -c cookies.txt -b cookies.txt \
  -F "action=pm_upload_image" \
  -F "user_id=1" \
  -F "profile_picture=@/path/to/malicious.jpg" \
  http://target-site.com/wp-admin/admin-ajax.php

Blue Team

Detection & Prevention:

  • Monitor for unusual profile picture changes, especially from low-privileged users.
  • Implement a Web Application Firewall (WAF) rule to block requests with manipulated user_id parameters.
  • Restrict the pm_upload_image AJAX action to only allow users to modify their own profile.
  • Enable logging of all AJAX requests and review for anomalies.

Hunting Query (Splunk):

index=web sourcetype=access_combined
| search uri=*admin-ajax.php* action=pm_upload_image
| eval user_id = extract("user_id=(\d+)", 1)
| where user_id != "0" AND user_id != "current_user_id"
| table _time, src_ip, user, user_id, status

Indicators of Compromise (IOCs)

  • Network: HTTP POST requests to /wp-admin/admin-ajax.php with action=pm_upload_image and a manipulated user_id parameter.
  • File: Unexpected profile picture files in /wp-content/uploads/profilegrid/ directory.
  • Log: WordPress debug log entries showing pm_upload_image calls with mismatched user IDs.
  • User: Multiple profile picture changes from the same low-privileged user account.

Detection Engineering

YARA Rule

rule Detect_ProfileGrid_IDOR_Exploit {
    meta:
        description = "Detects exploitation attempts of CVE-2024-6410 in ProfileGrid plugin"
        author = "Valters IT"
        date = "2024-01-01"
        reference = "CVE-2024-6410"
    strings:
        $ajax_action = "pm_upload_image"
        $user_id_param = "user_id"
        $wp_ajax = "admin-ajax.php"
    condition:
        all of them
}

Sigma Rule

title: ProfileGrid IDOR Exploitation Attempt
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects attempts to exploit CVE-2024-6410 by manipulating user_id parameter
author: Valters IT
date: 2024/01/01
logsource:
    category: webserver
    product: apache
detection:
    selection:
        cs-uri-query|contains: 
            - "action=pm_upload_image"
            - "user_id="
    condition: selection
falsepositives:
    - Legitimate profile picture uploads by administrators
level: medium

Suricata Rule

alert http $HOME_NET any -> $EXTERNAL_NET any (
    msg:"CVE-2024-6410 - ProfileGrid IDOR Exploitation Attempt";
    flow:to_server,established;
    content:"POST"; http_method;
    content:"/wp-admin/admin-ajax.php"; http_uri;
    content:"action=pm_upload_image"; http_client_body;
    content:"user_id="; http_client_body;
    sid:1000001;
    rev:1;
    reference:cve,2024-6410;
    classtype:attempted-user;
    priority:2;
)

Remediation & Mitigation

  1. Immediate Action: Disable the ProfileGrid plugin until an official patch is released.
  2. Virtual Patching: Deploy a WAF rule to block requests to admin-ajax.php with action=pm_upload_image and a user_id parameter that does not match the authenticated user.
  3. Code Fix: Implement authorization checks in the pm_upload_image function as shown in the patched code example.
  4. Monitoring: Enable detailed logging for AJAX requests and monitor for suspicious profile picture changes.
  5. User Education: Inform users about the risk of profile impersonation and encourage strong authentication.

Valters IT
Securing Digital Frontiers

👁️ 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:"wp-content/plugins/profilegrid"
http.html:"ProfileGrid"
http.title:"ProfileGrid"

💣 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-6410/ · 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.