Severity by source
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Unauthenticated network-reachable AJAX endpoint with direct SQL injection gives full database read/write, so PR:N, UI:N, AC:L and C/I/A all High.
Primary rating from Vendor (mitre).
CVSS VectorVendor: mitre
Lifecycle Timeline
4DescriptionCVE.org
SourceCodester Modern Loan Management System 1.0 is vulnerable to SQL Injection in ajaxData.php via the parameters district_id , division_id, region_id, and ward_id.
AnalysisAI
SQL injection in SourceCodester Modern Loan Management System 1.0 allows remote attackers to inject arbitrary SQL through the district_id, division_id, region_id, and ward_id parameters of ajaxData.php. Because the CVSS vector is AV:N/AC:L/PR:N/UI:N, exploitation requires no authentication or user interaction and yields total compromise of the backend database (confidentiality, integrity, and availability all High). Publicly available exploit code exists (documented in the TaintRadar research repository), though EPSS remains low at 0.16% and the flaw is not on the CISA KEV list.
Technical ContextAI
The affected component is a PHP web application (tagged PHP, SQLi) that exposes an AJAX data endpoint, ajaxData.php, used to populate cascading location dropdowns (district/division/region/ward). The root cause is CWE-89 (Improper Neutralization of Special Elements used in an SQL Command): the four location identifier parameters are concatenated directly into SQL queries against the MySQL/MariaDB backend without parameterization or input sanitization. SourceCodester Modern Loan Management System is a small open-source PHP/MySQL loan-management web application, so the injection point sits directly in front of the application's primary datastore, which typically holds borrower PII and loan records. A separate related sink (delete_group.php via the id parameter) is documented in the same research repository, indicating a systemic lack of prepared statements across the codebase.
RemediationAI
No vendor-released patch identified at time of analysis; SourceCodester scripts are typically distributed as source without formal patch releases. The definitive fix is to rewrite the ajaxData.php queries to use parameterized prepared statements (PDO or mysqli bound parameters) for district_id, division_id, region_id, and ward_id, and to cast these identifiers to integers before use since they are numeric location keys - apply the same remediation to the related delete_group.php id sink. Until code is fixed, apply specific compensating controls: place the application behind a WAF with SQLi signatures targeting the ajaxData.php parameters (trade-off: pattern-based bypass remains possible); restrict network access to ajaxData.php to authenticated internal users via web-server ACLs or authentication middleware (trade-off: may break the location-dropdown feature for legitimate anonymous flows); and enforce least-privilege on the database account so the web user cannot read unrelated tables or write (trade-off: none significant, recommended regardless). Validate all input against a strict numeric allowlist at the reverse proxy as a stopgap. Consult the NVD (https://nvd.nist.gov/vuln/detail/CVE-2025-69946) and VulDB (https://vuldb.com/vuln/385144) entries for updates.
In PHP versions 7.1.x below 7.1.33, 7.2.x below 7.2.24 and 7.3.x below 7.3.11 in certain configurations of FPM setup it
sapi/cgi/cgi_main.c in PHP before 5.3.12 and 5.4.x before 5.4.2, when configured as a CGI script (aka php-cgi), does not
(1) boardData102.php, (2) boardData103.php, (3) boardDataJP.php, (4) boardDataNA.php, and (5) boardDataWW.php in Netgear
The '/common/download_agent_installer.php' script in the Quest KACE System Management Appliance 8.0.318 is accessible by
ProjectSend versions prior to r1720 are affected by an improper authentication vulnerability. Rated critical severity (C
Roundcube Webmail contains a critical PHP object deserialization vulnerability (CVE-2025-49113, CVSS 9.9) that allows au
Util/PHP/eval-stdin.php in PHPUnit before 4.8.28 and 5.x before 5.6.3 allows remote attackers to execute arbitrary PHP c
Palo Alto Networks PAN-OS management web interface contains an authentication bypass allowing unauthenticated attackers
Nagios XI version xi-5.7.5 is affected by OS command injection. Rated high severity (CVSS 8.8), this vulnerability is re
Nagios XI version xi-5.7.5 is affected by OS command injection. Rated high severity (CVSS 8.8), this vulnerability is re
The get_referers function in /opt/ws/bin/sblistpack in Sophos Web Appliance before 3.7.9.1 and 3.8 before 3.8.1.1 allows
The Backup Migration plugin for WordPress is vulnerable to Remote Code Execution in all versions up to, and including, 1
Same weakness CWE-89 – SQL Injection
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2025-210576
GHSA-9c5g-r8mq-82p6