Aug 18, 2026·5 min read·11 visits
A local path traversal flaw in the testing parameters of Linuxfabrik Monitoring Plugins allows unprivileged users to read sensitive files as root.
CVE-2026-73974 is a local path traversal vulnerability in linuxfabrik-lib and Linuxfabrik Monitoring Plugins. Under standard monitoring configurations running with elevated privileges via sudo, this flaw can be exploited by an unprivileged local user to read arbitrary root-only files, resulting in local privilege escalation.
CVE-2026-73974 is a directory traversal and improper privilege management vulnerability affecting the Linuxfabrik monitoring ecosystem. This ecosystem includes the Python-based utility library linuxfabrik-lib and its corresponding suite of check plugins. These plugins are commonly integrated into enterprise monitoring frameworks such as Nagios, Icinga, or Sensu.
Under standard monitoring configurations, plugins frequently require elevated privileges to read low-level hardware or system configurations. To facilitate this, administrators regularly configure passwordless sudo access for the dedicated, unprivileged monitoring service accounts, such as nagios or icinga.
An unprivileged local user who has compromised the monitoring service account can leverage a hidden, production-accessible parameter named --test. By supplying a malformed input containing traversal sequences or absolute paths to this parameter, the root-privileged plugin can be forced to disclose the contents of arbitrary restricted files, leading to complete local privilege escalation.
The root cause of the vulnerability lies in insecure input handling and path resolution within the testing harness library helper lib.lftest.test(). This function was designed to ingest a mock file parameter via the --test command-line flag and simulate output streams during automated testing or validation environments.
When the utility received a file path via --test, it invoked the native Python method os.path.isfile() to confirm the path resolved to a valid file on disk. Upon confirmation, it read the file using the internal disk.read_file() method. This design failed to implement directory containment verification, making it susceptible to path traversal.
In addition to the shared library helper flaw, specific plugins directly interacted with the local file system using the command line arguments without sanitization. The network-bonding plugin directly invoked Python's native open() method on the string provided via --test. Similarly, the openstack-swift-stat plugin leveraged lib.disk.read_file() directly, bypassing the common library testing logic entirely.
A tertiary vulnerability exists within the SQLite database utility helper db_sqlite.py. The get_db_path() function constructed paths using caller-controlled database names. Because it lacked sanity checks to restrict inputs to base file names, path traversal markers like .. could be used to manipulate database files outside of the designated secured directory.
The fix for CVE-2026-73974 was implemented by modifying db_sqlite.py and lftest.py in linuxfabrik-lib to enforce strict containment. In db_sqlite.py, the get_db_path() function now explicitly rejects any database filenames that are not plain basenames. This prevents attackers from traversing out of the hardened directories.
The lftest.py library helper was restructured to route all reads through a new private function _read_fixture(). This helper anchors path resolution to the actual location of the running plugin script using sys.argv[0] rather than the current working directory, which is attacker-controlled. The path is then canonicalized using os.path.realpath() and validated to ensure it resides within the safe <plugin_dir>/unit-test/ directory.
The following diagram illustrates the path resolution flow before and after the application of the patch:
An exploitation scenario requires an attacker to have established local shell access with the privileges of a monitoring service user, such as nagios. The attacker first audits the sudo permissions to identify which Linuxfabrik plugins are whitelisted for passwordless sudo execution.
Upon identifying a whitelisted plugin, such as /usr/lib/nagios/plugins/deb-updates, the attacker invokes the binary under sudo while passing the target file path through the --test parameter. For example, executing sudo deb-updates --test /etc/shadow,1 forces the root-privileged process to read /etc/shadow.
Because the unpatched plugin handles the --test argument as a path to mock standard output or standard error results, the library parses the file and outputs its contents to the console. The attacker can then extract system password hashes, private SSH keys, or administrative configuration files.
Immediate remediation requires updating the linuxfabrik-lib package to version 6.1.0 or 6.0.1. Simultaneously, the Linuxfabrik Monitoring Plugins package must be updated to version 7.0.0 or later. These versions incorporate the strict basename and directory containment checks.
If patching cannot be performed immediately, temporary workarounds must be applied. Administrators should review /etc/sudoers files to ensure that monitoring plugins are not granted wildcards or permissive invocation privileges. Wherever possible, restrict write permissions to the plugin installation directories to prevent low-privileged users from tampering with files.
Intrusion detection can be achieved by monitoring host audits and shell history logs. Security teams should deploy auditd rules or SIEM detection patterns that trigger alerts when system monitoring accounts execute commands containing the --test parameter in conjunction with path traversal characters or sensitive directory paths like /etc/ or /root/.
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N| Product | Affected Versions | Fixed Version |
|---|---|---|
linuxfabrik-lib Linuxfabrik | < 6.1.0 | 6.1.0 |
monitoring-plugins Linuxfabrik | < 7.0.0 | 7.0.0 |
| Attribute | Detail |
|---|---|
| CWE ID | CWE-22 / CWE-269 |
| Attack Vector | Local |
| CVSS | 5.5 |
| EPSS | N/A |
| Impact | Local Privilege Escalation |
| Exploit Status | PoC |
| KEV Status | Not Listed |
An LDAP injection vulnerability exists in the centraldogma-server-auth-shiro module of LY Corporation Central Dogma before version 0.84.0. The search logic dynamically constructs LDAP search filters by interpolating user-provided usernames without escaping RFC 4515 metacharacters. Unauthenticated remote attackers can leverage this flaw to bypass authentication, enumerate directory hierarchies, and access unauthorized resources.
CVE-2026-11746 is a critical vulnerability in Central Dogma Server prior to version 0.84.0, where an embedded ZooKeeper replication secret silently falls back to a publicly known, hard-coded default string ('ch4n63m3'). Remote attackers with access to the replication network can authenticate as legitimate cluster peers, potentially leading to unauthorized data exposure, state manipulation, or complete cluster takeover.
A logical verification flaw in ZITADEL's external JWT Identity Provider validation allows attackers to bypass session expiration checks. If an incoming JWT lacks the 'exp' claim, the system skips validation entirely, creating an indefinitely valid session. This issue has been addressed in versions 3.4.12 and 4.15.2.
CVE-2026-59149 identifies a directory traversal vulnerability in `@mockoon/commons-server`, the backend mock-server library powering the Mockoon application. The flaw occurs in the path containment validation logic used during raw file response generation. An unauthenticated attacker can exploit this weakness to retrieve arbitrary files from sibling directories sharing a common prefix with the designated static base directory.
An in-depth analysis of CVE-2026-59148, a high-severity flaw in Mockoon where unauthenticated administrative endpoints and a wildcard Cross-Origin Resource Sharing (CORS) policy allow remote execution, state poisoning, and credential theft.
An improper authentication vulnerability (CWE-287) in ZITADEL's external identity provider handler before version 4.15.3 allows remote attackers to perform complete account takeover. When auto-linking by email is enabled, ZITADEL verifies that the local target account has a verified email address but fails to verify if the external provider confirmed ownership of that same email. Attackers can exploit this by registering an unverified account with a victim's email address on a permissive external provider, leading to unauthorized account binding and persistent access.