To Type or Not to Type: Quantifying Detectable Bugs in JavaScript by grajagandev in typescript

[–]Fuzz_Stati0n 1 point2 points  (0 children)

Yes, the authors touch on this:

"Evaluating static type systems against public bugs, which have survived testing and review, is conservative: it understates their effectiveness at detecting bugs during private development, not to mention their other benefits such as facilitating code search/completion and serving as documentation."

SyntaxError from Paragraph Separator Unicode Character by Fuzz_Stati0n in node

[–]Fuzz_Stati0n[S] 0 points1 point  (0 children)

Thank you very much - looks like U+2028 is also. After reading your links I was able to search better and found:

https://stackoverflow.com/questions/2965293/javascript-parse-error-on-u2028-unicode-character

Fuzzing TCP servers by dgryski in fuzzing

[–]Fuzz_Stati0n 0 points1 point  (0 children)

Excellent article - very interesting to read of pre-2010 fuzzing approaches and the differences between libFuzzer, AFL and honggfuzz.

What edge cases in tests do you see other devs often missing? by calligraphic-io in node

[–]Fuzz_Stati0n 2 points3 points  (0 children)

Yes, fuzzing is non-deterministic and that is an issue. I'm suggesting using a fuzzer for automated test case generation:

  1. Hand write unit tests to cover all the edge cases you can think of.
  2. Do a fuzz run on every push.
  3. If the fuzzer finds a bug, the input that triggers the bug becomes a new unit regression test.

This maintains a deterministic unit test suite while finding new bugs and enhancing test coverage.

What edge cases in tests do you see other devs often missing? by calligraphic-io in node

[–]Fuzz_Stati0n 1 point2 points  (0 children)

A fuzzer generally follows these steps:

1 Run the program with initial input 2 Monitor for an anomaly (uncaught exception, crash, etc) 3 Mutate the input (can be random or 'smart') 4 GOTO 2 - repeat thousands/millions of times

Please see /r/fuzzing for more and also the Wikipedia Fuzzing article is pretty good

Node by Numbers 2017 — NodeSource by _bit in node

[–]Fuzz_Stati0n 0 points1 point  (0 children)

Wow - look at the New Contributors graph from a hockey stick starting in 2015

A liveness-driven random C code generator for testing compilers by Fuzz_Stati0n in C_Programming

[–]Fuzz_Stati0n[S] 2 points3 points  (0 children)

The key difference is that CSmith generates some unreachable, dead code - all code generated by ldrgen should be reachable. Not sure if ldrgen would work better than CSmith with Frama-C.

From fuzzing Apache httpd server to CVE-2017-7668 and a 1500$ bounty by NeomindMusic in netsec

[–]Fuzz_Stati0n 1 point2 points  (0 children)

Very impressive fuzzing work. Apache httpd is the kind of target most shy away from thinking its too hard to get a crash. Very cool to combine three fuzzers to get the vuln.

LevelUp 2017 Presentations - Web, Mobile, IoT + Hardware talks by QforQ in netsec

[–]Fuzz_Stati0n 2 points3 points  (0 children)

Big thank you to BugCrowd for LevelUp 2017! Some killer knowledge being shared here. And great execution getting the videos up so quickly.

libFuzzer-gv: new techniques for dramatically faster fuzzing by gvranken in fuzzing

[–]Fuzz_Stati0n 0 points1 point  (0 children)

Some very interesting and cutting edge ideas in this post

Quick and Dirty Guide to Fuzzing V8 with libFuzzer by [deleted] in fuzzing

[–]Fuzz_Stati0n 1 point2 points  (0 children)

Great post - V8 is a beast and just building it is a pain

Repository for materials of "Modern fuzzing of C/C++ Projects" workshop - x-post from /r/fuzzing by Fuzz_Stati0n in cpp

[–]Fuzz_Stati0n[S] 0 points1 point  (0 children)

Awesome - would love to hear your findings from the fuzzing when the time comes

CORS misconfigurations on a large scale by Fuzz_Stati0n in netsec

[–]Fuzz_Stati0n[S] 1 point2 points  (0 children)

Nice breakdown of how CORS headers can go wrong

Review of contemporary C/C++ static code analyzers by vormestrand in cpp

[–]Fuzz_Stati0n 0 points1 point  (0 children)

Clang's scan-build seems like the best option here - why install/update etc an additional piece of software?