Description
The recursive mode (-R) of the chmod utility in uutils coreutils incorrectly handles exit codes when processing multiple files. The final return value is determined solely by the success or failure of the last file processed. This allows the command to return an exit code of 0 (success) even if errors were encountered on previous files, such as 'Operation not permitted'. Scripts relying on these exit codes may proceed under a false sense of success while sensitive files remain with restrictive or incorrect permissions.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| Uutils | coreutils | < 0.6.0 | 0.6.0 |
Fixed in Linux distributions
Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.
Debian
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Debian 14 | rust-coreutils | 0.6.0-1 | — |
| Debian 13 | rust-coreutils | No fix yet | — |
| Debian 12 | rust-coreutils | No fix yet | — |
Ubuntu
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu 25.10 | rust-coreutils | No fix yet | — |
| Ubuntu 24.04 LTS | rust-coreutils | No fix yet | — |
Affected packages
| Ecosystem | Package | Affected | Fixed | Record |
|---|---|---|---|---|
| crates.io | uu_chmod | < 0.6.0 | 0.6.0 | GHSA-4x34-chg5-mwjj |
References
- https://github.com/uutils/coreutils/pull/9793 patch issue-tracking
- https://github.com/uutils/coreutils/releases/tag/0.6.0 vendor-advisory