Miggo Logo

GHSA-2v5m-cq9w-fc33: Admidio Vulnerable to Authenticated SQL Injection in Member Assignment Functionality

7.2

CVSS Score
3.1

Basic Information

CVE ID
-
EPSS Score
-
Published
10/22/2025
Updated
10/22/2025
KEV Status
No
Technology
TechnologyPHP

Technical Details

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H
Package NameEcosystemVulnerable VersionsFirst Patched Version
admidio/admidiocomposer<= 4.3.164.3.17

Vulnerability Intelligence
Miggo AIMiggo AI

Miggo AIRoot Cause Analysis

The security vulnerability is a classic SQL injection found in the Admidio application. The root cause is the direct concatenation of user-supplied input into an SQL query without proper sanitization. The analysis of the provided information, including the vulnerability description and the commit patch, points to a single file, adm_program/modules/groups-roles/members_assignment_data.php, as the source of the vulnerability.

The provided patch from commit fde81ae869e88a3cf42201f2548d57df785a37cb clearly shows the fix. The filter_rol_uuid GET parameter, which was previously read directly into the $getFilterRoleUuid variable using admFuncVariableIsValid, is now sanitized using StringUtils::strValidCharacters. This prevents special characters from being used to break out of the SQL string and inject arbitrary commands.

The vulnerable code is not encapsulated within a specific function but resides in the main body of the PHP script. When this script is requested by the web server, the code is executed sequentially. Therefore, the entire script members_assignment_data.php is the vulnerable component. In a runtime profile, this would appear as the main execution block for the request to this endpoint. For this reason, the script's filename is identified as the 'vulnerable function' as it represents the entry point and execution context of the vulnerable code.

Vulnerable functions

members_assignment_data.php
adm_program/modules/groups-roles/members_assignment_data.php
The vulnerability exists in the PHP script `members_assignment_data.php`, which is executed directly to handle an AJAX request. The script retrieves the `filter_rol_uuid` parameter from the GET request and uses it to construct an SQL query without proper sanitization. The vulnerable code is not within a specific function but in the global scope of the script. An attacker can inject malicious SQL code into the `filter_rol_uuid` parameter, which is then executed by the database. The patch applies the `StringUtils::strValidCharacters` function to sanitize this parameter, thus mitigating the SQL injection vulnerability. A profiler would show execution time within this script file during an exploit.

WAF Protection Rules

WAF Rule

### Summ*ry *n *ut**nti**t** SQL inj**tion vuln*r**ility *xists in t** m*m**r *ssi*nm*nt **t* r*tri*v*l *un*tion*lity o* **mi*io. *ny *ut**nti**t** us*r wit* p*rmissions to *ssi*n m*m**rs to * rol* (su** *s *n **ministr*tor) **n *xploit t*is vuln*r*

Reasoning

T** s**urity vuln*r**ility is * *l*ssi* SQL inj**tion *oun* in t** **mi*io *ppli**tion. T** root **us* is t** *ir**t *on**t*n*tion o* us*r-suppli** input into *n SQL qu*ry wit*out prop*r s*nitiz*tion. T** *n*lysis o* t** provi*** in*orm*tion, in*lu*i