Skip to main content

Forma LMS CVE-2026-96777

| EUVDEUVD-2026-85778 LOW
SQL Injection (CWE-89)
2026-09-24 VulDB GHSA-mvxp-v5m4-5jrc
2.1
CVSS 4.0 · Vendor: VulDB
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate to Forma LMS admin area
  2. Exploit
    Send crafted request to userselector getData endpoint
  3. Execution
    Inject SQL via Name parameter
  4. Impact
    Exfiltrate database contents

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Parameterized queries, prepared statements
MITRE ATT&CK

2 techniques across 2 tactics: Initial Access, Persistence

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires an authenticated session with access to the Forma LMS administrative back end (the vector is PR:L and the vulnerable path /appCore/ajax.adm_server.php?r=adm/userselector/getData is an admin-scoped AJAX endpoint). No user interaction is needed and the attack is fully remote over the network against the default application (no non-default configuration is called out in the advisory). The primary limiting factor is the need for valid low-privileged/admin-panel credentials; there is no unauthenticated path, and the product's limited deployment base further constrains exposure. Affected versions are all releases up to and including 4.1.43, with no vendor-supplied fix currently available.

Impact

This is a moderate, not top-tier, priority. The only quantitative signal is a vendor/VulDB-assigned CVSS 4.0 base of 5.3 (AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:L/VA:L) with Exploit-maturity E:P (proof-of-concept). There is no EPSS score and no CISA KEV listing in the input, so there is no evidence of active or widespread exploitation - the status is publicly available exploit code exists, which is a distinct and weaker signal than in-the-wild use. The network attack vector and low complexity make the flaw easy to trigger, but PR:L means the attacker must already be an authenticated user, and the endpoint (/appCore/ajax.adm_server.php?r=adm/userselector/getData) is an administrative AJAX handler, further narrowing the realistic attacker population. I disagree with VulDB's uniformly Low impact rating: a classic CWE-89 SQL injection typically permits full database read (and often write), so confidentiality impact is likely High rather than Low; VulDB appears to lowball SQLi impact as it does for similar rolling-release advisories. Net: a genuine, POC-backed SQLi worth patching, but the authentication requirement and niche product footprint keep real-world risk in the medium band rather than critical.

Exploit ScenarioDerived

An authenticated user with access to the Forma LMS administrative interface sends a crafted request to the Multi-User-Selector AJAX endpoint with a malicious 'Name' parameter, injecting SQL into the getDataTask query to extract user records, credentials, or other database contents. Because the manipulation is remote and low-complexity, and a proof-of-concept advisory is publicly published on GitHub (lorenzobruno7/advisory_formalms), reliable exploitation is straightforward for anyone with a valid account.

Monitor Track and reassess. Why: LOW severity (CVSS 0.1-3.9).
No patch listed yet 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Sep 24, 2026

SQL injection in Forma LMS up to and including version 4.1.43 allows an attacker with an authenticated session on the administrative back end to manipulate the 'Name' argument handled by UserselectorAdmController::getData in /appCore/ajax.adm_server.php?r=adm/userselector/getData, injecting arbitrary SQL against the underlying database. Exploitation is remote and requires no user interaction, but the vulnerable endpoint is admin-scoped (CVSS vector PR:L), so valid low-privileged/admin-panel credentials are a prerequisite; publicly available exploit code exists and the vendor was contacted without responding. This is a moderate, not top-tier, priority issue: the primary limiting factors are the authentication requirement and Forma LMS's comparatively limited deployment base, which constrain real-world exposure.

RemediationAI

No vendor-released patch has been identified at time of analysis; the vendor was contacted early about the disclosure but did not respond, so administrators must rely on compensating controls until an official fix appears. The most effective immediate mitigation is input handling at the edge: deploy a WAF or reverse-proxy rule that inspects requests to /appCore/ajax.adm_server.php?r=adm/userselector/getData and blocks SQL metacharacters or UNION/comment patterns in the Name parameter (trade-off: false positives may degrade the admin user-selector search experience). Because the endpoint is admin-scoped (PR:L), restrict the administraton back end and the /appCore/ path to trusted IP ranges or VPN, and enforce least privilege on admin accounts and credential hygiene to reduce the pool of attackers who can reach the vulnerable code (trade-off: reduced admin mobility and the need for additional access infrastructure). Where operationally feasible, temporarily disable or restrict the multi-user-selector component, or apply a code-level hotfix replacing the raw concatenation of the Name argument in UserselectorAdmController::getDataTask with a parameterized/prepared statement - this is the definitive control but requires in-house PHP changes that must be re-applied after any upstream update. Monitor database logs for anomalous SELECT activity from the AJAX endpoint as a detection layer, and track the researcher advisories and vendor advisory references for a future patched release; note that publicly available exploit code exists, so prioritizing internet-facing or multi-tenant admin panels is advisable despite the moderate overall severity.

Affected VersionsENISA

LMS 4.1.37
LMS 4.1.41
LMS 4.1.2
LMS 4.1.3
LMS 4.1.26
LMS 4.1.30
LMS 4.1.38
LMS 4.1.39
LMS 4.1.27
LMS 4.1.13
LMS 4.1.34
LMS 4.1.35
LMS 4.1.28
LMS 4.1.22
LMS 4.1.18
LMS 4.1.32
LMS 4.1.29
LMS 4.1.14
LMS 4.1.20
LMS 4.1.9
LMS 4.1.8
LMS 4.1.17
LMS 4.1.43
LMS 4.1.33
LMS 4.1.7
LMS 4.1.12
LMS 4.1.31
LMS 4.1.15
LMS 4.1.23
LMS 4.1.24
LMS 4.1.1
LMS 4.1.5
LMS 4.1.10
LMS 4.1.6
LMS 4.1.36
LMS 4.1.25
LMS 4.1.16
LMS 4.1.40
LMS 4.1.42
LMS 4.1.0
LMS 4.1.21
LMS 4.1.11
LMS 4.1.19
LMS 4.1.4

Affected Packages

euvd lms no fix

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The flaw is a classic SQL injection (CWE-89) in a PHP learning-management-system codebase. Forma LMS routes AJAX admin requests through a front controller pattern: the URL /appCore/ajax.adm_server.php?r=adm/userselector/getData dispatches to the UserselectorAdmController class and its getDataTask method, part of the platform's multi-user selector component used by administrators to search and pick users. The 'Name' parameter passed to this task is interpolated into a SQL query without proper parameterization or escaping, so an authenticated attacker can break out of the intended string context and execute arbitrary SQL against the LMS database. Because the task is a read-style selector endpoint, the vector indicates low confidentiality, integrity, and availability impact per query (CVSS:4.0 .../VC:L/VI:L/VA:L) and no scope change; our independent CVSS:3.1 assessment (AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:N) rates confidentiality higher because the underlying database typically holds user records, course data, and credential hashes, making bulk exfiltration the most consequential outcome. The affected CPE (cpe:2.3:a:forma:lms:*:*:*:*:*:*:*:*) covers all releases through 4.1.43, with no version-bounded fix identified. The root cause class is the failure to use prepared statements/parameterized queries, a PHP-ecosystem issue frequently highlighted by advisory tags PHP, SQLi, and Lms.

Know when Lms gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (VulDB) PRIMARY 2.1 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N/E:P
vuln.today AI 7.1 HIGH

Remote low-complexity SQLi on an authenticated admin endpoint (PR:L); classic CWE-89 yields High confidentiality via database read and limited integrity, no availability impact.

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:L/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (VulDB).

CVSS VectorVendor: VulDB

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
Low
User Interaction
None
Vulnerable system: Confidentiality
Low
Vulnerable system: Integrity
Low
Vulnerable system: Availability
Low
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

3
Severity Changed
Sep 24, 2026 - 02:22 NVD
MEDIUM LOW
CVSS changed
Sep 24, 2026 - 02:22 NVD
5.3 (MEDIUM) 2.1 (LOW)
CVE Published
Sep 24, 2026 - 01:15 cve.org
MEDIUM 5.3

DescriptionCVE.org

A vulnerability was determined in Forma LMS up to 4.1.43. This impacts the function UserselectorAdmController::getDataTask of the file /appCore/ajax.adm_server.php?r=adm/userselector/getData of the component Multi-User-Selector AJAX Endpoint. This manipulation of the argument Name causes sql injection. The attack may be initiated remotely. The exploit has been publicly disclosed and may be utilized. The vendor was contacted early about this disclosure but did not respond in any way.

Threat Intelligence Overview

EPSS Score
0.2%
Top 91% exploitable
Prevalence
Low
niche open-source PHP LMS, limited enterprise/production footprint
Exploit
POC
Public exploit code exists
Data Quality
6 sources
Confidence: High

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity LOW
CISA KEV No
Public POC Yes
EPSS 0.2%
Patch available No
Active threat No
Deciding rule
LOW severity (CVSS 0.1-3.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
Poc
System Exposure· derived
Open
Automatable· derived
No
Human Impact· derived
Low

Priority Score

30
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +10
PoC: +20
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

SQL injection exploits the way applications construct database queries by mixing user input directly into SQL statements.

More in Lms

View all
CVE-2018-1000535 HIGH POC
7.5 Jun 26

lms version <= LMS_011123 contains a Local File Disclosure vulnerability in File reading functionality in LMS module tha

CVE-2026-39405 CRITICAL
9.4 May 20

Path traversal in Frappe Learning Management System (LMS) versions 2.50.0 and below allows authenticated users with cour

CVE-2026-40456 HIGH
8.6 Jun 18

OS command injection in LMS (LAN Management System) before commit 9fcb4de allows authenticated adjacent attackers to exe

CVE-2026-40455 HIGH
8.6 Jun 18

Error-based SQL injection in LMS (LAN Management System) before commit 4cb30a7 allows authenticated attackers to extract

CVE-2026-39385 HIGH
7.1 Jul 20

Payment validation bypass in Frappe LMS 2.51.0 and earlier lets an authenticated user enroll in paid courses for free by

CVE-2026-78532 HIGH
7.1 Oct 10

Unauthenticated reflected cross-site scripting in the Designthemes LMS WordPress theme versions 8.3 and earlier allows r

CVE-2026-27404 HIGH
7.1 Jul 02

Reflected Cross-Site Scripting in the designthemes LMS WordPress theme (versions 9.7 and earlier) allows unauthenticated

CVE-2026-34606 MEDIUM
6.9 Apr 02

Stored cross-site scripting (XSS) in Frappe Learning Management System versions 2.27.0 through 2.47.x allows unauthentic

CVE-2026-39415 MEDIUM
5.3 Apr 08

Frappe Learning Management System versions prior to 2.46.0 allow authenticated students to modify their own quiz scores

CVE-2024-25270 MEDIUM
4.3 Sep 12

An issue in Mirapolis LMS 4.6.XX allows authenticated users to exploit an Insecure Direct Object Reference (IDOR) vulner

CVE-2026-82326 MEDIUM
4.1 Sep 28

Cross-site scripting (XSS) in Enocta Platform allows authenticated users to inject script into HTML attribute contexts,

CVE-2026-40457 LOW
2.1 Jun 18

Reflected XSS in LAN Management System (LMS) before commit 9c5651b allows network-positioned attackers to inject arbitra

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy