CVE-2026-76061 is a medium severity vulnerability in Red Hat OpenShift Container Platform 4 related to improper link resolution before file access in CRI-O's bind_mount_prefix handling. A malicious container or local attacker can exploit this by using a Container Runtime Interface (CRI) hostPath with an intermediate absolute symlink, potentially causing the bind mount source to resolve outside the intended directory. This may lead to unauthorized file access or privilege escalation on the host system.
Classroom 50 is a free and open-source tool for managing and grading programming assignments via GitHub. Prior to version 1.11.0, `gh teacher download` clones each student's assignment repository and then writes autograde artifacts (`result.json` and `results.json`) into the just-cloned working tree. The write followed symlinks, so a student who committed `result.json` or `results.json` as a **symlink** (materialized verbatim by `git clone`) could redirect the teacher's write to an arbitrary path — e.g. `~/.zshrc`, `~/.ssh/authorized_keys`, a cron file, or an in-clone `.git/hooks/*` file that git subsequently executes. The written bytes are attacker-controlled (the student's uploaded release asset for `result.json`; student-chosen submit-tag names for `results.json`). This is an arbitrary file write leading to code execution as the teacher, whose `gh` token carries `admin:org`, `repo`, and `workflow` across the entire classroom organization. Version 1.11.0 contains a patch. Some workarounds are available. Avoid running `gh teacher download` against untrusted student repositories, or run it inside a disposable sandbox / container with no access to sensitive host files or credentials. Inspect cloned trees for symlinked, hardlinked, or special (`result.json`/`results.json`) entries before allowing the artifact-refresh step to run.
CVE-2026-102113 is a privilege escalation vulnerability in Kiteworks Core that allows an attacker with local access as an unprivileged backend service account to escalate privileges to root. The issue arises from improper handling of filesystem paths by a privileged routine, enabling arbitrary command execution with root privileges. Exploitation requires prior code execution under the lower-privileged service account. The vulnerability affects Kiteworks Core versions prior to 9.5.0.
CVE-2026-102118 is a local privilege escalation vulnerability in Kiteworks Core that allows an attacker with a low-privileged shell to escalate to root privileges on the appliance. The flaw involves improper link resolution before file access, categorized under CWE-59. It affects Kiteworks Core versions from 0 up to but not including 9.5.0. The vulnerability has a high severity with a CVSS score of 7.8.
Cato Networks SDP Client for Windows before 6.12.6 allows a local user to delete arbitrary files with SYSTEM privileges via improper validation of a client-supplied SID over a local IPC named pipe.
Improper link resolution (CWE-59 / CWE-22) in the allowedLocalRoots path validation in Google MCP Toolbox for Databases versions 1.2.0 through 1.9.0 allows a remote authenticated attacker with tool execution permissions to bypass directory boundary restrictions via symbolic links. Because path validation checks directories lexically without resolving symbolic links first, an attacker can access or overwrite arbitrary local files located outside the permitted root directories.
CVE-2026-92371 is a vulnerability in TeamViewer Full Client and Host for Linux versions 15.0 up to but not including 15.82. It involves improper path validation in the Cloud Session Recording functionality, allowing a local authenticated attacker to exploit a race condition to perform privileged file operations in unintended locations. This flaw is fixed in version 15.82.
The decompress package for Node.js extracts archives. Prior to 10.2.2 and 11.1.4, the default decompress(input, output) API relies on lexical containment checks that do not account for the kernel following a planted symlink chain. An attacker can supply a crafted archive containing chained symlink entries so that a later entry resolves outside the output directory. This allows files outside output to be read or written, and overwriting startup scripts or configuration can lead to remote code execution. The maintained @xhmikosr/decompress package is fixed in 10.2.2 and 11.1.4, but the separately affected unmaintained decompress package remains unpatched through 4.2.1. This vulnerability results from a bypass of the incomplete hardening for CVE-2026-53486. @xhmikosr/decompress is fixed in versions 10.2.2 and 11.1.4.
Improper link resolution in the recursive file pull feature of the LXD CLI client in Canonical LXD versions 4.0.2 up to 6.9 (fixed in 4.0.14, 5.0.10 and 5.21.8) on Linux allows an attacker with root access inside a virtual machine to write attacker-controlled files or directory trees to arbitrary paths on the client host, with the operator's privileges. The attacker does this by using a modified lxd-agent that returns inconsistent SFTP directory listings and Lstat results.
CVE-2026-87799 is a critical vulnerability in Canonical LXD affecting versions 4.0.0 up to but not including 4.0.14, 5.0.0 up to 5.0.10, 5.21.0 up to 5.21.8, and 6.0 up to 6.10. It involves improper link resolution in the migration receive path, allowing an authenticated client with certain permissions or a malicious migration source server to write arbitrary files as root on the host. This can lead to full host compromise. The issue is exploited via crafted rsync or btrfs send streams that plant symlinks in transferred volumes.
Contrast is a confidential-computing runtime for Kubernetes. In versions before 1.19.1, the Kata agent policies generated by the Contrast CLI contained a flaw in the CopyFile verification that allowed arbitrary writes to the guest root filesystem. A malicious process on the untrusted host able to connect to the Kata agent VSOCK could issue a series of CopyFile requests to overwrite security-critical files in the guest or trick the workload into disclosing sensitive data, effectively amounting to a full guest takeover. Users unable to upgrade can apply an equivalent rego policy fix passed to 'contrast generate --policy'.
CVE-2026-80430 is a medium severity vulnerability in kitty versions 0.47.0 up to but not including 0.49.0. It involves improper link resolution before file access in the drag and drop protocol, allowing a local user to create files and directories outside the intended staging directory by exploiting symlink handling. The vulnerability arises because the code resolves paths by string construction rather than component-wise traversal, ignoring certain error conditions and not validating symlink targets. This can lead to arbitrary file and directory creation at any path writable by the user running kitty.
Improper link resolution before file access ('link following') vulnerability in the `tar` source plugin of Apache BuildStream running on Python < 3.12 allows malicious source tarballs to write files on the host, with the privileges of the user running BuildStream, via symlinks as part of source fetching.
The impact of this issue is mitigated by:
* BuildStream projects should only use trusted sources in their elements as otherwise the build output can also not be trusted
* Tracking a source tarball pins its SHA256 hash, which prevents MITM attacks of users that are fetching an already tracked project
* When running on Python >= 3.12, BuildStream >= 2.3.0 already makes use of the Python `tarfile` filter functionality, which blocks the symlink escape
Users are recommended to upgrade to version 2.8.1, which fixes this issue.
CVE-2026-55074 is a vulnerability in the Ansible FreeBSD Jail Connection Plugin (ansible_jailexec) up to version 1.3.0. The plugin's put_file function improperly resolves symbolic links when transferring files to a FreeBSD jail, allowing an attacker with control inside the jail to cause arbitrary root-owned writes on the host system outside the jail. This can lead to a full jail escape and potential host compromise. The issue is fixed in version 2.0.0.
CVE-2026-92253 is a medium severity vulnerability in WatchDog Anti-Virus 1.8.640 through 1.8.803 on Windows. It involves improper link resolution during the quarantine restoration process, allowing a local low-privileged attacker to create a directory junction at the original file path. If an administrator restores the quarantined file, it may be written to an arbitrary location, potentially enabling modification of protected files or SYSTEM-level code execution via DLL hijacking.
Grafana OSS and Grafana Enterprise did not safely resolve symbolic links when
extracting plugin archives. A crafted plugin archive can chain relative symbolic link
entries to escape the plugin installation directory, writing arbitrary files and an
executable backend binary outside that directory. The dropped executable runs with the
privileges of the Grafana server process, resulting in remote code execution.
Plugin archives are extracted before their signature is verified, so a valid plugin
signature does not prevent the write. An operator can therefore be affected by
installing a plugin that appears legitimate, as well as by installing a plugin from an
arbitrary archive using grafana-cli, the GF_INSTALL_PLUGINS environment variable, or
preinstall configuration.
Grafana Enterprise is affected because it includes the same plugin extraction code as
Grafana OSS.
CVE-2026-54576 is a vulnerability in the MidnightBSD package manager 'mport' prior to version 2.7.8. The issue involves improper link resolution before file access during package installation, allowing a local attacker with write access to a target directory to replace a file with a symbolic link. This can cause privileged ownership or mode changes to be applied to an attacker-controlled path, potentially compromising filesystem integrity or permissions. The vulnerability is fixed in version 2.7.8.
mport is the MidnightBSD Package Manager. Prior to 2.7.8, directory assets handled as ASSET_DIR or ASSET_DIR_OWNER_MODE in libmport/bundle_read_install_pkg.c used path-based mport_mkdirp(), ownership, and permission operations. A local attacker able to modify part of the target installation tree could use dot-dot traversal or substitute symlinks during privileged package installation, causing directory creation or attribute changes to affect attacker-selected paths outside the intended package directories. This issue is fixed in version 2.7.8.
pgAdmin 4's File Manager save_file endpoint, which backs saving from the Query Tool and ERD, validated the requested path with Filemanager.check_access_permission() and then opened the file for writing with a plain open() call. CVE-2026-7819 had previously hardened the separate file upload path by opening its target with O_NOFOLLOW, so that the kernel refuses to follow a symbolic link at the final path component, but save_file was left on an unprotected open(). A symbolic link already present when the check ran was rejected by the check itself; the remaining exposure was a link substituted at the final path component in the interval between the check and the write, at which point the write followed the link and landed outside the user's storage directory, creating or overwriting an arbitrary file as the operating-system account running pgAdmin.
Exploitation requires the ability to create or replace a symbolic link inside the requesting user's storage directory. pgAdmin exposes no interface that creates symbolic links, so this requires filesystem access to the pgAdmin host or to a shared or network-mounted storage backend, together with winning the timing window. The reporter did not achieve a write against a released version, having attempted approximately 63,000 racing requests without success; the reported defect is the uncovered write path rather than a demonstrated sandbox escape.
The fix routes save_file's write through the same O_NOFOLLOW-protected helper already used by the upload path, so both File Manager write sinks carry identical kernel-enforced protection, and reports a symbolic-link refusal explicitly instead of surfacing the underlying system error text. Note that files created by save_file are now given mode 0600, inheriting the behaviour introduced for uploads. The protection covers the final path component; substitution of an intermediate directory component is not addressed by this change.
This issue affects pgAdmin 4: from the introduction of the containment check in the File Manager save path before 9.18.