-
Notifications
You must be signed in to change notification settings - Fork 2k
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
Initial fuzz integration #2022
Initial fuzz integration #2022
Conversation
99dd762
to
8d6066d
Compare
Hi @jaylinski would be interested in fuzzing Handlebars.js at oss-fuzz ? If you are interested, oss-fuzz requires a email(s) address from your end. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks, looks good!
Before merging, I'm thinking about running your fuzz-tests in a GitHub action for about 2 minutes. This ensures that the script won't get broken and new (shallow) bugs will be detected before merging to master
.
What do think about it?
If your aim for this is to get some initial finding, I have already tested it by running for sometime at my local machine , and have not found anything as of now. and to check whether this script is broken or not i have tested it against oss-fuzz CI at google/oss-fuzz#11281, you can see the all checks have passed there. On side note OSS-Fuzz offers CIFuzz, a GitHub action/CI job that runs your fuzz targets on pull requests(for projects added to oss-fuzz). Edit: |
@jaylinski friendly ping :) |
I'd still like to run the fuzzing on GitHub CI just to verify/document the script. Can you add a pipeline script? (If not, I also can add it.) |
Sounds good, I'll add it :) |
8d6066d
to
d8b1672
Compare
- Adds initial fuzz_target for Handlebars.compile() - Adds Jazzer.js as dev-dependency - Adds fuzzing on Github CI
d8b1672
to
f1fffb4
Compare
Hi @jaylinski friendly ping :) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for your work so far!
Another thing I just thought about: I'm curious if this fuzzing setup would actually find previously fixed vulns (https://snyk.io/advisor/npm-package/handlebars).
In case of a code-injection vulnerability, I guess the fuzzer would have to generate a throw
-statement in order to trigger the try-catch-block?
Fuzzing can be effective in finding vulnerabilities, including those that were previously fixed. However, it depends on the specific techniques used in the fuzzer and the nature of the vulnerabilities. For code injection vulnerabilities, the fuzzer might try to generate inputs that manipulate the program's control flow. In the case of a try-catch block, attempting to trigger it with a crafted throw statement could be one approach to uncovering code injection issues. Keep in mind that the success of finding such vulnerabilities also relies on the fuzzer's ability to explore different code paths and exercise edge cases. |
All checks are green :) |
Hi @jaylinski Can we please get this merged? |
ping :) |
Description
This pr attempts to adds coverage guided fuzzing powered by jazzer.js with the aim that
handlebars.js
will eventually get integrated into oss-fuzz for continuous fuzzing. closes #1999cc @jaylinski
Generally we like to see pull requests that
4.x
-branch contains the latest version. Please target that branch in the PR.