Paul Krill
Editor at Large

Google’s OSS-Fuzz extends fuzzing to Java apps

news
Mar 12, 20212 mins
App TestingApplication SecurityJava

Google’s open source fuzz testing project draws on Code Intelligence’s Jazzer to add support for Java and other JVM languages.

crash test dummies
Credit: Getty Images

Google’s open source fuzz-testing service, OSS-Fuzz, now supports applications written in Java and JVM-based languages. The capability was announced on March 10.

OSS-Fuzz provides continuous fuzzing for open source software. A technique for finding programming errors and security vulnerabilities in software, fuzzing involves sending a stream of semi-random and invalid input to a program. Fuzzing code written in memory-safe languages such as JVM languages can find bugs that cause programs to crash or behave incorrectly.

Google enabled fuzzing for Java and the JVM by integrating OSS-Fuzz with the Jazzer fuzzer from Code Intelligence. Jazzer enables users to fuzz code written in JVM-based languages via the LLVM project’s libFuzzer, an in-process, coverage-guided fuzzing engine, similar to how this has been done for C/C++ code. Languages supported by Jazzer include Java, Clojure, Kotlin, and Scala. Code coverage feedback is provided from JVM bytecode to libFuzzer, with Jazzer supporting libFuzzer features including:

  • FuzzedDataProvider, for fuzzing code that does not accept an array of bytes.
  • Evaluation of code coverage based on 8-bit edge counters.
  • Minimization of crashing inputs.
  • Value profiles.

Google has provided documentation on adding open source projects written in JVM languages to OSS-Fuzz. Plans call for Jazzer to support all lIbFuzzer features eventually. Jazzer also can provide coverage feedback from native code executed through the Java Native Interface. This can uncover memory corruption vulnerabilities in memory-unsafe native code. OSS-Fuzz also lists languages such as Go, Python, C/C++, and Rust as supported languages.

Paul Krill

Paul Krill is editor at large at InfoWorld. Paul has been covering computer technology as a news and feature reporter for more than 35 years, including 30 years at InfoWorld. He has specialized in coverage of software development tools and technologies since the 1990s, and he continues to lead InfoWorld’s news coverage of software development platforms including Java and .NET and programming languages including JavaScript, TypeScript, PHP, Python, Ruby, Rust, and Go. Long trusted as a reporter who prioritizes accuracy, integrity, and the best interests of readers, Paul is sought out by technology companies and industry organizations who want to reach InfoWorld’s audience of software developers and other information technology professionals. Paul has won a “Best Technology News Coverage” award from IDG.

More from this author