Re: Report 3 UBSan integer overflow bugs found by an automatic fuzzer

2021-09-05 Thread Paul Smith
On Wed, 2021-06-30 at 17:34 +, He  Jingxuan wrote:
> We tested GNU make with an automatic tool (based on the fuzzer AFL).
> A number of test cases triggering UBSan integer overflow errors were
> generated. We manually checked those test cases and filtered out
> benign cases. Finally, we identified and report 3 cases that could
> trigger bugs. Below is the information for reproducing the bugs.

I made changes to resolve these issues.  Thanks!




Re: Report 3 UBSan integer overflow bugs found by an automatic fuzzer

2021-07-29 Thread He Jingxuan
Dear GNU make developers,

How is going with analyzing and fixing these bugs? Any feedback?

Best,
Jingxuan

On 30 Jun 2021, at 19:33, He Jingxuan 
mailto:jingxuan...@inf.ethz.ch>> wrote:

Dear GNU make developers,

We tested GNU make with an automatic tool (based on the fuzzer AFL). A number 
of test cases triggering UBSan integer overflow errors were generated. We 
manually checked those test cases and filtered out benign cases. Finally, we 
identified and report 3 cases that could trigger bugs. Below is the information 
for reproducing the bugs.

- make version: 4.3
- operating system: Ubuntu 16.04.7
- compiler: clang version 6.0.0-1ubuntu2~16.04.1 (tags/RELEASE_600/final)
- compilation commands:
   mkdir obj
   cd obj
   CC=clang CFLAGS="-g -O1 -Xclang -disable-llvm-passes -D__NO_STRING_INLINES 
-D_FORTIFY_SOURCE=0 -U__OPTIMIZE__ -fsanitize=signed-integer-overflow 
-fsanitize=unsigned-integer-overflow -fsanitize=shift -fsanitize=bounds 
-fsanitize=pointer-overflow -fsanitize=null" ../configure --disable-nls 
--disable-largefile --disable-job-server --disable-load
   make
- inputs: the input files are attached

bug 1 command: make -n -f make1.input
relevant error message: ../src/read.c:2354:64: runtime error: unsigned integer 
overflow: 27 - 18446744073709551615 cannot be represented in type 'unsigned 
long'

bug 2 command: make -n -f make2.input
relevant error message: ../src/read.c:2397:64: runtime error: unsigned integer 
overflow: 1 - 18446744073709551607 cannot be represented in type 'unsigned long'

bug 3 command: make -n -f make3.input
relevant error message: ../src/read.c:2523:56: runtime error: unsigned integer 
overflow: 1 - 18446744073709551609 cannot be represented in type 'unsigned long'

Best,
Jingxuan





Report 3 UBSan integer overflow bugs found by an automatic fuzzer

2021-06-30 Thread He Jingxuan
Dear GNU make developers,

We tested GNU make with an automatic tool (based on the fuzzer AFL). A number 
of test cases triggering UBSan integer overflow errors were generated. We 
manually checked those test cases and filtered out benign cases. Finally, we 
identified and report 3 cases that could trigger bugs. Below is the information 
for reproducing the bugs.

- make version: 4.3
- operating system: Ubuntu 16.04.7
- compiler: clang version 6.0.0-1ubuntu2~16.04.1 (tags/RELEASE_600/final)
- compilation commands:
   mkdir obj
   cd obj
   CC=clang CFLAGS="-g -O1 -Xclang -disable-llvm-passes -D__NO_STRING_INLINES 
-D_FORTIFY_SOURCE=0 -U__OPTIMIZE__ -fsanitize=signed-integer-overflow 
-fsanitize=unsigned-integer-overflow -fsanitize=shift -fsanitize=bounds 
-fsanitize=pointer-overflow -fsanitize=null" ../configure --disable-nls 
--disable-largefile --disable-job-server --disable-load
   make
- inputs: the input files are attached

bug 1 command: make -n -f make1.input
relevant error message: ../src/read.c:2354:64: runtime error: unsigned integer 
overflow: 27 - 18446744073709551615 cannot be represented in type 'unsigned 
long'

bug 2 command: make -n -f make2.input
relevant error message: ../src/read.c:2397:64: runtime error: unsigned integer 
overflow: 1 - 18446744073709551607 cannot be represented in type 'unsigned long'

bug 3 command: make -n -f make3.input
relevant error message: ../src/read.c:2523:56: runtime error: unsigned integer 
overflow: 1 - 18446744073709551609 cannot be represented in type 'unsigned long'

Best,
Jingxuan



make1.input
Description: make1.input


make2.input
Description: make2.input


make3.input
Description: make3.input