CVE-2026-48687
FastNetMon Community Edition through 1.2.9 contains an OS command injection vulnerability in the...
FastNetMon Community Edition through 1.2.9 contains an OS command injection vulnerability in the Juniper router integration plugin. The _log() function in src/juniper_plugin/fastnetmon_juniper.php (lines 117-118) constructs shell commands by concatenating the $msg parameter directly into exec() calls: exec("echo date "- {FASTNETMON] - " . $msg . " " >> " . $FILE_LOG_TMP). The $msg variable contains unsanitized data derived from command-line arguments argv[1] through argv[3], which represent the attack IP address, direction, and power. While FastNetMon's C++ core currently passes IP addresses via inet_ntoa() (which only produces safe dotted-decimal notation), the PHP script performs no input validation or shell escaping. If the script is invoked directly, by another orchestration system, or if future code changes pass string-sourced IPs, arbitrary commands can be injected. The correct fix is to replace exec() with file_put_contents() or use escapeshellarg() on all parameters.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- High
- Integrity
- High
- Availability
- High
Exploit likelihood
What each source reports
NVD Score used
9.8
FastNetMon Community Edition through 1.2.9 contains an OS command injection vulnerability in the Juniper router integration plugin. The _log() function in src/juniper_plugin/fastnetmon_juniper.php (lines 117-118) constructs shell commands by concatenating the $msg parameter directly into exec() calls: exec("echo date "- {FASTNETMON] - " . $msg . " " >> " . $FILE_LOG_TMP). The $msg variable contains unsanitized data derived from command-line arguments argv[1] through argv[3], which represent the attack IP address, direction, and power. While FastNetMon's C++ core currently passes IP addresses via inet_ntoa() (which only produces safe dotted-decimal notation), the PHP script performs no input validation or shell escaping. If the script is invoked directly, by another orchestration system, or if future code changes pass string-sourced IPs, arbitrary commands can be injected. The correct fix is to replace exec() with file_put_contents() or use escapeshellarg() on all parameters.
- Record
CVE-2026-48687- CVSS 3.1
- 9.8 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - CVSS 3.1
- 8.1 High
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N - Weakness
- CWE-78
- Updated
- 2026-11-02
CVE List
8.1
FastNetMon Community Edition through 1.2.9 contains an OS command injection vulnerability in the Juniper router integration plugin. The _log() function in src/juniper_plugin/fastnetmon_juniper.php (lines 117-118) constructs shell commands by concatenating the $msg parameter directly into exec() calls: exec("echo date "- {FASTNETMON] - " . $msg . " " >> " . $FILE_LOG_TMP). The $msg variable contains unsanitized data derived from command-line arguments argv[1] through argv[3], which represent the attack IP address, direction, and power. While FastNetMon's C++ core currently passes IP addresses via inet_ntoa() (which only produces safe dotted-decimal notation), the PHP script performs no input validation or shell escaping. If the script is invoked directly, by another orchestration system, or if future code changes pass string-sourced IPs, arbitrary commands can be injected. The correct fix is to replace exec() with file_put_contents() or use escapeshellarg() on all parameters.
- Record
CVE-2026-48687- CVSS 3.1
- 8.1 High
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N - Weakness
- CWE-78
- Updated
- 2026-11-02
EUVDEUVD-2026-31843
8.1
FastNetMon Community Edition through 1.2.9 contains an OS command injection vulnerability in the Juniper router integration plugin. The _log() function in src/juniper_plugin/fastnetmon_juniper.php (lines 117-118) constructs shell commands by concatenating the $msg parameter directly into exec() calls: exec("echo date "- {FASTNETMON] - " . $msg . " " >> " . $FILE_LOG_TMP). The $msg variable contains unsanitized data derived from command-line arguments argv[1] through argv[3], which represent the attack IP address, direction, and power. While FastNetMon's C++ core currently passes IP addresses via inet_ntoa() (which only produces safe dotted-decimal notation), the PHP script performs no input validation or shell escaping. If the script is invoked directly, by another orchestration system, or if future code changes pass string-sourced IPs, arbitrary commands can be injected. The correct fix is to replace exec() with file_put_contents() or use escapeshellarg() on all parameters.
- Record
EUVD-2026-31843- CVSS 3.1
- 8.1 High
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-qx97-6jw5-h44w
9.8
FastNetMon Community Edition through 1.2.9 contains an OS command injection vulnerability in the...
FastNetMon Community Edition through 1.2.9 contains an OS command injection vulnerability in the Juniper router integration plugin. The _log() function in src/juniper_plugin/fastnetmon_juniper.php (lines 117-118) constructs shell commands by concatenating the $msg parameter directly into exec() calls: exec("echo date "- {FASTNETMON] - " . $msg . " " >> " . $FILE_LOG_TMP). The $msg variable contains unsanitized data derived from command-line arguments argv[1] through argv[3], which represent the attack IP address, direction, and power. While FastNetMon's C++ core currently passes IP addresses via inet_ntoa() (which only produces safe dotted-decimal notation), the PHP script performs no input validation or shell escaping. If the script is invoked directly, by another orchestration system, or if future code changes pass string-sourced IPs, arbitrary commands can be injected. The correct fix is to replace exec() with file_put_contents() or use escapeshellarg() on all parameters.
- Record
GHSA-qx97-6jw5-h44w- CVSS 3.1
- 9.8 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-78
- Updated
- 2026-11-02
OSV
8.1
FastNetMon Community Edition through 1.2.9 contains an OS command injection vulnerability in the Juniper router integration plugin. The _log() function in src/juniper_plugin/fastnetmon_juniper.php (lines 117-118) constructs shell commands by concatenating the $msg parameter directly into exec() calls: exec("echo date "- {FASTNETMON] - " . $msg . " " >> " . $FILE_LOG_TMP). The $msg variable contains unsanitized data derived from command-line arguments argv[1] through argv[3], which represent the attack IP address, direction, and power. While FastNetMon's C++ core currently passes IP addresses via inet_ntoa() (which only produces safe dotted-decimal notation), the PHP script performs no input validation or shell escaping. If the script is invoked directly, by another orchestration system, or if future code changes pass string-sourced IPs, arbitrary commands can be injected. The correct fix is to replace exec() with file_put_contents() or use escapeshellarg() on all parameters.
- Record
CVE-2026-48687- CVSS 3.1
- 8.1 High
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N - Updated
- 2026-11-02
OSVDEBIAN-CVE-2026-48687
9.8
FastNetMon Community Edition through 1.2.9 contains an OS command injection vulnerability in the Juniper router integration plugin. The _log() function in src/juniper_plugin/fastnetmon_juniper.php (lines 117-118) constructs shell commands by concatenating the $msg parameter directly into exec() calls: exec("echo date "- {FASTNETMON] - " . $msg . " " >> " . $FILE_LOG_TMP). The $msg variable contains unsanitized data derived from command-line arguments argv[1] through argv[3], which represent the attack IP address, direction, and power. While FastNetMon's C++ core currently passes IP addresses via inet_ntoa() (which only produces safe dotted-decimal notation), the PHP script performs no input validation or shell escaping. If the script is invoked directly, by another orchestration system, or if future code changes pass string-sourced IPs, arbitrary commands can be injected. The correct fix is to replace exec() with file_put_contents() or use escapeshellarg() on all parameters.
- Record
DEBIAN-CVE-2026-48687- CVSS 3.1
- 9.8 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVUBUNTU-CVE-2026-48687
9.8
FastNetMon Community Edition through 1.2.9 contains an OS command injection vulnerability in the Juniper router integration plugin. The _log() function in src/juniper_plugin/fastnetmon_juniper.php (lines 117-118) constructs shell commands by concatenating the $msg parameter directly into exec() calls: exec("echo date "- {FASTNETMON] - " . $msg . " " >> " . $FILE_LOG_TMP). The $msg variable contains unsanitized data derived from command-line arguments argv[1] through argv[3], which represent the attack IP address, direction, and power. While FastNetMon's C++ core currently passes IP addresses via inet_ntoa() (which only produces safe dotted-decimal notation), the PHP script performs no input validation or shell escaping. If the script is invoked directly, by another orchestration system, or if future code changes pass string-sourced IPs, arbitrary commands can be injected. The correct fix is to replace exec() with file_put_contents() or use escapeshellarg() on all parameters.
- Record
UBUNTU-CVE-2026-48687- CVSS 3.1
- 9.8 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - CVSS 3.1
- 8.1 High
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N - Updated
- 2026-11-02
OSVUSN-8429-1 No score
fastnetmon vulnerabilities
It was discovered that FastNetMon incorrectly validated prefix lengths when decoding BGP NLRI data. A remote attacker could possibly use this issue to cause a denial of service or execute arbitrary code. This issue only affected Ubuntu 24.04 LTS and Ubuntu 26.04 LTS. (CVE-2026-48686)
It was discovered that FastNetMon incorrectly sanitized input in the Juniper router integration plugin. An attacker could possibly use this issue to execute arbitrary commands. (CVE-2026-48687)
It was discovered that FastNetMon incorrectly handled buffer bounds checks when processing network traffic. A remote attacker could possibly use this issue to cause a denial of service or execute arbitrary code. This issue only affected Ubuntu 24.04 LTS and Ubuntu 26.04 LTS. (CVE-2026-48689)
It was discovered that FastNetMon incorrectly handled encoding the BGP AS_PATH attribute. A remote attacker could possibly use this issue to cause a denial of service or execute arbitrary code. This issue only affected Ubuntu 24.04 LTS and Ubuntu 26.04 LTS. (CVE-2026-48691)
It was discovered that FastNetMon incorrectly validated IP address input in the Juniper router integration plugin. An attacker could possibly use this issue to inject arbitrary router configuration commands. (CVE-2026-48694)
- Record
USN-8429-1- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
fastnetmonDebian:12 |
All versions, plus listed versions 1.2.4-21.2.4-2+deb12u11.2.5-11.2.5-21.2.5-2~bpo12+1 Show 9 moreShow less1.2.6-11.2.6-1~bpo12+11.2.7-11.2.7-1~bpo12+11.2.8+git20250911-11.2.8+git20250911-21.2.8-11.2.8-1~bpo12+11.2.9-1 |
None known |
fastnetmonDebian:13 |
before 1.2.9-0+deb13u1, plus listed versions 1.2.8+git20250911-11.2.8+git20250911-21.2.8-1 |
1.2.9-0+deb13u1 |
fastnetmonDebian:14 |
before 1.2.9-1, plus listed versions 1.2.8+git20250911-11.2.8+git20250911-21.2.8-1 |
1.2.9-1 |
fastnetmonUbuntu:Pro:20.04:LTS |
before 1.1.4-1ubuntu0.1~esm1, plus listed versions 1.1.4-11.1.4-1build31.1.4-1build41.1.4-1build5 |
1.1.4-1ubuntu0.1~esm1 |
fastnetmonUbuntu:Pro:24.04:LTS |
before 1.2.6-1ubuntu0.1~esm1, plus listed versions 1.2.5-11.2.6-11.2.6-1build11.2.6-1build21.2.6-1build31.2.6-1build4 |
1.2.6-1ubuntu0.1~esm1 |
fastnetmonUbuntu:25.10 |
All versions, plus listed versions 1.2.8-1build11.2.8-1build21.2.8+git20250911-1 |
None known |
fastnetmonUbuntu:26.10 |
All versions, plus listed versions 1.2.8+git20250911-21.2.9-11.2.9-1build11.2.9-1build2 |
None known |
fastnetmonUbuntu:Pro:26.04:LTS |
before 1.2.8+git20250911-2ubuntu0.1~esm1, plus listed versions 1.2.8+git20250911-11.2.8+git20250911-1build11.2.8+git20250911-1build21.2.8+git20250911-2 |
1.2.8+git20250911-2ubuntu0.1~esm1 |
fastnetmonUbuntu:Pro:20.04:LTS From an advisory covering 5 CVEs |
before 1.1.4-1ubuntu0.1~esm1, plus listed versions 1.1.4-11.1.4-1build31.1.4-1build41.1.4-1build5 |
1.1.4-1ubuntu0.1~esm1 |
fastnetmonUbuntu:Pro:24.04:LTS From an advisory covering 5 CVEs |
before 1.2.6-1ubuntu0.1~esm1, plus listed versions 1.2.5-11.2.6-11.2.6-1build11.2.6-1build21.2.6-1build31.2.6-1build4 |
1.2.6-1ubuntu0.1~esm1 |
fastnetmonUbuntu:Pro:26.04:LTS From an advisory covering 5 CVEs |
before 1.2.8+git20250911-2ubuntu0.1~esm1, plus listed versions 1.2.8+git20250911-11.2.8+git20250911-1build11.2.8+git20250911-1build21.2.8+git20250911-2 |
1.2.8+git20250911-2ubuntu0.1~esm1 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected, facts | ||
| 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-48687 is a critical vulnerability (CVSS 9.8) in Pavel-odintsov Fastnetmon, published May 26, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 1.65%, the 76th percentile. Fixed in fastnetmon 1.2.9-0+deb13u1.
References
github.com/pavel-odintsov/fastnetmon
github.com/pavel-odintsov/fastnetmon/blob/master/src/juniper_plugin/fastnetmon_juniper.php
lorikeetsecurity.com/blog/fastnetmon-cve-2026-48687-juniper-cmd-injection
nvd.nist.gov/vuln/detail/CVE-2026-48687
github.com/advisories/GHSA-qx97-6jw5-h44w
github.com/CVEProject/cvelistV5/tree/main/cves/2026/48xxx/CVE-2026-48687.json
Show 10 moreShow less
security-tracker.debian.org/tracker/CVE-2026-48687
ubuntu.com/security/CVE-2026-48687
cve.org/CVERecord?id=CVE-2026-48687
github.com/pavel-odintsov/fastnetmon/pull/1049
github.com/pavel-odintsov/fastnetmon/commit/6f58184fb60248df011c4c379bf445e07609ad27
ubuntu.com/security/notices/USN-8429-1
ubuntu.com/security/CVE-2026-48686
ubuntu.com/security/CVE-2026-48689
ubuntu.com/security/CVE-2026-48691
ubuntu.com/security/CVE-2026-48694