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

Support attacking basic structural binary formats (JUMBF, CBOR) used in c2pa manifests #37

Open
samuelwenker opened this issue Jul 17, 2023 · 1 comment

Comments

@samuelwenker
Copy link

Both JUMBF and CBOR have numerous binary formatting requirements that could result in buffer overruns if malicious values are set and a memory-unsafe parser is used without appropriate checks.

A couple very simple examples:

  • JUMBF field indicating that its size is longer than the remainder of the entire manifest
  • CBOR array length longer than the number of items in the actual array

As such, attack manifests that have malicious values for these types of things should be included in any security test suite.

@puhley
Copy link
Collaborator

puhley commented Aug 11, 2023

I currently have a simple fuzzer written for the c2pa-rs project. I haven't published it yet because I am still conducting some experiments. Although, that fuzzer is also specific to the c2pa-rs SDK. Since the c2pa-rs library won't be used by everyone within the c2pa community, there is also a need for a more generalized approach to fuzzing C2PA implementations.

My current plan is to publish guidance and some supporting files within this project for taking an existing open-source fuzzer and applying it to generic C2PA implementations. This would have the following advantages:

  • Existing open-source fuzzers are robust and there is no need to re-invent the wheel.
  • The command line for this project would become too complicated if we were to add more command line flags for a home-grown fuzzer
  • The guidance and sample files could be applied by anyone within the C2PA community regardless of whether they use c2pa-rs.

Although, I am open to discussion if you have additional ideas on how to support people seeking to do binary fuzzing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants