Skip to main content

monitoring-plugins EUVDEUVD-2026-50552

| CVE-2026-67433 MEDIUM
Improper Link Resolution Before File Access (CWE-59)
2026-07-29 GitHub_M
5.8
CVSS 4.0 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Identify predictable /tmp DB filename
  2. Delivery
    Plant symlink pointing to root-owned target file
  3. Exploit
    Wait for root-run logfile check to execute migration
  4. Execution
    os.rename() relocates symlink to secured directory
  5. Persist
    sqlite3.connect() opens and overwrites symlink target
  6. Impact
    Root-owned file corrupted or zeroed

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V5 - File Handling Symlink resolution safety
Exploitation Conditions

Exploitation requires three concurrent conditions: (1) the host must have the non-default kernel parameter fs.protected_symlinks=0 - on modern Linux distributions (RHEL 8+, Ubuntu 18.04+, Debian 10+) this defaults to 1, which blocks the attack entirely in sticky /tmp; (2) the attacker must have a local account that can write to /tmp and shares, or has been granted, access equivalent to the monitoring plugin's execution account; (3) the vulnerable migration code path must be reached, meaning the logfile check must be running for the first time post-upgrade from a pre-v6.0.0 version with a legacy state file absent from the secured per-user directory. The attack window closes after the first successful (or failed) migration attempt, making it a one-shot opportunity per affected logfile check instance. Root-level execution of the check (typical in Nagios/Icinga daemon deployments) is required for the symlink follow to produce privilege escalation impact.

Impact

The CVSS 4.0 score of 5.8 reflects several mitigating factors that together materially suppress real-world risk. Attack vector is local (AV:L), complexity is high (AC:H), the attack target requires a specific prerequisite (AT:P - the non-default fs.protected_symlinks=0 kernel setting), and low privileges are required (PR:L). On modern Linux distributions, fs.protected_symlinks defaults to 1 (enabled), which blocks unprivileged symlink attacks in world-writable sticky directories like /tmp - this single control eliminates the vulnerability on the vast majority of production hosts. The integrity impact is high (VI:H) because a root-run check would rename and then open the attacker's symlink target, but confidentiality is unaffected (VC:N) and availability impact is low (VA:L). No KEV listing and no public exploit code exists, making opportunistic mass exploitation implausible. This is a real but narrow local privilege escalation with integrity consequence, relevant primarily to environments that have explicitly disabled symlink protection or are running older kernels lacking it. Organizations running this plugin on non-hardened Linux hosts should patch; others face substantially reduced risk.

Exploit ScenarioDerived

A local user who shares or has write access to the monitoring plugin account creates a symlink at /tmp/linuxfabrik-monitoring-plugins-logfile-<target>.db pointing to a sensitive root-owned file (e.g., /etc/shadow or a critical configuration file) on a host where fs.protected_symlinks=0. When the root-privileged Icinga or Nagios daemon next executes the logfile check for a v6.0.0 installation, os.rename() moves the symlink to the secured per-user directory and sqlite3.connect() opens it, overwriting or corrupting the target file with SQLite database content. No public exploit code exists, but the attack primitive is well-understood.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
No patch listed yet 0.1% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Jul 29, 2026

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.

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.

Affected VersionsENISA

monitoring-plugins 6.0.0

Affected Packages

euvd monitoring_plugins no fix

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

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.

Know when Python gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (GitHub_M) PRIMARY 5.8 MEDIUM
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
vuln.today AI 5.3 MEDIUM

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.

3.1 AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:H/A:L
4.0 AV:L/AC:H/AT:P/PR:L/UI:N/VC:N/VI:H/VA:L/SC:N/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Local
Attack Complexity
High
Attack Requirements
Present
Privileges Required
Low
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
High
Vulnerable system: Availability
Low
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.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.

Threat Intelligence Overview

EPSS Score
0.1%
Top 100% exploitable
Prevalence
Low
niche Python monitoring plugin for Icinga/Nagios ecosystems
Data Quality
6 sources
Confidence: High

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.1%
Patch available No
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Defer
Exploitation
None
System Exposure· derived
Small
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

29
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +29
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

More in Python

View all
CVE-2025-24016 CRITICAL POC
9.9 Feb 10

Wazuh SIEM platform versions 4.4.0 through 4.9.0 contain an unsafe deserialization vulnerability in the DistributedAPI t

CVE-2025-27520 CRITICAL POC
9.8 Apr 04

BentoML version 1.4.2 and earlier contains an unauthenticated remote code execution vulnerability through insecure deser

CVE-2025-2945 CRITICAL POC
9.9 Apr 03

pgAdmin 4 contains critical remote code execution vulnerabilities in the Query Tool download and Cloud Deployment endpoi

CVE-2013-5093 MEDIUM POC
6.8 Sep 27

The renderLocalView function in render/views.py in graphite-web in Graphite 0.9.5 through 0.9.10 uses the pickle Python

CVE-2025-32375 CRITICAL POC
9.8 Apr 09

BentoML is a Python library for building online serving systems optimized for AI apps and model inference. Rated critica

CVE-2014-0224 HIGH POC
7.4 Jun 05

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

CVE-2024-21644 HIGH POC
7.5 Jan 08

pyLoad download manager version prior to 0.5.0b3.dev77 exposes the Flask SECRET_KEY through an unauthenticated endpoint.

CVE-2026-33017 CRITICAL POC
9.3 Mar 17

Langflow (a visual LLM pipeline builder) contains a critical unauthenticated code execution vulnerability (CVE-2026-3301

CVE-2017-9462 HIGH POC
8.8 Jun 06

In Mercurial before 4.1.3, "hg serve --stdio" allows remote authenticated users to launch the Python debugger, and conse

CVE-2026-49869 CRITICAL POC
10.0 Jun 26

Unauthenticated remote code execution affects Kestra OSS (the open-source event-driven orchestration platform) prior to

CVE-2026-39987 CRITICAL POC
9.3 Apr 08

Unauthenticated remote code execution in Marimo ≤0.20.4 allows attackers to execute arbitrary system commands via the `/

CVE-2024-21645 MEDIUM POC
5.3 Jan 08

pyLoad is the free and open-source Download Manager written in pure Python. Rated medium severity (CVSS 5.3), this vulne

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy