CVE-2025-11359
Executive Summary
CVE-2025-11359 is an SQL injection vulnerability in code-projects Simple Banking System version 1.0, affecting the file /transfermoney.php via manipulation of the ID argument. Because the affected component is a banking application, successful exploitation can compromise the confidentiality, integrity, and availability of financial records and transaction data. The vulnerability is remotely exploitable, publicly disclosed, and remains unpatched, with CVSS 6.3 and low EPSS prevalence (0.00332), indicating limited observed exploitation in the wild to date.
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
Technical Analysis
The vulnerability resides in the transfermoney.php script of Simple Banking System 1.0. According to the NVD description, an unknown function within this file fails to properly neutralize the ID argument before incorporating it into an SQL statement, resulting in SQL injection (CWE-74, Improper Neutralization of Special Elements in Output Used by a Downstream Component). The CWE classification as CWE-74 (rather than the more specific CWE-89) reflects a broader neutralization failure, but the impact remains classic SQL injection: attacker-controlled input reaches a backend database query without adequate parameterization or escaping.
The attack is network-reachable (AV:N) and requires only low privileges (PR:L), meaning an authenticated user — or an actor who has obtained a low-privilege session — can trigger the flaw. No user interaction is required (UI:N), and the scope is unchanged (S:U), so the vulnerability impacts only the banking application and its database. The CVSS subscores for confidentiality, integrity, and availability are each rated Low (C:L/I:L/A:L), consistent with a single-query injection point that may expose or alter limited data rather than enabling full database takeover.
Because /transfermoney.php is associated with fund transfer functionality, the ID argument is most plausibly used to select or reference an account or transaction record. SQL injection in this context allows an attacker to manipulate query logic to retrieve records beyond their authorization, alter transfer targets, or interfere with the application's data layer. However, the exact SQL statement, database backend, and query construction are not disclosed in the available intelligence; those implementation specifics should not be assumed. No public NVD reference to a specific function name, parameterized query, or ORM is provided.
The product is a demonstration-grade banking application ("code-projects" / "Codeastro" style training projects) commonly deployed on internet-facing web servers in lab and educational environments, which increases exposure because such deployments frequently run without hardening. The vulnerability is publicly disclosed with a public proof-of-concept indicator, but no exploit code artifact is present in the supplied data and no Nuclei template exists. Patch confidence is 0/4 — no fix has been tracked from any authoritative source, and no vendor advisory, version constraint, or workaround is available.
Exploitation Scenarios
The following attack chain is inferred at the vulnerability-class level from the NVD description and CNA title. No public exploit code was supplied; the chain describes how a SQL injection in the ID argument of /transfermoney.php would typically be exercised. No specific function names or query strings are asserted beyond what the NVD entry provides.
Reconnaissance / target identification. An attacker identifies an internet-facing deployment of Simple Banking System 1.0, for example by fingerprinting the application's login or transfer pages and confirming the presence of
/transfermoney.php. Shodan or similar internet-wide scanners can locate hosts whose HTML references the application or thetransfermoney.phpendpoint.Access / privilege acquisition. Because the CVSS vector requires low privileges (
PR:L), the attacker obtains a valid low-privilege banking session — through self-registration if enabled, default credentials, or a previously compromised account. The flaw is then reachable within the authenticated transfer workflow.Triggering the injection. The attacker submits a crafted value in the
IDargument of the request to/transfermoney.php. Under SQL injection class behavior, the application concatenates this value into a database query rather than binding it as a parameter. The attacker perturbs the query's logical structure — for example by supplying input that changes the predicate evaluated by the backend query — to bypass intended access checks, enumerate records, or alter which record the transfer logic operates on. The precise payload syntax depends on the backend database, which is not specified in the available data.Post-exploitation impact. On success, the attacker can read or modify data reachable by the vulnerable query. Given the file's transfer context, the likely consequences are unauthorized visibility into account or transaction records, manipulation of transfer targets, or selective data tampering within the limits of the query's privileges. CVSS rates each impact dimension as Low, suggesting the injection point does not by itself grant full database or host compromise. Nevertheless, targeted transfers in a banking application can carry significant financial and reputational consequences even with partial data access.
No public exploit code or Nuclei template accompanies this CVE in the supplied data, so the above is a class-level attack narrative, not a verified exploit recipe.
Impact Assessment
- Confidentiality (C:L): The injection can expose data returned by the vulnerable query in
/transfermoney.php. The Low rating implies limited rather than wholesale exposure, but even limited access to banking records is sensitive. - Integrity (I:L): Because the vulnerable script handles transfers, query manipulation may alter which records are read or written. The Low rating caps the expected blast radius but does not rule out transaction tampering.
- Availability (A:L): Malformed or heavy queries against the backend can degrade or intermittently disrupt service to the application.
- Scope (S:U): The impact is confined to the application and its database; no lateral movement to other components is implied by the vector.
- Attack vector (AV:N, AC:L, PR:L, UI:N): Remote, low-complexity exploitation requiring a low-privilege session and no user interaction. This makes the flaw attractive to automated scanners and scripted attacks once a foothold session exists.
Affected systems: Deployments of code-projects Simple Banking System 1.0 that expose /transfermoney.php to untrusted networks, particularly internet-facing training, demo, or lightly managed instances. Blast radius: The application and its database, with potential exposure of account/transaction data and integrity of transfer operations. Business impact: Financial data exposure, fraudulent or corrupted transfer records, regulatory and compliance exposure for any organization using this stack in a production-adjacent context, and reputational damage. EPSS is low (0.00332, ~24.3rd percentile), and the CVE is not in CISA KEV, indicating no confirmed widespread exploitation — but the public disclosure status means opportunistic exploitation remains possible.
Detection Guidance
Sigma Rule
title: SQL Injection Attempt Against Simple Banking System transfermoney.php
id: 7f3c9b2e-4a51-4d8e-9c1f-2b6a5e0d1135
status: experimental
description: Detects SQL injection patterns targeting the ID parameter of /transfermoney.php in code-projects Simple Banking System 1.0 (CVE-2025-11359)
references:
- https://nvd.nist.gov/vuln/detail/CVE-2025-11359
author: valtersit.com
date: 2025-10-13
logsource:
category: webserver
detection:
selection_uri:
cs-uri-stem|endswith: '/transfermoney.php'
selection_payload:
cs-uri-query|contains:
- 'UNION'
- 'SELECT'
- 'OR 1=1'
- "' OR '"
- '--'
- 'SLEEP('
- 'BENCHMARK('
- "' AND '"
condition: selection_uri and selection_payload
falsepositives:
- Legitimate traffic containing SQL keywords in benign parameters
level: high
tags:
- attack.t1190
- cwe.74
YARA Rule
rule CVE_2025_11359_SQLi_TransferMoney
{
meta:
description = "Detects SQL injection payload indicators targeting /transfermoney.php in Simple Banking System 1.0"
author = "valtersit.com"
reference = "https://nvd.nist.gov/vuln/detail/CVE-2025-11359"
date = "2025-10-13"
cve = "CVE-2025-11359"
strings:
$p1 = "transfermoney.php" nocase
$sqli1 = "UNION SELECT" nocase
$sqli2 = "' OR '1'='1" nocase
$sqli3 = "OR 1=1--" nocase
$sqli4 = "SLEEP(" nocase
$sqli5 = "BENCHMARK(" nocase
$sqli6 = "information_schema" nocase
condition:
$p1 and any of ($sqli*)
}
Suricata IDS Rule
alert http any any -> any any (msg:"CVE-2025-11359 SQL Injection Attempt in Simple Banking System transfermoney.php (ID argument)"; flow:established,to_server; http.uri; content:"/transfermoney.php"; http.uri; pcre:"/(UNION[\s+]+SELECT|OR[\s+]+1=1|SLEEP\(|BENCHMARK\(|information_schema)/i"; classtype:web-application-attack; reference:cve,2025-11359; reference:url,nvd.nist.gov/vuln/detail/CVE-2025-11359; sid:202511359; rev:1;)
Elastic Detection
sequence by source.ip with maxspan=30s
[ network where http.request.method == "GET" or http.request.method == "POST" ]
[ network where url.path : "/transfermoney.php" and
url.query : ("UNION SELECT", "OR 1=1", "SLEEP(", "BENCHMARK(", "information_schema") ]
Splunk SPL Query
index=web sourcetype=access_combined
| where like(uri_path, "%/transfermoney.php%")
| eval sqli_hit = if(match(uri_query, "(?i)(UNION[+ ]+SELECT|OR[+ ]+1=1|SLEEP\(|BENCHMARK\(|information_schema|%27[+ ]*OR)"), 1, 0)
| where sqli_hit=1
| stats count min(_time) as first_seen max(_time) as last_seen values(uri_query) as payloads by src_ip, uri_path
| sort - count
Wazuh OSSEC Rule
<group name="web,appsec,sql_injection,">
<rule id="2025113" level="12">
<if_sid>31100</if_sid>
<url>/transfermoney.php</url>
<regex type="pcre2">(?i)(UNION[\s\+]+SELECT|OR[\s\+]+1=1|SLEEP\(|BENCHMARK\(|information_schema|%27[\s\+]*OR)</regex>
<description>CVE-2025-11359: Possible SQL injection attempt in Simple Banking System transfermoney.php (ID argument)</description>
<mitre>
<id>T1190</id>
</mitre>
<group>sql_injection,cve_2025_11359,</group>
</rule>
</group>
Mitigation & Patch Guidance
Patch confidence is 0/4: no vendor patch, version fix, or official workaround is available from any tracked source. Treat the affected deployment as unpatched and apply compensating controls.
Immediate mitigations
- Remove Simple Banking System 1.0 instances from internet exposure where feasible; if the application must remain reachable, place it behind an authenticating reverse proxy or WAF with SQL injection signatures enabled.
- Enforce strict parameter validation on the
IDargument at the edge (allow-list of expected numeric or identifier formats), understanding that input filtering is a stopgap, not a fix. - Apply least privilege to the application's database account (no
DROP, no schema modification, no file or OS-level privileges). - Disable or restrict self-registration so that obtaining the low-privilege session required (
PR:L) is harder for unauthorized users. - Monitor
/transfermoney.phpaccess logs aggressively (see Detection Guidance).
Patch / upgrade steps
- No vendor patch exists. Do not expect a vendor advisory. If a newer, fixed release of Simple Banking System is published by code-projects, validate the fix by reviewing whether
/transfermoney.phpnow uses parameterized queries or prepared statements, then upgrade. - If the application is production-relevant and unsupported, plan migration to a maintained banking application rather than relying on a demo-grade codebase.
- No vendor patch exists. Do not expect a vendor advisory. If a newer, fixed release of Simple Banking System is published by code-projects, validate the fix by reviewing whether
Long-term hardening
- Eliminate string-concatenated SQL across the application; use parameterized queries / prepared statements for every database call.
- Adopt secure SDLC controls (static analysis for injection classes, dependency and code review) for internally hosted training or demo applications that touch sensitive data.
- Enforce network segmentation so that a compromised web tier cannot reach unrelated systems or databases.
- Maintain an inventory of internet-facing demo/training applications; these are frequently forgotten and unpatched.
References
- NVD — CVE-2025-11359: https://nvd.nist.gov/vuln/detail/CVE-2025-11359
- NVD CWE-74 (Improper Neutralization of Special Elements in Output Used by a Downstream Component): https://cwe.mitre.org/data/definitions/74.html
- MITRE ATT&CK T1190 — Exploit Public-Facing Application: https://attack.mitre.org/techniques/T1190/
- FIRST EPSS — score 0.00332 for CVE-2025-11359: https://api.first.org/data/v1/epss?cve=CVE-2025-11359
- CISA Known Exploited Vulnerabilities Catalog (CVE-2025-11359 not listed — no known exploited-vulnerability entry): https://www.cisa.gov/known-exploited-vulnerabilities-catalog
No threat actor campaigns or confirmed exploit-in-the-wild activity are associated with this CVE in the supplied intelligence; the exploit has been disclosed publicly and may be used, but no exploit code artifact or Nuclei template was provided.
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.
💣 PoC CODE AVAILABLE
Exploit code for this CVE is tracked in our database.
Access poc_code via API Pro.