Skip to content

v4.1.0

Latest
Compare
Choose a tag to compare
@ebraunstein ebraunstein released this 17 Sep 17:29

New Features:

  • New output modules will log all storage metadata to the console (LoggerMetadataOutput) or to a more easily machine readable CSV file (CSVMetadataOutput)
    • This feature includes a refactoring of StatsOutput that moves the computation of storage-based output statistics to a new ComputeStats module. ComputStats writes each of these metrics to storage metadata.
    • Note: the StatsOutput now relies on ComputeStats, so existing configuration files may need to be updated
  • New data types in StorageModule
    • unsigned integer
      • VMF Core Modules have been updated to use unsigned values when appropriate.
      • Note: Existing modules may need to be updated, if they rely on integer data that is output from Core Modules
    • temporary buffer
      • This provides for better memory utilization by VMF, because large buffers that are only needed during the current fuzzing loop can be cleared
      • The AFL_TRACE_BITS and CMPLOG_MAP_BITS data fields are now of type temporary buffer
  • VMF Controller modules will now keep all seed test cases in storage
    • This is a behavioral change from VMF 4.0.0 and below. Use the controller.keepAllSeeds parameter to configure VMF with the old behavior.
  • A new helper class, ModuleTestHelper, can be used to easily unit test modules
    • See GAInputGenTest and AFLForkserverExecutorTest for example usage
  • VmfRand now supports a configurable fixed seed, to enable control randomness for regression testing

Updates and Bug Fixes:

  • Our example configuration files have been refactored for better ease of reuse
  • Batched loading of large corpus updates for distributed fuzzing, for improved performance
    • Command handling for distributed fuzzing is now accomplished via a new helper class, CDMSCommandAndCorpusHandler
  • Module templates are now available as a starting point for new module developers (see vmf/src/samples)
  • A new ControllerModulePattern class can be used as a starting point for module developers writing controller modules
    • All VMF Core Modules controllers have been updated to use this base class
  • Map-size autodetection fix to allow this feature to work with SUTs that capture SIGINT
  • Minor bug fixes:
    • AFLFavoredFeedback had incorrect data registration with storage, which has now been corrected
    • Corrected memory errors in unit tests

Note: CDMS has not changed since VMF 3.2, so no upgrade is required for VMF 4.1.0
Release binaries SHA256:

  • CDMS.war: 052b61544d9d2c084f2ff3632d2564eb3358cbff95e7aa441c2c9ddf47a00650
  • emptycdms.db: 38788934bef348e0ce77c7a03145c1e969c4092b3505b1f7e98e5c3f8e099813