Skip to content
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

Update wasmi differential fuzzing #4818

Closed
Robbepop opened this issue Aug 30, 2022 · 3 comments · Fixed by #5104
Closed

Update wasmi differential fuzzing #4818

Robbepop opened this issue Aug 30, 2022 · 3 comments · Fixed by #5104
Labels
fuzzing Issues related to our fuzzing infrastructure

Comments

@Robbepop
Copy link
Contributor

Wasmtime has implemented differential fuzzing against the wasmi interpreter. However, the currently supported wasmi version is very old and outdated.

Benefits

The wasmi interpreter has since evolved quite a lot and could be helpful to more extensively fuzzy test against Wasmtime's feature set.

  • Fuzz test against modern wasmi versions instead of ancient one.
  • Being able to fuzz test against some Wasm proposals whereas the old wasmi only supported Wasm MVP.
  • Higher fuzz testing throughput since the newer wasmi versions are a lot faster.
  • New wasmi versions offer an API similar to the API of Wasmtime, therefore fuzz testing code should become slightly cleaner.

Downsides

The biggest downside is that the newer wasmi versions are not as battle tested as the old ones and therefore we might risk some false positives on the wasmi side which could introduce noise.

Implementation

I would open a PR myself if this issue is accepted. Shouldn't be too hard to update.

Alternatives

Stay on the current old wasmi version since it is quite stable and battle tested.

@alexcrichton
Copy link
Member

Updating would be great! If you'd like to send a PR I'd be happy to review. If you've got ideas about how to improve the differential fuzzing interface feel free to throw those in as well!

@alexcrichton alexcrichton added the fuzzing Issues related to our fuzzing infrastructure label Aug 30, 2022
@github-actions
Copy link

Subscribe to Label Action

cc @fitzgen

This issue or pull request has been labeled: "fuzzing"

Thus the following users have been cc'd because of the following labels:

  • fitzgen: fuzzing

To subscribe or unsubscribe from this label, edit the .github/subscribe-to-label.json configuration file.

Learn more.

@Robbepop
Copy link
Contributor Author

Robbepop commented Aug 30, 2022

Updating would be great! If you'd like to send a PR I'd be happy to review. If you've got ideas about how to improve the differential fuzzing interface feel free to throw those in as well!

Cool, I will come up with a PR in the next days. I have not yet taken an in-depth look at the Wasmtime fuzzing interface but will do when I am working on it and maybe come up with improvements. :)

alexcrichton added a commit to alexcrichton/wasmtime that referenced this issue Oct 24, 2022
alexcrichton added a commit to alexcrichton/wasmtime that referenced this issue Oct 24, 2022
alexcrichton added a commit that referenced this issue Oct 24, 2022
* Update `wasmi` used in differential fuzzing

Closes #4818
Closes #5102

* Add audits
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
fuzzing Issues related to our fuzzing infrastructure
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants