]> git.ipfire.org Git - thirdparty/util-linux.git/commit
lib/path: fix possible out of boundary access
authorTobias Stoeckmann <tobias@stoeckmann.org>
Sun, 8 Oct 2023 18:41:29 +0000 (20:41 +0200)
committerTobias Stoeckmann <tobias@stoeckmann.org>
Sun, 8 Oct 2023 18:47:30 +0000 (20:47 +0200)
commite192f2d81160c4e4f9a6b21329cf9d6045a405d0
tree1417ea58a96fd74169dec87dff78bb0b22ed6ce5
parent762898e3fe469991be742216e573609142a0df99
lib/path: fix possible out of boundary access

If fgets reads from a file starting with a NUL byte in ul_path_cpuparse,
then the check for newline leads to an out of boundary access.

Proof of Concept (compile with --enable-asan):

1. Prepare /tmp/poc with required files
```
$ install -d /tmp/poc/sys/devices/system/cpu
$ dd if=/dev/zero of=/tmp/poc/sys/devices/system/cpu/possible bs=1 count=1
$ install -D /dev/null /tmp/poc/proc/cpuinfo
```

2. Run lscpu with sysroot option
```
$ lscpu --sysroot /tmp/poc
=================================================================
==78238==ERROR: AddressSanitizer: heap-buffer-overflow
```

Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org>
lib/path.c