Program Environment Fuzzing
Ruijie Meng, Gregory J. Duck, Abhik Roychoudhury

TL;DR
This paper introduces EnvFuzz, a greybox fuzzing extension that captures and mutates program environment interactions to discover security vulnerabilities without manual environment modeling.
Contribution
It presents a novel environment mutation approach for fuzzing that records and replays environmental interactions, enabling automatic discovery of environment-induced bugs.
Findings
Found 33 new bugs in real-world applications
Discovered multiple security vulnerabilities and assigned 16 CVEs
Demonstrated effectiveness of environment mutation in bug detection
Abstract
Computer programs are not executed in isolation, but rather interact with the execution environment which drives the program behaviors. Software validation methods thus need to capture the effect of possibly complex environmental interactions. Program environments may come from files, databases, configurations, network sockets, human-user interactions, and more. Conventional approaches for environment capture in symbolic execution and model checking employ environment modeling, which involves manual effort. In this paper, we take a different approach based on an extension of greybox fuzzing. Given a program, we first record all observed environmental interactions at the kernel/user-mode boundary in the form of system calls. Next, we replay the program under the original recorded interactions, but this time with selective mutations applied, in order to get the effect of different program…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsTeaching and Learning Programming
