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

CVE-2025-7665

CVE-2025-7665 Privilege Escalation in Miniorange
📅 PUBLISHED: 2025-09-19 12:27 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.15%
👁️
0.15% probability
3.7× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1068
👁️
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 8.1
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: H Confidentiality High
I: H Integrity High
A: H Availability High
8.1
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-7665 is a critical privilege escalation vulnerability in the Miniorange OTP Verification with Firebase WordPress plugin, affecting versions 3.1.0 through 3.6.2. The flaw resides in the handle_mofirebase_form_options function, which lacks a proper capability check, allowing unauthenticated attackers to update the default user role to Administrator. This effectively grants full site control to any remote attacker without authentication. The vulnerability requires premium features to be enabled for exploitation, but given the missing capability check, the attack surface is significant. As a WordPress ecosystem issue, this plugin is widely used for Firebase-based OTP verification, making it a high-value target for mass exploitation.

⚡ 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 plugin ecosystem. The plugin is distributed via the official WordPress plugin repository and third-party marketplaces. No NPM, PyPI, Go, or Ruby packages are involved. However, the lack of a patch or advisory from the vendor (Miniorange) increases supply chain risk, as site administrators may be unaware of the vulnerability.

CVSS Breakdown & Threat Level

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

The high CVSS score reflects the ease of exploitation (no authentication required) and the severe impact (full site compromise). The EPSS score of 0.0% suggests low current exploitation activity, but this may change as the vulnerability becomes more widely known.

Deep Dive & Mechanics

The vulnerability exists in the handle_mofirebase_form_options function, which is responsible for processing form submissions related to plugin settings. The function is hooked to an AJAX action or direct POST request without a current_user_can() check or nonce verification. This allows any unauthenticated HTTP request to modify the plugin's options, specifically the default_role setting.

Attack Flow:

  1. Attacker sends a POST request to the WordPress admin-ajax.php or directly to the plugin's handler endpoint.
  2. The request includes parameters to set the default_role to administrator.
  3. The plugin saves this setting without verifying the user's capabilities.
  4. Any new user registration (or existing user with a lower role) is automatically assigned the Administrator role.
  5. The attacker can then register a new user account (if registration is enabled) or leverage an existing low-privilege account to gain full administrative access.

The requirement for premium features to be enabled means the plugin must have a valid license key for the premium version. However, the missing capability check still allows unauthenticated modification of settings, which is the core flaw.

Vulnerable vs. Patched Code

Vulnerable Code (versions 3.1.0 to 3.6.2):

function handle_mofirebase_form_options() {
    // No capability check
    if (isset($_POST['default_role'])) {
        update_option('mo_firebase_default_role', sanitize_text_field($_POST['default_role']));
    }
    // ... other option handling
}

Patched Code (hypothetical fix):

function handle_mofirebase_form_options() {
    // Add capability check
    if (!current_user_can('manage_options')) {
        wp_die('Unauthorized');
    }
    if (isset($_POST['default_role'])) {
        update_option('mo_firebase_default_role', sanitize_text_field($_POST['default_role']));
    }
    // ... other option handling
}

The patch adds a current_user_can('manage_options') check to ensure only administrators can modify plugin settings. Additionally, a nonce verification should be implemented to prevent CSRF attacks.

Exploitation & Lab Setup

Red Team (Exploitation)

Prerequisites:

  • Target WordPress site with Miniorange OTP Verification with Firebase plugin version 3.1.0 to 3.6.2.
  • Premium features enabled (plugin license key active).
  • User registration enabled (or existing low-privilege user).

Exploitation Steps:

  1. Identify the vulnerable endpoint. The plugin typically uses admin-ajax.php with action mofirebase_form_options.
  2. Send a POST request to set the default role to Administrator:
    curl -X POST https://target.com/wp-admin/admin-ajax.php \
      -d "action=mofirebase_form_options&default_role=administrator"
    
  3. Register a new user account (if registration is open) or use an existing user:
    curl -X POST https://target.com/wp-login.php?action=register \
      -d "user_login=attacker&user_email=attacker@example.com&user_pass=Password123!"
    
  4. Log in with the new account. The user will have Administrator privileges.
  5. Optionally, create a new admin user or install a backdoor plugin.

Note: No public exploit code is available, but the above steps demonstrate the attack.

Blue Team (Detection & Response)

Detection:

  • Monitor for POST requests to admin-ajax.php with action=mofirebase_form_options from unauthenticated sources.
  • Alert on changes to the default_role option in the WordPress database.
  • Monitor for rapid user registrations followed by privilege escalation.

Response:

  1. Immediately disable the plugin if vulnerable.
  2. Review user accounts for unauthorized Administrator roles.
  3. Reset all user passwords and revoke suspicious sessions.
  4. Apply the patch by adding capability checks to the vulnerable function.
  5. Enable Web Application Firewall (WAF) rules to block exploitation attempts.

Indicators of Compromise (IOCs)

  • Network IOCs:

    • POST requests to /wp-admin/admin-ajax.php with action=mofirebase_form_options and default_role=administrator.
    • Unusual user registration requests from the same IP address.
  • System IOCs:

    • WordPress option mo_firebase_default_role set to administrator.
    • New user accounts with Administrator role created without admin intervention.
    • Plugin version 3.1.0 to 3.6.2 installed.
  • File IOCs:

    • Modified plugin files in /wp-content/plugins/miniorange-firebase-otp-verification/.
    • Suspicious PHP files uploaded by the attacker.

Detection Engineering

YARA Rule

rule CVE_2025_7665_Miniorange_PrivEsc {
    meta:
        description = "Detects vulnerable Miniorange OTP Verification with Firebase plugin code"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2025-7665"
    strings:
        $func = "handle_mofirebase_form_options"
        $no_check = "current_user_can" nocase
    condition:
        $func and not $no_check
}

Sigma Rule

title: CVE-2025-7665 - Miniorange OTP Verification Privilege Escalation
id: 8a9b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d
status: experimental
description: Detects exploitation attempts of CVE-2025-7665 via unauthenticated POST requests
author: Valters IT
date: 2025-04-10
logsource:
    category: webserver
    product: apache
detection:
    selection:
        cs-method: POST
        cs-uri-query|contains: 'action=mofirebase_form_options'
        cs-uri-query|contains: 'default_role=administrator'
    condition: selection
falsepositives:
    - Legitimate admin actions (if authenticated)
level: high

Suricata Rule

alert http any any -> any any (
    msg:"CVE-2025-7665 - Miniorange OTP Verification Privilege Escalation Attempt";
    flow:to_server,established;
    content:"POST";
    http_method;
    content:"action=mofirebase_form_options";
    http_uri;
    content:"default_role=administrator";
    http_uri;
    classtype:attempted-admin;
    sid:1000001;
    rev:1;
)

Remediation & Mitigation

Immediate Actions:

  1. Disable the plugin until a patch is available.
  2. Review and revert any unauthorized role changes in the WordPress database.
  3. Audit user accounts for suspicious Administrator roles.

Long-term Fix:

  • Apply the patch by adding current_user_can('manage_options') check to the handle_mofirebase_form_options function.
  • Implement nonce verification for all AJAX actions.
  • Update to the latest plugin version once Miniorange releases a fix.

Workarounds:

  • Use a Web Application Firewall (WAF) to block requests to admin-ajax.php with action=mofirebase_form_options from unauthenticated sources.
  • Disable user registration if not required.
  • Restrict access to wp-admin directory via .htaccess or IP whitelisting.

Monitoring:

  • Continuously monitor for exploitation attempts using the provided Sigma and Suricata rules.
  • Enable logging for all WordPress admin actions.

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:"OTP Verification with Firebase"
http.html:"miniorange-firebase-otp-verification"

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