Open FirefoxMetzger opened 2 years ago
Hey!
Is this still something you would be interested in seeing added to the project? If so, I am more than happy to contribute to Imageio's fuzzing setup to whatever degree you'd find helpful.
I was thinking:
Fuzz Tests
Documentation
To address the pain points of running fuzzers locally that you mentioned in the caveat in this issue's body:
You can find a concrete example of what I'm thinking in the GitPython project, where I recently contributed what described above: https://github.com/gitpython-developers/GitPython/tree/4e212c6e2cf7049835ef64809bec2ce30601e537/fuzzing
Yes, definitely still interested in having better fuzzing here :) If you want to work on a PR I'd be happy to review.
Great! I'll have something for review soon 🙂
Hey, sorry for the delay here. I was able to get the fuzzer working quite well locally; so well in fact that I wanted to reach out and ask how sensitive the maintainers would consider the type of bugs I've identified before posting anything publicly.
The bugs found so far all appear to be uncaught exceptions in some of the plugins housed in this repo.
They're mostly AttributeError
s, TypeError
s, and UnicadeDecodeError
s which I find are fairly typical for this sort of testing. There are also a few struct.error
s, and at least one OverflowError
(raised by the Python interpreter, not an overflow in a native C extension which this library does not have.) The latter two are less typical in my limited experience, but still do not seem much different than the first three mentioned as far as threat vectors go.
I'd imagine some of these could represent a DoS vector under some circumstances, while others simply point to a place where an explicitly raised exception could add an improved error message.
I've searched the issues on this repo and see many similar issues have been reported publicly without any security concerns, but out of an abundance of caution, I wanted to reach out and ask how the maintainers of this project would like to proceed before I disclose anything.
How would you like me to proceeded regarding the exceptions I've identified? Some possible options include:
Thanks! I'm looking forward to your thoughts!
ImageIO has a fuzzer (for fuzz-testing) which OSS-Fuzz is running to discover and report bugs and crashes. A caveat for this is that it uses
atheris
for fuzzing, which currently only works on Linux. Because of that local reproducibility of found bugs is currently limited to Linux systems. In either case, I think it would be worthwhile to make better use of this offer.The purpose of this issue is to act as a reminder that we still have to write more extensive tests for the fuzzer.