tats/w3m

heap-buffer-overflow READ in parseURL

kcwu opened this issue · 3 comments

kcwu commented

input (xxd cases/tats-w3m-199)

00000000: 3c61 2068 7265 663d 676f 7068 6572 3a52  <a href=gopher:R
00000010: 3e                                       >

how to reproduce:

LD_PRELOAD=./AFLplusplus/utils/libdislocator/libdislocator.so LD_LIBRARY_PATH=./notgc ./w3m-tats -T text/html -dump cases/tats-w3m-199

This is detected with help of dummy libgc wrapper. See https://github.com/kcwu/fuzzing-w3m/tree/master/notgc for detail.
This is detected with help of libdislocator, an abusive allocator. See https://github.com/AFLplusplus/AFLplusplus/tree/stable/utils/libdislocator for detail.
More detail to reproduce please see http://github.com/kcwu/fuzzing-w3m

For your convenience,
gdbline:
LD_LIBRARY_PATH=./notgc gdb -ex "set environment LD_PRELOAD=./AFLplusplus/utils/libdislocator/libdislocator.so" --args ./w3m-tats -T text/html -dump cases/tats-w3m-199

found by AFL++

rkta commented
tats commented

@rkta
Could you please make a pull request for this?

tats commented

Fixed by #218