CVE-2025-65103: API · OpenSTAManager Has Authenticated SQL Injection
Affects devcode-it/openstamanagerSource GCVE Database
Not known to be exploited · CVSS 8.8 High : upgrade to 2.9.5 soon.
Data as of 13 Nov 2026, 18:29 UTC
Thin evidence
One scorer or none| CNA (GitHub_M) | CVSS 3.1 | 8.8 |
|---|
- Patch
- Available – fixed in 2.9.5
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:HExploitation evidence
Disclosed: evidence found.
CVE published 19 Nov 2025
Detectable: no evidence on record.
No public nuclei template indexed
Weaponized: no evidence on record.
No public exploit code indexed in Metasploit or Exploit-DB
Exploited in the wildExploited: no evidence on record.
Not in CISA KEV and no source reports exploitation
Observed by OffSeq MirageSeen by Mirage: no evidence on record.
No attack traffic recorded by OffSeq Mirage sensors
A missing step is not evidence of safety. Sources: cve.org (opens in a new tab), the Metasploit, Exploit-DB and nuclei-templates index as of 13 Nov 2026.
What to do
Upgrade devcode-it/openstamanager to 2.9.5.
Affected software
| Product | Affected | Fixed in |
|---|---|---|
| Packagistdevcode-it/openstamanager | Affected
| Fixed in
|
Check your own hosts for these packages with threat-finder (opens in a new tab), our free open-source scanner.
Description
### Summary An authenticated SQL Injection vulnerability in the API allows any user, regardless of permission level, to execute arbitrary SQL queries. By manipulating the `display` parameter in an API request, an attacker can exfiltrate, modify, or delete any data in the database, leading to a full system compromise. ### Details The vulnerability is located in the `retrieve()` method within `src/API/Manager.php`. User input from the `display` GET parameter is processed without proper validation. The code strips the surrounding brackets `[]`, splits the string by commas, and then passes each resulting element directly into the `selectRaw()` function of the query builder. ```php // User input from 'display' is taken without sanitization. $select = !empty($request['display']) ? explode(',', substr((string) $request['display'], 1, -1)) : null; // ... // The unsanitized input is passed directly to `selectRaw()`. foreach ($select as $s) { $query->selectRaw($s); } ``` Since `selectRaw()` is designed to execute raw SQL expressions, it executes any malicious SQL code provided in the `display` parameter. ### PoC 1. Log in to an OpenSTAManager instance as any user. 2. Navigate to the user's profile page to obtain their personal API Token. 3. Use this API token to send a specially crafted GET request to the API endpoint. **Time-Based Blind Injection Test:** Replace `<your_host>`, `<your_token>`, and `<resource_name>` with your actual values. `anagrafiche` is a valid resource. ```bash curl "http://<your_host>/openstamanager/api?token=<your_token>&resource=anagrafiche&display=[1,SLEEP(5)]" ``` The server will delay its response by approximately 5 seconds, confirming the `SLEEP(5)` command was executed by the database. ### Impact This is a critical SQL Injection vulnerability. Any authenticated user, even those with the lowest privileges, can exploit this vulnerability to: * **Exfiltrate all data** from the database (e.g., user credentials, customer information, invoices, internal data). * **Modify or delete data**, compromising data integrity. * Potentially achieve further system compromise, depending on the database user's privileges and system configuration.