-
Notifications
You must be signed in to change notification settings - Fork 491
Reprl for Fuzzilli fuzzing #4917
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
Conversation
mschwarzl
commented
Aug 27, 2025
- Implemented a REPRL interface that can be used for fuzzing workerd with Fuzzilli
- Stdin.reprl opens up the shared memory and required pipes, waits for the file size and parses the file from Fuzzilli
- Added a new fuzzilli command to main
- Added a test for the REPRL interface
|
All contributors have signed the CLA ✍️ ✅ |
|
The generated output of |
|
I have read the CLA Document and I hereby sign the CLA |
|
recheck |
b4d4fff to
53e719f
Compare
|
recheck |
6e435f0 to
55b86b3
Compare
b7bc1cf to
01c1059
Compare
d436ec9 to
c773dd9
Compare
CodSpeed Performance ReportMerging #4917 will degrade performances by 9.25%Comparing Summary
Benchmarks breakdown
Footnotes
|
543fb2a to
39fc71c
Compare
jasnell
left a comment
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.
Once CI is green, LGTM
20ac51e to
2192f02
Compare
This commit adds comprehensive support for fuzzing workerd using Fuzzilli's REPRL (Read-Eval-Print-Reset-Loop) protocol. Key changes: - Implement REPRL protocol handler in workerd server with --stdin-reprl flag - Add fuzzilli() JavaScript API for crash testing and coverage tracking - Integrate libreprl C library for REPRL client communication - Add KJ-based test framework integration (test-reprl.c++) - Create example Fuzzilli configurations and mock services - Add immediate-crash.h utility for controlled crash testing - Fix V8 ASAN macro redefinition warnings by adding V8_USE_ADDRESS_SANITIZER - Update .bazelrc to use clang-19 directly instead of ccache wrapper The implementation allows Fuzzilli to: - Execute JavaScript code in isolated REPRL sessions - Collect sanitizer coverage feedback - Detect crashes and memory errors - Reset worker state between executions Example usage: bazel test --config=fuzzilli //src/workerd/tests:test-reprl ./workerd test fuzzilli/config.capnp --experimental --stdin-reprl