The 0.9 release contains enough new content for two - but you get it all in one. First of all, there is now experimental support for the analysis of Linux kernel modules (LKMs). Checks are configured in a separate config file lkm_config.json
and currently only a subset of all checks is supported. In addition, we introduced a whole new check for CWE252 (Unchecked Return Value), which works for user-space programs and LKMs.
On the technical site, we added an abstraction layer for taint analysis on top of the existing abstractions for dataflow analysis. All checks that are based on a taint analysis were adapted and should be a bit more precise (and much easier to read) now. Furthermore, to understand the performance characteristics of our code, and to catch regressions, we added a microbenchmarking infrastructure.
Finally, we fixed some bugs in our IR generation, IR optimization, and processing of Ghidra Pcode.
Thanks everyone!