-
Notifications
You must be signed in to change notification settings - Fork 24
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
Support crash triaging for jsfuzz #122
Comments
@SweetVishnya Maybe since you're already supporting Jazzer, how about adding support for Jazzer.js as well. It's currently also still based on libfuzzer and I could imagine adding support should be doable with the foundation you already have. |
When coding support for JS stacktrace parsing, I faced some interesting situation. If we want to compare two stacktrace entries, according to the logic of CASR we should consider the filenames (with locations in files), module names and addresses equality. In JS stacktraces module names and addresses are not presented, so the comparison is made based on filenames (with locations in files) equality. But if at least one of the filenames is empty, then the entries are considered equal. It is a strange situation but as I could search it is possible that some stacktrace entries can have empty filenames, like this:
The logic of CASR now doesn't suppose to take function names into account. |
Maybe it is an offset from the beginning of the function? Is it possible to check? If it is so, we don't have function name. In this case function is a file path in our terminology. |
In this example it is exactly an offset from the beginning of the file, not from the beginning of the function. These functions are located in the same file, one after another. It seems to me that this is not the situation you describe. |
Maybe, there is a way of printing more meaningful stack traces: https://stackoverflow.com/a/635852 |
As I found out, both Jazzer-js and jsfuzz print stacktraces in V8 format. According to this format, the location in a stacktrace entry should contain some filename (except for native and unknown locations). Maybe we can assume that the filename should not be empty. |
Good news! I think we can relay on this and assume that filepath is not empty. Please, put some comment with this info in the code. |
I don't know a whole lot about
As we're building custom bug detectors into Jazzer.js the format can slightly differ for the first line where we have the
All custom bug detectors are WIP and are still not finalized. If you guys have input on this to make automation easier, dropping an issue in the repo sounds like a good idea! |
@0xricksanchez Thanks for the detailed explanation! As for strings related to the stacktrace entries, I think we can rely on V8 docs as such strings in Jazzer-js totally correspond to this format. |
The current formatting is defined here. The basic shape roughly corresponds to:
|
@0xricksanchez Support for crash triaging via casr-libfuzzer for both Jazzer.js and jsfuzz has just been added to CASR! |
It would be nice to support Java Script fuzzer called jsfuzz in casr-libfuzzer similar to jazzer.
The text was updated successfully, but these errors were encountered: