CVE-2025-12244
📋 TL;DR
A cross-site scripting (XSS) vulnerability exists in code-projects Simple E-Banking System 1.0 in the /eBank/register.php file. Attackers can inject malicious scripts via the Username parameter, potentially compromising user sessions or stealing credentials. This affects all deployments of Simple E-Banking System 1.0 that are accessible over the network.
💻 Affected Systems
- code-projects Simple E-Banking System
📦 What is this software?
⚠️ Risk & Real-World Impact
Worst Case
Attackers steal administrator credentials, gain full control of the banking system, and compromise all user accounts and financial data.
Likely Case
Attackers steal session cookies from legitimate users, hijack their banking sessions, and perform unauthorized transactions.
If Mitigated
Script execution is blocked by browser security features or input validation, resulting in no impact beyond failed attack attempts.
🎯 Exploit Status
Exploit details are publicly available in GitHub repositories. Attack requires user interaction (visiting malicious link) but no authentication.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: Not available
Vendor Advisory: Not available
Restart Required: No
Instructions:
1. Download the latest version if available from code-projects.org. 2. Replace the vulnerable register.php file. 3. Implement input validation and output encoding as described in workarounds.
🔧 Temporary Workarounds
Input Validation and Sanitization
allAdd server-side validation to sanitize Username parameter input before processing.
// PHP example: $username = htmlspecialchars($_POST['Username'], ENT_QUOTES, 'UTF-8');
Content Security Policy (CSP)
allImplement CSP headers to restrict script execution sources.
// Apache: Header set Content-Security-Policy "default-src 'self'"
// Nginx: add_header Content-Security-Policy "default-src 'self'";
🧯 If You Can't Patch
- Deploy a web application firewall (WAF) with XSS protection rules
- Restrict access to the eBanking system to trusted IP addresses only
🔍 How to Verify
Check if Vulnerable:
Test by submitting a script payload like <script>alert('XSS')</script> in the Username field during registration and check if it executes.
Check Version:
Check the file version or modification date of /eBank/register.php
Verify Fix Applied:
Repeat the test with the same payload; script should not execute and input should be properly encoded in output.
📡 Detection & Monitoring
Log Indicators:
- Unusual Username parameters containing script tags or JavaScript code in registration logs
- Multiple failed registration attempts with suspicious input
Network Indicators:
- HTTP requests to register.php with encoded script payloads in parameters
- Outbound connections to suspicious domains following registration
SIEM Query:
source="web_logs" AND uri="/eBank/register.php" AND (param="Username" AND value MATCHES "<script|javascript:")