Libelektra: try out AFL

Created on 17 Feb 2015  路  14Comments  路  Source: ElektraInitiative/libelektra

Most helpful comment

Seems like we fixed all crashes with the INI plugin. AFL did a successful pass without any crash or hang.

All 14 comments

Thats exactly the tool I searched for. Thank you!

With

afl-fuzz -i testcase_dir -o findings_dir bin/kdb import user/tests

(and some *.dump files in testcase_dir) I already found a crash bug (sizes larger than file are not checked)

More interesting would be to have fuzz tests that allow all API calls (kdb shell) and mounting (mounting by spec is currently only proof-of-concept), but I am afraid those kinds of tests are more involved, because then it might be necessary to specify that only method arguments and not names should be fuzzed. Would be interesting how they test php.

Haven't looked into it at all but that was the tool I was referring too a couple of weeks ago

Hello,

manuel:

Haven't looked into it at all but that was the tool I was referring too a
couple of weeks ago

Yes, I know. Thanks again.

Over night the tool did 5 more cycles, but the crashes it found were
variations of the first one (but maybe in other code pathes).

best regards

I fixed the problem which I found in dump b817ddf9340a22b5c2ef25841d6058cec1c6e1a3 (not checking for too large allocations)

could not find any issues in testing "kdb shell" with AFL.

Another fuzzer just got released: http://blog.llvm.org/2015/04/fuzz-all-clangs.html

We successfully tried the fuzzers, I added the task to integrate it on the build server in #160

@tom-wa AFL is the fuzzer I told you about.

So if you create a bunch of INI files in the testcase_dir, and run:

afl-fuzz -i testcase_dir -o findings_dir bin/kdb import user/tests ini

it might report crashes to be fixed.

We should check the dini/ini plugin with AFL before making it the default plugin.

Seems like the INI plugins produces many crashes at the moment. I collected 202 unique crashes in https://github.com/ElektraInitiative/blobs/tree/master/configs/ini (I'll add more later.)

Seems like we fixed all crashes with the INI plugin. AFL did a successful pass without any crash or hang.

@sanssecours Maybe you can also try out AFL for the new storage plugin #2330?

Maybe you can also try out AFL for the new storage plugin #2330?

I already wrote that I will check the YAML storage plugins with AFL in the current version of my thesis. That said, it really depends on the other parts of the comparison, if I will have time to test the plugins with AFL.

Maybe checking the final YAML storage is enough. Doing these checks for all the plugins is low priority.

We should add the info if we used a fuzzer in the contract, see #666

Was this page helpful?
0 / 5 - 0 ratings

Related issues

kodebach picture kodebach  路  29Comments

sanssecours picture sanssecours  路  57Comments

markus2330 picture markus2330  路  27Comments

PhilippGackstatter picture PhilippGackstatter  路  45Comments

markus2330 picture markus2330  路  62Comments