Description
The comm utility in uutils coreutils incorrectly consumes data from non-regular file inputs before performing comparison operations. The are_files_identical function opens and reads from both input paths to compare content without first verifying if the paths refer to regular files. If an input path is a FIFO or a pipe, this pre-read operation drains the stream, leading to silent data loss before the actual comparison logic is executed. Additionally, the utility may hang indefinitely if it attempts to pre-read from infinite streams like /dev/zero.
Problem types
CWE-20: Improper Input Validation
Product status
Any version before 0.6.0
Credits
Zellic
References
github.com/uutils/coreutils/pull/9545
github.com/uutils/coreutils/pull/9545
github.com/uutils/coreutils/releases/tag/0.6.0