Описание
chmod: recursive mode returns exit code 0 even when some files fail (last-file-wins)
In Chmoder::chmod() the recursive branch overwrites the running result instead of accumulating it, so the exit code reflects only the last file processed:
PoC: GNU returns 1 when a file fails; uutils returns 0 if the last entry succeeds:
Impact: scripts relying on the exit code get a false success signal while some files retained restrictive/unexpected permissions, leading to access-control misconfigurations. Recommendation: accumulate errors during traversal.
Remediation: Acknowledged by Canonical; fixed in commit abd581f6.
Reported by Zellic in the uutils coreutils Program Security Assessment (prepared for Canonical, Jan 20 2026), audited commit 3a07ffc5a9bd4c283e75afa548ba1f1957bad242. Finding 3.2. Credit: Zellic.
Ссылки
- https://github.com/uutils/coreutils/security/advisories/GHSA-4x34-chg5-mwjj
- https://nvd.nist.gov/vuln/detail/CVE-2026-35339
- https://github.com/uutils/coreutils/pull/9793
- https://github.com/uutils/coreutils/commit/abd581f62e97d0b147306ac40eac13af71c6fbba
- https://github.com/uutils/coreutils/releases/tag/0.6.0
Пакеты
uu_chmod
< 0.6.0
0.6.0
Связанные уязвимости
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.
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.
The recursive mode (-R) of the chmod utility in uutils coreutils incor ...