☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
[ VENDOR STATS ]
CVSS: 5.4 CVSS:3.1/AV:N/AC:L/PR:L/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-2023-7288

CVE-2023-7288 Supply Chain Attack in Paytium
📅 PUBLISHED: 2024-10-16 06:43 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.15%
👁️
0.15% probability
3.9× 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 5.4
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: L Availability Low
5.4
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2023-7288 is a Missing Authorization vulnerability in the Paytium: Mollie payment forms & donations WordPress plugin (versions up to and including 4.3.7). The flaw resides in the update_profile_preference function, which lacks a proper capability check. This allows authenticated attackers with subscriber-level access to modify plugin settings, leading to unauthorized data modification. The vulnerability is classified as Medium severity (CVSS 5.4) and is part of the WordPress ecosystem. No public exploit code or proof-of-concept is currently available, and the vendor has not released a patch.

⚡ 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. Users are advised to monitor for updates or consider disabling the plugin if no patch is available. The plugin is not part of NPM, PyPI, Go, or Ruby ecosystems.

CVSS Breakdown & Threat Level

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

Threat Level: Medium. Exploitation requires authentication but only subscriber-level access, making it accessible to a wide range of attackers. The impact is limited to modifying plugin settings, which could lead to payment redirection or denial of service.

Deep Dive & Mechanics

The vulnerability exists in the update_profile_preference function within the Paytium plugin. This function is intended to allow users to update their profile preferences, but it lacks a capability check (e.g., current_user_can('manage_options')). As a result, any authenticated user, including subscribers, can call this function via AJAX or direct HTTP requests to modify arbitrary plugin settings.

Root Cause: Missing authorization check (CWE-862) in the update_profile_preference callback.

Attack Vector: An attacker with subscriber credentials sends a crafted POST request to the WordPress admin-ajax.php endpoint with the action update_profile_preference and malicious parameters to change plugin settings (e.g., Mollie API keys, payment endpoints).

Impact: The attacker can redirect payments, disable donation forms, or alter plugin behavior, leading to financial loss or service disruption.

Vulnerable vs. Patched Code

Vulnerable Code (<= 4.3.7):

add_action('wp_ajax_update_profile_preference', 'update_profile_preference');
function update_profile_preference() {
    // No capability check
    $settings = get_option('paytium_settings');
    $settings[$_POST['key']] = $_POST['value'];
    update_option('paytium_settings', $settings);
    wp_die();
}

Patched Code (Hypothetical):

add_action('wp_ajax_update_profile_preference', 'update_profile_preference');
function update_profile_preference() {
    if (!current_user_can('manage_options')) {
        wp_die('Unauthorized', 403);
    }
    $settings = get_option('paytium_settings');
    $settings[sanitize_key($_POST['key'])] = sanitize_text_field($_POST['value']);
    update_option('paytium_settings', $settings);
    wp_die();
}

Exploitation & Lab Setup

Red Team

Prerequisites:

  • WordPress instance with Paytium plugin <= 4.3.7
  • Subscriber-level account credentials

Exploitation Steps:

  1. Log in as a subscriber.
  2. Obtain a valid WordPress nonce for AJAX actions (if required, extract from page source).
  3. Send a POST request to /wp-admin/admin-ajax.php with the following parameters:
    • action: update_profile_preference
    • key: mollie_api_key
    • value: attacker_controlled_key
  4. Verify the change by checking the plugin settings page or attempting a payment.

Example cURL command:

curl -X POST https://target.com/wp-admin/admin-ajax.php \
  -d "action=update_profile_preference&key=mollie_api_key&value=attacker_key" \
  --cookie "wordpress_logged_in_xxx=subscriber_cookie"

Blue Team

Detection:

  • Monitor for unusual AJAX requests to admin-ajax.php with action update_profile_preference from subscriber-level users.
  • Alert on changes to the paytium_settings option in the database.

Hunting:

  • Search for logs containing update_profile_preference in the last 30 days.
  • Review user role changes or privilege escalation attempts.

Lab Setup:

  • Use a local WordPress installation with the vulnerable plugin.
  • Create a subscriber user and test the exploit.
  • Monitor logs and database changes.

Indicators of Compromise (IOCs)

  • Network: POST requests to /wp-admin/admin-ajax.php with action=update_profile_preference
  • File: Modified paytium_settings option in the wp_options table
  • Log: WordPress debug log entries showing update_profile_preference called by non-admin users
  • Behavior: Unexpected changes to Mollie API keys or payment endpoints

Detection Engineering

YARA Rule

rule Paytium_CVE_2023_7288_Missing_Auth {
    meta:
        description = "Detects Paytium plugin missing authorization vulnerability"
        author = "Valters IT"
        date = "2025-04-10"
        cve = "CVE-2023-7288"
    strings:
        $func = "update_profile_preference"
        $ajax = "wp_ajax_update_profile_preference"
    condition:
        $func or $ajax
}

Sigma Rule

title: Paytium Plugin Missing Authorization Exploitation
id: 8a9b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d
status: experimental
description: Detects exploitation attempts of CVE-2023-7288 in Paytium plugin
author: Valters IT
logsource:
    category: webserver
    product: apache
detection:
    selection:
        cs-method: 'POST'
        c-uri: '/wp-admin/admin-ajax.php'
        cs-uri-query: 'action=update_profile_preference*'
    condition: selection
falsepositives:
    - Legitimate admin actions (rare)
level: medium

Suricata Rule

alert http any any -> any any (
    msg:"CVE-2023-7288 Paytium Plugin Missing Authorization Exploit";
    flow:to_server,established;
    content:"POST"; http_method;
    content:"/wp-admin/admin-ajax.php"; http_uri;
    content:"action=update_profile_preference"; http_client_body;
    classtype:attempted-admin;
    sid:1000001;
    rev:1;
)

Remediation & Mitigation

Immediate Actions:

  1. Disable the Paytium plugin until a patch is available.
  2. Restrict subscriber capabilities using a security plugin (e.g., Wordfence, Sucuri).
  3. Monitor logs for unauthorized AJAX requests.

Long-term Fix:

  • Apply a custom patch by adding a capability check to the update_profile_preference function (see patched code above).
  • Contact the vendor for an official update.

Workaround:

  • Use a Web Application Firewall (WAF) to block requests to admin-ajax.php with action=update_profile_preference from non-admin users.

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.title:"Paytium"
http.html:"paytium"
http.html:"mollie payment forms"

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