Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Crashes saved aren't really crashes #47

Open
Techno-Fox opened this issue Dec 6, 2019 · 2 comments
Open

Crashes saved aren't really crashes #47

Techno-Fox opened this issue Dec 6, 2019 · 2 comments

Comments

@Techno-Fox
Copy link

Hello. It's me again. So after letting pdfcrack fuzz. I wanted to analyze the crashes. However as it turns out. They weren't even crashes. When I looked pdfcrack gives an error about them not being save files (pdfcrack has save file feature I used to make go by faster). Sure an error, but no a crash.

It also let this fuzz overnight. It took up over 200GB by logging manul though to be crashes.

I'll upload the file so you can test this.

pdfcrack_fuzz.zip

Recreate Issue :

Just run the command
manul.py -i in2 -o out -n 3 -c pdfcrack_manul.config "pdfcrack_scource/pdfcrack -l @@"

The pdfcrack is already instrumented. When you have fuzzed as much as you want. Then you can run. pdfcrack_source/pdfcrack -l <a .sav in out>, and it should tell you that this is not a save or is corrupted, not crash.

@Techno-Fox
Copy link
Author

Just to make sure. I tested this with AFL. Went throught the crashes using afl-collect (part of afl-utils), and found a heap error (which is exploitable).

afl-collect 1.33a by rc0r hlt99@blinkenshell.org # @_rc0r
Crash sample collection and processing utility for afl-fuzz.

[] Going to collect crash samples from '/home/kittytechno/fuzzing/pdfcrack/out_afl'.
[!] Table 'Data' not found in existing database!
[
] Creating new table 'Data' in database '/home/kittytechno/fuzzing/pdfcrack/crashes.db' to store data!
[] Found 1 fuzzers, collecting crash samples.
[
] Successfully indexed 6 crash samples.
[] Saving invalid sample info to database.
[!] Removed 0 invalid crash samples from index.
[!] Removed 0 timed out samples from index.
[
] Generating intermediate gdb+exploitable script '/home/kittytechno/fuzzing/pdfcrack/collection_dir/gdb_script.0' for 1 samples...
[] Generating intermediate gdb+exploitable script '/home/kittytechno/fuzzing/pdfcrack/collection_dir/gdb_script.1' for 1 samples...
[
] Generating intermediate gdb+exploitable script '/home/kittytechno/fuzzing/pdfcrack/collection_dir/gdb_script.2' for 1 samples...
[] Generating intermediate gdb+exploitable script '/home/kittytechno/fuzzing/pdfcrack/collection_dir/gdb_script.3' for 1 samples...
[
] Generating intermediate gdb+exploitable script '/home/kittytechno/fuzzing/pdfcrack/collection_dir/gdb_script.4' for 1 samples...
[] Generating intermediate gdb+exploitable script '/home/kittytechno/fuzzing/pdfcrack/collection_dir/gdb_script.5' for 1 samples...
[
] Generating intermediate gdb+exploitable script '/home/kittytechno/fuzzing/pdfcrack/collection_dir/gdb_script.6' for 0 samples...
[] Generating intermediate gdb+exploitable script '/home/kittytechno/fuzzing/pdfcrack/collection_dir/gdb_script.7' for 0 samples...
[
] Executing gdb+exploitable script 'gdb_script.0'...
[] Executing gdb+exploitable script 'gdb_script.1'...
[
] Executing gdb+exploitable script 'gdb_script.2'...
[] Executing gdb+exploitable script 'gdb_script.3'...
[
] Executing gdb+exploitable script 'gdb_script.4'...
[] Executing gdb+exploitable script 'gdb_script.5'...
[
] Executing gdb+exploitable script 'gdb_script.6'...
[*] Executing gdb+exploitable script 'gdb_script.7'...
*** GDB+EXPLOITABLE SCRIPT OUTPUT ***
[00001] out_afl:id:000000,sig:11,src:000001,op:flip1,pos:119............: PROBABLY_EXPLOITABLE [DestAvNearNull (15/22)]
[00002] out_afl:id:000001,sig:11,src:000001,op:flip1,pos:391............: PROBABLY_EXPLOITABLE [SegFaultOnPcNearNull (12/22)]
[00003] out_afl:id:000002,sig:06,src:000029+000005,op:splice,rep:2......: EXPLOITABLE [HeapError (10/22)]
[00004] out_afl:id:000003,sig:11,src:000029+000048,op:splice,rep:4......: PROBABLY_EXPLOITABLE [SegFaultOnPcNearNull (12/22)]
[00005] out_afl:id:000004,sig:11,src:000029+000041,op:splice,rep:2......: PROBABLY_EXPLOITABLE [SegFaultOnPcNearNull (12/22)]
[00006] out_afl:id:000005,sig:11,src:000036+000021,op:splice,rep:16.....: PROBABLY_EXPLOITABLE [DestAvNearNull (15/22)]


[] Saving sample classification info to database.
[!] Removed 3 duplicate samples from index. Will continue with 3 remaining samples.
[!] Removed 0 uninteresting crash samples from index.
[
] Generating final gdb+exploitable script '/home/kittytechno/fuzzing/pdfcrack/collection_dir/gdb_script' for 3 samples...
[*] Copying 3 samples into output directory...

@Techno-Fox
Copy link
Author

Any reports?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant