A Time-of-Check to Time-of-Use (TOCTOU) vulnerability exists in the split utility of uutils coreutils. The program attempts to prevent data loss by checking for identity between input and output files using their file paths before initiating the split operation. However, the utility subsequently opens the output file with truncation after this path-based validation is complete. A local attacker with write access to the directory can exploit this race window by manipulating mutable path components (e.g., swapping a path with a symbolic link). This can cause split to truncate and write to an unintended target file, potentially including the input file itself or other sensitive files accessible to the process, leading to permanent data loss.
The product checks the state of a resource before using that resource, but the resource’s state can change between the check and the use in a way that invalidates the results of the check.
| Name | Vendor | Start Version | End Version |
|---|---|---|---|
| Coreutils | Uutils | - (including) | - (including) |
| Rust-coreutils | Ubuntu | devel | * |
| Rust-coreutils | Ubuntu | esm-apps/noble | * |
| Rust-coreutils | Ubuntu | noble | * |
| Rust-coreutils | Ubuntu | questing | * |
| Rust-coreutils | Ubuntu | resolute | * |
| Rust-coreutils | Ubuntu | upstream | * |