Severity by source
CVSS:4.0/AV:L/AC:H/AT:P/PR:L/UI:N/VC:N/VI:H/VA:L/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
Local vector and high complexity reflect /tmp symlink attack requiring non-default fs.protected_symlinks=0; PR:L for plugin account access; no confidentiality impact.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
3DescriptionCVE.org
Linuxfabrik monitoring-plugins provides Python monitoring plugins for Icinga, Nagios, and related monitoring systems. In version 6.0.0, the logfile check legacy database migration moved a predictable path from /tmp with os.rename() and allowed a local user controlling the plugin account to place a symlink that would be followed by sqlite3.connect() during a root-run check.
AnalysisAI
Symlink-following in Linuxfabrik monitoring-plugins 6.0.0 allows a local low-privileged user sharing the plugin account to overwrite or corrupt arbitrary root-owned files. The logfile check's legacy database migration resolved a predictable /tmp path via os.rename() without guarding against symlink substitution, and sqlite3.connect() would then follow the attacker-planted link during a root-executed check run. No public exploit has been identified, and exploitation is additionally constrained by the non-default kernel setting fs.protected_symlinks=0, meaningfully reducing real-world risk on hardened systems.
Technical ContextAI
The Linuxfabrik monitoring-plugins package (CPE: cpe:2.3:a:linuxfabrik:monitoring-plugins:*:*:*:*:*:*:*:*) provides Python-based checks for Icinga, Nagios, and compatible monitoring systems. The vulnerable code path is the logfile check's one-time migration routine, introduced to transparently carry forward SQLite state databases written by pre-v6.0.0 versions from /tmp (predictable, world-writable directory) to a secured per-user directory. The migration used os.rename() on a predictable filename derived from the monitored logfile's basename, without first verifying that the source path was a regular file. CWE-59 (Improper Link Resolution Before File Access) identifies the root cause: a privileged process trusts a filesystem path controlled by an unprivileged actor, allowing TOCTOU-style symlink substitution. The sqlite3.connect() call that follows the rename would open whatever file the symlink pointed to, potentially overwriting a sensitive root-owned file with a blank SQLite database or truncating it.
RemediationAI
The upstream fix (commit 6df1f574aa9dc6541e092f1ce482ecc1315cded0) removes the transparent migration routine entirely rather than attempting to make it safe. After applying the fix, the logfile check will no longer carry over the read offset from pre-v6.0.0 state databases, meaning the first post-upgrade run will re-scan the entire monitored logfile once - a known, documented side effect. Update to the patched version of monitoring-plugins referencing the fix commit; a specific tagged release version was not independently confirmed from available data, so monitor https://github.com/Linuxfabrik/monitoring-plugins/releases and the advisory at https://github.com/Linuxfabrik/monitoring-plugins/security/advisories/GHSA-w2gg-hx6w-24w3 for the tagged release. As a compensating control until patching, ensure fs.protected_symlinks=1 is set (verify with sysctl fs.protected_symlinks) - this is the default on modern Linux and blocks the symlink attack in /tmp. Alternatively, restrict local account access so no untrusted user shares the plugin execution account. Manual removal of legacy /tmp state files matching the linuxfabrik-monitoring-plugins-logfile-*.db pattern before the check next runs also eliminates the attack window.
Wazuh SIEM platform versions 4.4.0 through 4.9.0 contain an unsafe deserialization vulnerability in the DistributedAPI t
BentoML version 1.4.2 and earlier contains an unauthenticated remote code execution vulnerability through insecure deser
pgAdmin 4 contains critical remote code execution vulnerabilities in the Query Tool download and Cloud Deployment endpoi
The renderLocalView function in render/views.py in graphite-web in Graphite 0.9.5 through 0.9.10 uses the pickle Python
BentoML is a Python library for building online serving systems optimized for AI apps and model inference. Rated critica
OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.0.1h does not properly restrict processing of ChangeCiph
pyLoad download manager version prior to 0.5.0b3.dev77 exposes the Flask SECRET_KEY through an unauthenticated endpoint.
Langflow (a visual LLM pipeline builder) contains a critical unauthenticated code execution vulnerability (CVE-2026-3301
In Mercurial before 4.1.3, "hg serve --stdio" allows remote authenticated users to launch the Python debugger, and conse
Unauthenticated remote code execution affects Kestra OSS (the open-source event-driven orchestration platform) prior to
Unauthenticated remote code execution in Marimo ≤0.20.4 allows attackers to execute arbitrary system commands via the `/
pyLoad is the free and open-source Download Manager written in pure Python. Rated medium severity (CVSS 5.3), this vulne
Same weakness CWE-59 – Improper Link Resolution Before File Access
View allSame technique Information Disclosure
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-50552