☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
Registrationmagic 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-345
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2025-14444

CVE-2025-14444 Security Advisory in Registrationmagic
📅 PUBLISHED: 2026-02-18 10:20 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.01%
👁️
0.01% probability
<1× above the median CVE
Tier: LOW
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.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-2025-14444 is a payment bypass vulnerability in the RegistrationMagic – Custom Registration Forms, User Registration, Payment, and User Login WordPress plugin (versions up to and including 6.0.6.9). The flaw resides in the process_paypal_sdk_payment function, which trusts client-supplied values for payment verification without validating the transaction with PayPal’s servers. This allows an unauthenticated attacker to manipulate the payment status and activate a paid registration account without completing a real PayPal payment.

The vulnerability is classified as CWE-345: Insufficient Verification of Data Authenticity. With a CVSS score of 5.3 (Medium), the attack vector is network-based, requires no authentication, and has low complexity. The primary impact is on the integrity of payment processing, potentially leading to unauthorized access to paid services or content.

⚡ 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 verify the integrity of their plugin files and ensure they are not using modified or backdoored versions. The plugin’s update mechanism should be monitored, and any custom modifications to the payment handling code should be reviewed for similar flaws.

CVSS Breakdown & Threat Level

  • Attack Vector (AV): Network (N) – Exploitable remotely.
  • Attack Complexity (AC): Low (L) – No special conditions required.
  • Privileges Required (PR): None (N) – No authentication needed.
  • User Interaction (UI): None (N) – No user action required.
  • Scope (S): Unchanged (U) – Impact confined to the vulnerable component.
  • Confidentiality (C): None (N) – No data exposure.
  • Integrity (I): Low (L) – Payment status can be manipulated.
  • Availability (A): None (N) – No denial of service.

Threat Level: Medium. While the CVSS score is moderate, the ease of exploitation and potential for unauthorized access to paid features elevates the risk for sites using this plugin for monetization.

Deep Dive & Mechanics

The vulnerability stems from the process_paypal_sdk_payment function in the RegistrationMagic plugin. This function is responsible for handling payment verification after a user submits a registration form with PayPal as the payment method.

Root Cause: The plugin relies on client-supplied data (e.g., payment_status, txn_id) to determine whether a payment was successful. Instead of performing a server-side verification with PayPal’s API (e.g., IPN or PDT), it trusts the values sent from the client’s browser or a manipulated HTTP request.

Exploitation Flow:

  1. An attacker initiates a registration for a paid form.
  2. Instead of completing the PayPal payment, the attacker intercepts the POST request to the process_paypal_sdk_payment endpoint.
  3. The attacker modifies the request parameters, setting payment_status to completed and providing a fake txn_id.
  4. The plugin processes the request, marks the registration as paid, and activates the user account without any actual payment.

Affected Code Path:

  • File: registrationmagic-gold/public/class_rm_paypal.php (or similar)
  • Function: process_paypal_sdk_payment
  • The function checks $_POST['payment_status'] and $_POST['txn_id'] but does not validate these against PayPal’s servers.

Vulnerable vs. Patched Code

Vulnerable Code (<= 6.0.6.9):

public function process_paypal_sdk_payment() {
    $payment_status = $_POST['payment_status'];
    $txn_id = $_POST['txn_id'];
    // No server-side verification
    if ($payment_status == 'completed') {
        // Activate user account
        $this->activate_user($txn_id);
    }
}

Patched Code (Hypothetical Fix):

public function process_paypal_sdk_payment() {
    // Verify payment with PayPal API
    $paypal = new PayPalAPI();
    $verification = $paypal->verify_transaction($_POST['txn_id']);
    if ($verification['status'] == 'completed') {
        $this->activate_user($verification['txn_id']);
    } else {
        // Log and reject
        error_log('Payment verification failed for txn: ' . $_POST['txn_id']);
        wp_die('Payment verification failed.');
    }
}

The patched version would use PayPal’s server-side verification (e.g., IPN or REST API) to confirm the transaction before activating the user.

Exploitation & Lab Setup

Red Team (Exploitation)

Prerequisites:

  • A WordPress site with RegistrationMagic plugin <= 6.0.6.9.
  • A registration form with PayPal payment enabled.

Exploitation Steps:

  1. Navigate to the registration form and fill in the required fields.
  2. Instead of completing the PayPal payment, intercept the POST request to the process_paypal_sdk_payment endpoint using a proxy like Burp Suite.
  3. Modify the request parameters:
    • Set payment_status to completed.
    • Set txn_id to any arbitrary string (e.g., fake_txn_123).
  4. Forward the modified request.
  5. The plugin will process the request and activate the user account without payment.

Example cURL Command:

curl -X POST https://target.com/wp-admin/admin-ajax.php \
  -d "action=rm_process_paypal_sdk_payment&payment_status=completed&txn_id=fake_txn_123&user_id=1"

Blue Team (Detection & Hardening)

Detection:

  • Monitor for multiple process_paypal_sdk_payment requests from the same IP without corresponding PayPal IPN notifications.
  • Alert on payment_status=completed requests where txn_id does not match PayPal’s format (e.g., alphanumeric with specific length).

Hardening:

  • Apply the official patch once available.
  • Implement a Web Application Firewall (WAF) rule to block requests with manipulated payment parameters.
  • Enable PayPal IPN verification and ensure the plugin validates transactions server-side.

Indicators of Compromise (IOCs)

  • Network IOCs:
    • POST requests to /wp-admin/admin-ajax.php with action=rm_process_paypal_sdk_payment and payment_status=completed.
    • Unusual txn_id values (e.g., test, fake, or short alphanumeric strings).
  • File IOCs:
    • Modified class_rm_paypal.php file with missing server-side verification.
  • Log IOCs:
    • WordPress debug logs showing Payment verification failed (if logging is enabled).
    • PayPal IPN logs showing no corresponding transaction for activated accounts.

Detection Engineering

YARA Rule

rule CVE_2025_14444_RegistrationMagic_PaymentBypass {
    meta:
        description = "Detects vulnerable RegistrationMagic plugin code with payment bypass"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2025-14444"
    strings:
        $vuln_func = "process_paypal_sdk_payment"
        $vuln_check = "payment_status" nocase
        $vuln_trust = "$_POST['payment_status']" nocase
    condition:
        $vuln_func and $vuln_check and $vuln_trust
}

Sigma Rule

title: CVE-2025-14444 Payment Bypass Detection
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects exploitation attempts of RegistrationMagic payment bypass
author: Valters IT
date: 2025-04-10
logsource:
    category: webserver
    product: apache
detection:
    selection:
        cs-method: 'POST'
        c-uri: '/wp-admin/admin-ajax.php'
        cs-uri-query: 'action=rm_process_paypal_sdk_payment'
        cs-uri-query|contains: 'payment_status=completed'
    condition: selection
falsepositives:
    - Legitimate payments (rare, as PayPal IPN would be used)
level: high

Suricata Rule

alert http any any -> any any (msg:"CVE-2025-14444 RegistrationMagic Payment Bypass"; flow:to_server,established; content:"POST"; http_method; content:"/wp-admin/admin-ajax.php"; http_uri; content:"action=rm_process_paypal_sdk_payment"; http_client_body; content:"payment_status=completed"; http_client_body; classtype:attempted-admin; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Disable PayPal payments in RegistrationMagic until a patch is applied.
  2. Review user accounts activated via PayPal in the last 30 days for suspicious activity.
  3. Implement a WAF rule to block requests with payment_status=completed without a valid PayPal IPN.

Long-Term Fix:

  • Apply the official patch from the plugin vendor once released.
  • If no patch is available, modify the plugin code to use PayPal’s server-side verification (e.g., IPN or REST API).
  • Consider switching to a more secure payment plugin.

Workaround:

  • Use a custom function to hook into the payment process and validate transactions with PayPal before activation.

Valters IT
Senior DevSecOps & Cyber Threat Intelligence Expert

👁️ 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:"RegistrationMagic"
http.html:"registrationmagic-gold"

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