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

Continuous fuzzing of Pillow with OSS-Fuzz #5072

Closed
DavidKorczynski opened this issue Nov 30, 2020 · 16 comments
Closed

Continuous fuzzing of Pillow with OSS-Fuzz #5072

DavidKorczynski opened this issue Nov 30, 2020 · 16 comments
Labels

Comments

@DavidKorczynski
Copy link

DavidKorczynski commented Nov 30, 2020

What did you do?

Given the popularity of Pillow I was thinking that it would be nice to set up continuous fuzzing of Pillow, by way of OSS-Fuzz. In this PR: google/oss-fuzz#4754 I have done exactly that, namely created the necessary logic from an OSS-Fuzz perspective to integrate Pillow. This includes developing initial fuzzers as well as integrating into OSS-Fuzz.

Essentially, OSS-Fuzz is a free service run by Google that performs continuous fuzzing of important open source projects. Python support was recently provided and it can also fuzz native extensions, i.e. for memory corruption errors. The only expectation of integrating into OSS-Fuzz is that bugs will be fixed. This is not a "hard" requirement in that no one enforces this and the main point is if bugs are not fixed then it is a waste of resources to run the fuzzers, which we would like to avoid.

If you would like to integrate, the only thing I need is as list of email(s) that will get access to the data produced by OSS-Fuzz, such as bug reports, coverage reports and more stats. Notice the emails affiliated with the project will be public in the OSS-Fuzz repo, as they will be part of a configuration file.

@hugovk
Copy link
Member

hugovk commented Nov 30, 2020

This sounds similar to #3961 and google/oss-fuzz#2626.

But I see that was removed 7 days ago in google/oss-fuzz#4692:

It has never functioned properly. It's complex to get this working. I've never requested or received a reward for Pillow. I don't want to fix it now. Maybe another time.

@hugovk hugovk added the Testing label Nov 30, 2020
@DavidKorczynski
Copy link
Author

Oh that's interesting.

it is the same from a "continuous-fuzzing" perspective but it is different in that OSS-Fuzz now has proper support for Python (https://github.com/google/atheris).

However, does this mean you are happy to use the emails from the previous Pillow project? I can carry things forward if you are happy with that.

@hugovk
Copy link
Member

hugovk commented Nov 30, 2020

Sounds good, please use the same email.

@radarhere
Copy link
Member

google/oss-fuzz#4754 has been merged.

Is this resolved then?

@DavidKorczynski
Copy link
Author

DavidKorczynski commented Dec 12, 2020

Ah yes - apologies for forgetting to close. Thanks for your assistance!

@hugovk
Copy link
Member

hugovk commented Dec 15, 2020

I've created google/oss-fuzz#4846 to update the contact email, cc @aclark4life.

@aclark4life: There's nothing to update in this repo: we don't have the old address listed here, https://github.com/python-pillow/Pillow/blob/master/.github/SECURITY.md says to go via https://tidelift.com/security.

@wiredfool
Copy link
Member

I've gotten the reports through the forward, but I'm not able to get the reproductions, so they're basically not useful.

@DavidKorczynski
Copy link
Author

DavidKorczynski commented Dec 15, 2020

I'm not able to get the reproductions

@wiredfool could you clarify a bit? Do you mean you cannot get the inputs that trigger the crashes or do you mean that you can get the inputs but aren't able to trigger the crash using them?

@wiredfool
Copy link
Member

I mean when following links using my signed in google account, I don't have permission to access the reproductions.

@DavidKorczynski
Copy link
Author

and what email are you using to login?

@wiredfool
Copy link
Member

My google account is esoroos@gmail.com

@DavidKorczynski
Copy link
Author

The email you are using to login needs to be present in this file::
https://github.com/google/oss-fuzz/blob/master/projects/pillow/project.yaml

Either listed as primary_contact or in the auto_ccs.

This PR google/oss-fuzz#4846 updates the file linked above, so if you are using the email listed in the PR then we have to wait for the PR to be merged.

@wiredfool
Copy link
Member

Looks like adding it in the auto_ccs would be enough.

@DavidKorczynski
Copy link
Author

There you go: google/oss-fuzz#4848

Now wait until that one is merged and you will be able to see the reports!

@wiredfool
Copy link
Member

Thanks.

@DavidKorczynski
Copy link
Author

No problem!

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

No branches or pull requests

4 participants