Release 2.16.0
This is a bug fix and enhancement release. Look out for new
Blog Posts and Videos
which will cover some of these new features in much more depth in the coming days and weeks.
This release was made possible thanks to Checkmarx
who employ 3 of the Core Team to work on ZAP.
These release notes do not include all of the changes included in add-ons updated since 2.15.0.
Some of the more significant enhancements include:
Update to a Minimum of Java 17
ZAP now requires a minimum of Java 17 to run. This allows us to use more modern Java features in the ZAP codebase.
As a result of this move scripts which use the Nashorn JavaScript engine may no longer work,
this is because the engine is no longer present in Java 17.
Any scripts configured to use Nashorn will automatically be changed to use the
Graal.js JavaScript engine.
However you may still need to migrate these scripts, see the Migration Guide from Nashorn to GraalJS.
Client Spider
The Client Integration add-on is now included as standard, and provides a new
Client Spider.
The Client Spider works in a similar way to the AJAX Spider but it has access to the DOM via the ZAP Browser Extension
which means that it can find content which the AJAX Spider cannot find.
While it is still at an early stage we believe it is a more effective approach than the AJAX Spider.
We will be focussing on improving the Client Spider and the current plan is for it to supersede the AJAX Spider
as the recommended way of crawling modern web apps.
Detachable Tabs
You can now detach any of the ZAP desktop tabs so that they will appear in their own windows.
This means that you can see more than one tab in the group at the same time, and allows you to distribute those windows
across multiple monitors.
Just right click any tab to see the 'detach' option and close the tab window to return it to the main ZAP window.
Standard Policy Definitions
We now have a standard set of active scan policy definitions which we recommend for use in specific situations.
Using these definitions will just enable the most suitable active scan rules. This will speed up your active scans
and will reduce noise. Some of the standard active scan rules are really targetted at pentesters, and these can waste
developers time.
For more details see the new Scan Policies add-on.
Site Tree Export and Pruning
We now have a standard format for representing the Sites Tree in a text file:
Sites Tree Format.
This format uniquely identifies nodes in the Sites tree.
While this might not sound particularly exciting, it does actually allow you to use ZAP to perform "differential" scans,
i.e. only attacking endpoints that have changed. This means that ZAP can be used to perform really fast testing in CI/CD.
Sequence Scanning Updates
The Sequence Scanner add-on has received
significant attention. It now runs much more quickly and has full Automation Framework support.
As a result it has been promoted to Beta status.
Passive Scanner Moved into an Add-On
The passive scanner has now been moved into an add-on: Passive Scanner.
We have an ongoing plan to move as much functionality out of the core as possible, as this allows us to push out fixes and
enhancements much more quickly.
Automation Framework Enhancements
The Automation Framework has a set of new jobs:
- activeScan-config This job configures the active scanner, for custom active scans (e.g. Sequence).
- activeScan-policy This job defines an active scan policy.
- spiderClient This job allows you to run the client spider.
- exitStatus This job sets ZAP's exit code based on scan results.
- export This job allows you to export messages in HAR format or as URLs as well as exporting the Sites Tree.
- prune This job allows you to remove nodes from the Sites Tree using data from a file in the Sites Tree format.
- sequence-import This job allows you to create a sequence from an HAR file.
- sequence-activeScan This job allows you to active scan sequences.
Checkmarx Rebranding
This release is the first full release with the "ZAP by Checkmarx" branding.
Docker Hub Organisation Deprecation
We will not use the softwaresecurityproject org for 2.16.0 or following releases.
If you still use this org then please switch to zaproxy.
Dependency Updates
As usual the release includes dependency updates.
The following libraries were updated:
- Commons Codec, 1.16.1 → 1.17.1
- Commons CSV, 1.10.0 → 1.12.0
- Commons IO, 2.16.1 → 2.18.0
- Commons Lang3, 3.14.0 → 3.17.0
- Commons Logging, 1.3.1 → 1.3.4
- Flatlaf, 3.4.1 → 3.5.4
- hsqldb, 2.7.2 → 2.7.4
- jfreechart, 1.5.4 → 1.5.5
- log4j-1.2-api, 2.20.0 → 2.24.2
- log4j-api, 2.20.0 → 2.24
- log4j-core, 2.20.0 → 2.24.2
- log4j-jul, 2.20.0 → 2.24.1
- Rsyntaxtextarea, 3.4.0 → 3.5.2
Also note that the harlib dependency is no longer part of the compile classpath and that its use is deprecated.
Add-Ons
Updated Add-Ons
All of the add-ons included by default have been updated since the last full release.
Enhancements
Bug fixes
- Issue 8496 : Fix exceptions for no/empty path in path variant
- Issue 8498 : Do not use null domain in auth credentials
- Issue 8533 : Issue re-loading passive scan rules on add-on upgrade
- Issue 8546 : Prevent adding same add-on's `ResourceBundle`
- Issue 8589 : Correct label in a Structural Modifier dialogue
- Issue 8590 : Correct `StructuralNodeModifier` key check
- Issue 8631 : Concurrent access to Graal.js Proxy scripts with latest ZAP versions
- Issue 8632 : Fix EDT access on script node changes
- Issue 8635 : Concurrent access to Graal.js Input Vector scripts
- Issue 8665 : Correct data returned in poll headers field
- Issue 8707 : Fix exception when printing null to error stream
- Issue 8769 : Notify script node changes in the correct thread
- Issue 8771 : Fix OverlayIcon scaling
- Issue 8773 : Add missing scaling to some icons
See Also