Open candou1611 opened 2 years ago
There is simple code
int main(int argc, char **argv) { UNUSED_PARAMETER(argc); UNUSED_PARAMETER(argv); char buf[3]; memset(buf, 0, 3); read(0, buf, 3); if (buf[0] == 'c') { printf("hit buf0\n"); if (buf[1] == 'r') { printf("hit buf1\n"); if (buf[2] == 'a') { printf("hit buf2\n"); //test('D'); //abort(); char *buf = malloc(10); free(buf); free(buf); } } } return 0; }
aarch64-linux-gnu-gcc test.c -o test
AFL_USE_QASAN=1 ./afl-qemu-trace ./test <<< "crash"
qasan may detect a UAF AddressSanitizer, but it will hang when show ABORTING.
I've had this issue for a very long time and finally decided to debug it, it's super slow because of coredumps. Just disable them using ulimit and it will immediately exit:
ulimit -c 0
There is simple code
aarch64-linux-gnu-gcc test.c -o test
AFL_USE_QASAN=1 ./afl-qemu-trace ./test <<< "crash"
qasan may detect a UAF AddressSanitizer, but it will hang when show ABORTING.