`cut` routes `-z -d ''` through a special newline-delimiter path that ignores the `-s` only-delimited flag, emitting whole undelimited records (plus NUL) that should be suppressed. Pipelines relying on `cut -s` to drop undelimited records process data that should be filtered.
```
printf 'abc' | cut -z -d '' -s -f 1 | od -An -tx1 # GNU: no output ; uutils: 61 62 63 00
```
---
_Zellic private finding (zellic-ext/coreutils-private PR #102). Reported in the Zellic *uutils coreutils Program Security Assessment* (for Canonical, Jan 2026), audited commit `3a07ffc5a9bd4c283e75afa548ba1f1957bad242`._
A logic error in the cut utility of uutils coreutils causes the program to incorrectly interpret the literal two-byte string '' (two single quotes) as an empty delimiter. The implementation mistakenly maps this string to the NUL character for both the -d (delimiter) and --output-delimiter options. This vulnerability can lead to silent data corruption or logic errors in automated scripts and data pipelines that process strings containing these characters, as the utility may unintentionally split or join data on NUL bytes rather than the intended literal characters.
A logic error in the tr utility of uutils coreutils causes the program to incorrectly define the [:graph:] and [:print:] character classes. The implementation mistakenly includes the ASCII space character (0x20) in the [:graph:] class and excludes it from the [:print:] class, effectively reversing the standard behavior established by POSIX and GNU coreutils. This vulnerability leads to unintended data modification or loss when the utility is used in automated scripts or data-cleaning pipelines that rely on standard character class semantics. For example, a command executed to delete all graphical characters while intending to preserve whitespace will incorrectly delete all ASCII spaces, potentially resulting in data corruption or logic failures in downstream processing.
A logic error in the expr utility of uutils coreutils causes the program to evaluate parenthesized subexpressions during the parsing phase rather than at the execution phase. This implementation flaw prevents the utility from performing proper short-circuiting for logical OR (|) and AND (&) operations. As a result, arithmetic errors (such as division by zero) occurring within "dead" branches, branches that should be ignored due to short-circuiting, are raised as fatal errors. This divergence from GNU expr behavior can cause guarded expressions within shell scripts to fail with hard errors instead of returning expected boolean results, leading to premature script termination and breaking GNU-compatible shell control flow.
A Time-of-Check to Time-of-Use (TOCTOU) vulnerability exists in the chcon utility of uutils coreutils during recursive operations. The implementation resolves recursive targets using a fresh path lookup (via fts_accpath) rather than binding the traversal and label application to the specific directory state encountered during traversal. Because these operations are not anchored to file descriptors, a local attacker with write access to a directory tree can exploit timing-sensitive rename or symbolic link races to redirect a privileged recursive relabeling operation to unintended files or directories. This vulnerability breaks the hardening expectations for SELinux administration workflows and can lead to the unauthorized modification of security labels on sensitive system objects.
A logic error in the split utility of uutils coreutils causes the corruption of output filenames when provided with non-UTF-8 prefix or suffix inputs. The implementation utilizes to_string_lossy() when constructing chunk filenames, which automatically rewrites invalid byte sequences into the UTF-8 replacement character (U+FFFD). This behavior diverges from GNU split, which preserves raw pathname bytes intact. In environments utilizing non-UTF-8 encodings, this vulnerability leads to the creation of files with incorrect names, potentially causing filename collisions, broken automation, or the misdirection of output data.
A logic error in the ln utility of uutils coreutils allows the utility to dereference a symbolic link target even when the --no-dereference (or -n) flag is explicitly provided. The implementation previously only honored the "no-dereference" intent if the --force (overwrite) mode was also enabled. This flaw causes ln to follow a symbolic link that points to a directory and create new links inside that target directory instead of treating the symbolic link itself as the destination. In environments where a privileged user or system script uses ln -n to update a symlink, a local attacker could manipulate existing symbolic links to redirect file creation into sensitive directories, potentially leading to unauthorized file creation or system misconfiguration.
A vulnerability in the kill utility of uutils coreutils causes improper input validation. The utility misinterprets the argument 'kill -1' as a request to send the default signal (SIGTERM) to PID -1, which causes the kernel to terminate all processes visible to the caller. This behavior differs from GNU coreutils, which correctly treats '-1' as a signal number and reports a missing PID argument. This can lead to a system crash or massive process termination.
The printenv utility in uutils coreutils does not display environment variables containing invalid UTF-8 byte sequences, silently skipping them instead. This behavior deviates from POSIX standards, which allow arbitrary bytes in environment strings. As a result, malicious environment variables with invalid UTF-8 can evade inspection by administrators or security tools, potentially hiding attacks such as library injection. The vulnerability affects version 0 of uutils coreutils and has a medium severity rating with a CVSS score of 4.4.
The mv utility in uutils coreutils improperly handles symbolic links when moving directory trees across filesystem boundaries by expanding symlinks instead of preserving them. This behavior can cause resource exhaustion, unexpected duplication of sensitive data, or infinite recursion due to symlink loops. The vulnerability is tracked as CVE-2026-35365 with a medium severity rating and a CVSS score of 6.6. No patch or official remediation has been confirmed yet.
A TOCTOU (Time-of-Check to Time-of-Use) race condition exists in the safe_traversal module of uutils coreutils. This module uses file-descriptor-relative syscalls to protect against symlink race conditions but only on Linux systems. On other Unix-like systems such as macOS and FreeBSD, these protections are not applied, leaving directory traversal vulnerable to symlink race attacks. The vulnerability has a low severity score and currently no known exploits or patches.
CVE-2026-35361 is a vulnerability in the mknod utility of uutils coreutils where device nodes are created before their SELinux security labels are set. If the labeling fails, the cleanup attempt does not remove the improperly labeled device nodes, leaving them with default contexts that may allow unauthorized access. This issue relates to improper preservation of permissions due to non-atomic handling of security labels.
A vulnerability in the cp utility of uutils coreutils affects recursive copy operations (-R). When copying character and block device nodes, the utility incorrectly reads device nodes as regular files instead of preserving their device semantics using mknod. This causes device nodes like /dev/null to become regular files, potentially leading to denial of service through disk exhaustion or process hangs when accessing these files.
CVE-2026-35356 is a Time-of-Check to Time-of-Use (TOCTOU) race condition vulnerability in the install utility of uutils coreutils when used with the -D flag. The vulnerability arises because the utility creates parent directories and then resolves the target file path in two separate steps without anchoring these operations to a directory file descriptor. This allows an attacker with concurrent write access to replace a path component with a symbolic link between these steps, potentially redirecting privileged writes to arbitrary filesystem locations. The vulnerability has a medium severity with a CVSS score of 6.3.
A Time-of-Check to Time-of-Use (TOCTOU) race condition exists in the install utility of uutils coreutils. The vulnerability arises because the utility unlinks an existing destination file and then recreates it without using the O_EXCL flag, allowing a local attacker to swap the file path with a symbolic link. This can lead to privileged writes overwriting arbitrary system files. The vulnerability has a medium severity with a CVSS score of 6.3.
A TOCTOU race condition exists in the mkdir utility of uutils coreutils when using the -m flag. The directory is initially created with default umask permissions before being changed to the requested mode, creating a brief window where the directory may be accessible to other users. This can lead to unauthorized data access in multi-user environments. The vulnerability has a low CVSS score of 3.3 and currently no known exploits or official patches are available.
CVE-2026-35349 is a vulnerability in the rm utility of uutils coreutils that allows bypassing the --preserve-root protection. The vulnerability arises because the utility uses a path-string check instead of verifying device and inode numbers to identify the root directory. This flaw enables an attacker or accidental user to bypass safeguards by using a symbolic link that resolves to the root directory, potentially causing recursive deletion of the entire root filesystem.
A vulnerability in the comm utility of uutils coreutils causes improper input validation. The utility reads data from input paths without verifying if they are regular files, leading to potential silent data loss when inputs are FIFOs or pipes. It may also hang indefinitely when reading from infinite streams like /dev/zero.
The comm utility in uutils coreutils improperly handles Unicode encoding by performing lossy UTF-8 conversion on all output lines. This causes silent data corruption when comparing binary files or files with non-UTF-8 encodings, as invalid UTF-8 sequences are replaced with the Unicode replacement character. This behavior differs from GNU comm, which preserves raw byte data. The vulnerability has a low severity score and no known exploits in the wild.
A vulnerability in the cut utility of uutils coreutils causes incorrect handling of the -s (only-delimited) option when a newline character is used as the delimiter. This flaw results in non-delimited lines being printed when they should be suppressed, potentially passing unexpected data to downstream scripts relying on strict output filtering. The issue is identified as CWE-670 (Always-Incorrect Control Flow Implementation). The vulnerability has a low severity score and no known exploits or patches are currently available.