<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>
  Release 2.4.0
</title>
</head>
<body bgcolor="#ffffff">
<h1>Release 2.4.0</h1>
<p>
The following changes were made in this release:
</p>

<h2>Significant changes:</h2>

<h3>Attack mode</h3>

A new 'ATTACK' <a href="../start/concepts/modes.html">Mode</a> has been added - new nodes that are in <a href="../start/concepts/scope.html">Scope</a> are 
<a href="../start/concepts/ascan.html">actively scanned</a> as soon as they are discovered.

<h3>Advanced fuzzing</h3>

A completely new fuzzing dialog has been introduced that allows multiple injection points to be attacked at the same time.<br> 
This supports new attack payloads including the option to use scripts for generating the payloads as well as pre and post attack manipulation and analysis.

<h3>Scan dialogs with advanced options</h3>

New <a href="../ui/dialogs/advascan.html">Active Scan</a>, <a href="../ui/dialogs/spider.html">Spider</a> and AJAX Spider dialogs have replaced
the increasing number of right click 'Attack' options.<br>
These provide easy access to all of the most common options and optionally a wide range of advanced options. 

<h3>Scan Policies</h3>

A new <a href="../ui/dialogs/scanpolicymgr.html">Scan Policy Manager dialog</a> allows you to create as many 
<a href="../start/concepts/scanpolicy.html">Scan Policies</a> as you need.<br>
Scan policies define exactly which rules are run as part of an <a href="../start/concepts/ascan.html">Active Scan</a>.<br>
They also define how these rules run influencing how many requests are made and how likely potential issues are to be flagged.<br>

<h3>Unused tabs hidden</h3>

By default only the essential tabs are now shown when ZAP starts up.<br>
The remaining tabs are revealed when they are used (e.g. for the spider and active scanner) or when you display them via the 
special tab on the far right of each window with the green '+' icon. This special tab disappears if there are no hidden tabs.<br>
Tabs can be closed via a small 'x' icon which is shown when the tab is selected.<br>
Tabs can also be 'pinned' using a small 'pin' icon that is also shown when the tab is selected - pinned tabs will be shown
when ZAP next starts up. 

<h3>Enablers for Sequence scanning add-on</h3>

A new optional 'alpha' quality add-on adds the ability to scan 'sequences' of web pages, in other words pages that must be visited
in a strict order in order to work correctly. 

<h3>Enablers for access control testing add-on</h3>

A new optional 'alpha' quality add-on adds the ability to automate many aspects of access control testing. 

<h3>Note for API Users</h3>
Please be aware that the Plugin ID for the External Redirect scanner has changed from 30000 to 20019.

<h2>Full list of changes:</h2>
<ul>
<li>Issue 117 : Enhancement: Compare crawling sessions for authentication issues</li>
<li>Issue 234 : Support for fuzzing multiple parts</li>
<li>Issue 329 : Enhancement: Add sitemap.xml support</li>
<li>Issue 389 : Enable technology scope for scanners</li>
<li>Issue 414 : API: Support scripts</li>
<li>Issue 445 : SSLContextManager.isProviderAvailable() returns true as default</li>
<li>Issue 557 : SQL injection false negatives</li>
<li>Issue 642 : Output tab needs timestamps</li>
<li>Issue 653 : Handle updates better on Kali Linux</li>
<li>Issue 704 : ZAP Error: handshake alert: unrecognized_name</li>
<li>Issue 722 : ZAP UI doesnt handle multiple active scans well</li>
<li>Issue 883 : Support multiple scans in the API</li>
<li>Issue 949 : Spider (site) does not follow hyperlinks in JSON documents</li>
<li>Issue 959 : add-on updater might ignore outbound proxy changes</li>
<li>Issue 984 : Enhance ascan API to allow method to be specified</li>
<li>Issue 990 : Allow to delete alerts through the API</li>
<li>Issue 1151 : Active Scan in Scope finishes before scanning all messages in scope if multiple domains available</li>
<li>Issue 1154 : Tool tip text "Show tab names and tab icons"  IdealFirstBug</li>
<li>Issue 1175 : Support a Contexts tree</li>
<li>Issue 1176 : Spider advanced scan dialog</li>
<li>Issue 1180 : Proxy corrupts URL when there are multiple question marks</li>
<li>Issue 1184 : Improve support for IBM JDK</li>
<li>Issue 1207 : AScan API - Change the "scanners" view to include the dependencies</li>
<li>Issue 1208 : Search classes/resources in add-ons declared as dependencies</li>
<li>Issue 1209 : Additional Reliability Values/Options &amp; Rename Reliability to Confidence in UI</li>
<li>Issue 1214 : Sorting in Scan Policy Dialogs  Usability</li>
<li>Issue 1215 : Alert Tree Ordering/Sorting Issue  Usability</li>
<li>Issue 1216 : Typo in scripts tab</li>
<li>Issue 1217 : Table format does not display information when charset is present in Content-Type header</li>
<li>Issue 1224 : Display Quality/Status in Scan Policy Dialogs  Usability</li>
<li>Issue 1226 : Active scanner excluded parameter's regexes not validated</li>
<li>Issue 1227 : Active scanner sends GET requests with content in request body</li>
<li>Issue 1238 : NullPointerException if an active scanner raises an alert with null attack</li>
<li>Issue 1239 : Allow extending the Spider from Extensions</li>
<li>Issue 1241 : Active scanner might not report finished state when using host scanners</li>
<li>Issue 1242 : Active scanner might use outdated policy settings</li>
<li>Issue 1243 : NullPointerException if a script type does not have core bundled script templates</li>
<li>Issue 1244 : Scripts Active Scanner should be category Misc not Injection  Usability</li>
<li>Issue 1252 : Connection Exception during shutdown while running scans through the API</li>
<li>Issue 1256 : Revisit missing X-Frame-Options scanner level</li>
<li>Issue 1257 : Create a passive rule which detects big redirects</li>
<li>Issue 1261 : NPE on "Plug-n-Hack Configuration" update from market place</li>
<li>Issue 1262 : Address "Passive Rules - Risk - Reliability" [User controllable HTML element attribute (potential XSS), and Timestamp Disclosure - Unix]</li>
<li>Issue 1263 : Generate Report Clobbers Existing Files Without Prompting</li>
<li>Issue 1264 : Manual authentication - Cookie mismatch due to wrong handling of domain and path</li>
<li>Issue 1265 : Context import and export</li>
<li>Issue 1272 : ZAP API: Core.MessagesHAR() fails if a HTTP Request contains invalid Cookie header(s)</li>
<li>Issue 1274 : ZAP Error [javax.net.ssl.SSLException]: Unsupported record version SSLv2Hello</li>
<li>Issue 1275 : SpiderODataAtomParser must return true from "parseResource"</li>
<li>Issue 1278 : Safe menu items not available in protected and safe modes</li>
<li>Issue 1279 : Active scanner excluded parameters not working when "Where" is "Any"</li>
<li>Issue 1280 : API shortcuts not removed when the ApiImplementor is removed</li>
<li>Issue 1281 : QuickStart - Allow to generate the report when the view is initialised</li>
<li>Issue 1282 : Extension#stop() is never called before destroy()</li>
<li>Issue 1283 : SQLDataException: data exception: string data, right truncation while writing an alert to DB</li>
<li>Issue 1286 : Fuzzer seems to be slow</li>
<li>Issue 1290 : "Port Scan host" menu item enabled even if a port scan is already in progress</li>
<li>Issue 1291 : 407 Proxy Authentication Required while active scanning</li>
<li>Issue 1292 : NullPointerException while attempting to remove an unregistered ManualRequestEditorDialog</li>
<li>Issue 1294 : Trivial_UI_Issue: Word - 'will be' appears twice under 'Session Properties' prompt.</li>
<li>Issue 1295 : Enhancement Request - New Active Scan Rule to Check HTTP Access to HTTPS Content</li>
<li>Issue 1300 : Add-ons show incorrect language when English is selected on non English locale</li>
<li>Issue 1301 : AbstractPanel leak through TabbedPanel2</li>
<li>Issue 1302 : Context menu item action might not get executed</li>
<li>Issue 1303 : HttpPanel[SyntaxHighlight]TextArea leak through HighlighterManager</li>
<li>Issue 1304 : ZapMenuItem leak through ExtensionKeyboard</li>
<li>Issue 1305 : Outgoing proxy is disabled when updating from old versions</li>
<li>Issue 1307 : Ant OS X build of zip gets spaces in file name confused</li>
<li>Issue 1308 : ZAP icns resolution too low</li>
<li>Issue 1309 : NullPointerExceptions during a failed uninstallation of an add-on</li>
<li>Issue 1310 : Allow to set history types as temporary</li>
<li>Issue 1311 : Differentiate temporary internal messages from temporary scanner messages</li>
<li>Issue 1312 : Misleading error message when unable to bind the local proxy to specified address</li>
<li>Issue 1319 : Add API support for configuring a Context's authorization detection</li>
<li>Issue 1322 : Remove deprecated Auth API</li>
<li>Issue 1324 : Include add-on api calls in the generated apis</li>
<li>Issue 1325 : Option to delete contexts</li>
<li>Issue 1326 : Move Ajax Spider Extension from Beta to Release status</li>
<li>Issue 1333 : ExtensionAntiCSRF ConcurrentModificationException</li>
<li>Issue 1334 : ZAP does not handle API requests on reused connections leading to UnknownHostException: www.zap.com</li>
<li>Issue 1335 : NullPointerException while selecting a node in the "Alerts" tab after excluding sites from proxy</li>
<li>Issue 1339 : Introduce a simple event bus</li>
<li>Issue 1343 : XContentTypeOptionsScanner Internationalization  Usability</li>
<li>Issue 1345 : Support Attack mode</li>
<li>Issue 1346 : Breaking gziped responses fails in the browser</li>
<li>Issue 1348 : Java client api Ant tasks dont wait</li>
<li>Issue 1353 : Simpler break option</li>
<li>Issue 1355 : Html report generation through the API</li>
<li>Issue 1356 : Fix CacheControlScanner Typos</li>
<li>Issue 1357 : Hide unused tabs</li>
<li>Issue 1359 : Reinstate splash screen</li>
<li>Issue 1360 : New add-on - Tips and Tricks</li>
<li>Issue 1361 : No data appears on 'Spider' and 'Active Scan' panel while spidering or scanning by API</li>
<li>Issue 1362 : Being allowed to add duplicated Anti-CSRF tokens only by API</li>
<li>Issue 1363 : Missing API to get contextId</li>
<li>Issue 1367 : Can't detect "Xpath Injection" on a certain environment.</li>
<li>Issue 1377 : "Source Code Disclosure - SVN" is missing regex escape</li>
<li>Issue 1378 : Revamp active scan panel</li>
<li>Issue 1379 : Not all extension's listeners are hooked during add-on installation</li>
<li>Issue 1381 : Cleanly close breakpoint Add/Edit dialog on Cancel</li>
<li>Issue 1383 : NullPointerException if an anti CSRF token does not have a value</li>
<li>Issue 1384 : HttpSessions API does not accept URIs with path component</li>
<li>Issue 1385 : XML report is not generated through the API if ZAP is not run from default installation dir</li>
<li>Issue 1386 : PScan API - Allow to change and view alert thresholds</li>
<li>Issue 1387 : Unable to change the proxy's port/address if the port/address was specified through the command line</li>
<li>Issue 1388 : Not all translated files are updated when "zaplang" package is imported</li>
<li>Issue 1389 : NullPointerException during startup if core help jar is not found</li>
<li>Issue 1390 : Force https on cfu call</li>
<li>Issue 1391 : Active Scan send wrong payload of multipart/form-data type</li>
<li>Issue 1394 : Import vulnerabilities.xml files when updating the translated resources</li>
<li>Issue 1395 : vulnerabilities' data kept in memory even if not used</li>
<li>Issue 1397 : Move help files into add-ons</li>
<li>Issue 1399 : Enhance help to open 'external' links in the users default browser</li>
<li>Issue 1404 : SpiderODataAtomParser must return true only if links are detected</li>
<li>Issue 1406 : Move online menu items to an add-on</li>
<li>Issue 1409 : Speed up ZAP startup</li>
<li>Issue 1415 : Fixed file uploads > 128k</li>
<li>Issue 1412 : Manage scan policies</li>
<li>Issue 1416 : Allow spider to be restricted by the number of children</li>
<li>Issue 1418 : Option for ZAP to stay on top when breakpoint hit</li>
<li>Issue 1419 : Include alert's evidence in HTML report</li>
<li>Issue 1420 : Change spider's URLCanonicalizer to skip URIs without authority</li>
<li>Issue 1427 : Standardize on [Cancel] [OK] button order</li>
<li>Issue 1433 : Spider Select target not selected automatically</li>
<li>Issue 1439 : button to show/hide only context/scoped sites in site tab</li>
<li>Issue 1445 : Session Properties shows Context ID not Context Name</li>
<li>Issue 1446 : Downloaded addons failure not handled correctly.</li>
<li>Issue 1447 : Update RSyntaxTextArea library</li>
<li>Issue 1449 : Resend / Manual Request help out of date</li>
<li>Issue 1458 : Change home/installation dir paths to be always absolute</li>
<li>Issue 1460 : Script types are not shown in "Script" tree when script type is added during installation of an add-on</li>
<li>Issue 1461 : Core API - Allow to get a message by ID in HTTP Archive format</li>
<li>Issue 1462 : Allow to remove script types</li>
<li>Issue 1463 : Allow scripts to access classes of add-ons</li>
<li>Issue 1464 : Allow to send "Referer" header in spider requests</li>
<li>Issue 1465 : Translated files are not copied to correct directory if ZAP is not run from default installation dir</li>
<li>Issue 1466 : Config option for 'large display' size</li>
<li>Issue 1467 : AuthenticationApiExample not working</li>
<li>Issue 1468 : Script templates not available when new script types are added during an installation of an add-on</li>
<li>Issue 1469 : Automatically add a user if form based authentication specified based on a request</li>
<li>Issue 1472 : Allow extensions to specify a name for UI components</li>
<li>Issue 1475 : Alerts with different name from same scanner might not be shown in report</li>
<li>Issue 1476 : Display contexts in the Sites tree</li>
<li>Issue 1483 : MissingResourceException after uninstalling an add-on with passive scanners</li>
<li>Issue 1484 : NullPointerException during uninstallation of an add-on with active scanners</li>
<li>Issue 1485 : Do not allow to reselect an add-on if the uninstallation was unsuccessful</li>
<li>Issue 1486 : Add-on components leak</li>
<li>Issue 1489 : Version number in window title</li>
<li>Issue 1490 : Update HarLib library</li>
<li>Issue 1491 : Add versioned AbstractParam</li>
<li>Issue 1492 : Update commons-csv library</li>
<li>Issue 1493 : Remove deprecated authentication classes</li>
<li>Issue 1494 : Support script directories</li>
<li>Issue 1502 : Allow to remove script engine wrappers</li>
<li>Issue 1503 : Not all engines are shown when creating a script from type</li>
<li>Issue 1504 : Exception when a script engine is not installed/found</li>
<li>Issue 1505 : Not all "Forced Browse" components are unloaded during uninstallation</li>
<li>Issue 1507 : Not all "Script Console" components are unloaded during uninstallation</li>
<li>Issue 1508 : Alerts added in view in daemon mode</li>
<li>Issue 1510 : New Extension.postInit() method to be called once all extensions loaded</li>
<li>Issue 1511 : Add option to only allow secure connections to the API</li>
<li>Issue 1514 : Root CA cert not generated in daemon mode</li>
<li>Issue 1515 : Not all "Zest" components are unloaded during uninstallation</li>
<li>Issue 1520 : Add lock icon to https sites in the Sites tree</li>
<li>Issue 1521 : Throwable errors like StackOverflowError not caught by passive scanner</li>
<li>Issue 1524 : New Persist Session dialog</li> 
<li>Issue 1525 : Introduce a database interface layer to allow for alternative implementations</li> 
<li>Issue 1528 : Support user defined font size</li>
<li>Issue 1530 : Default attack strength and alert threshold, set in 'Scan Policy', not used by scanners</li>
<li>Issue 1534 : Change "Ajax Spider" add-on to depend on "Selenium" add-on</li>
<li>Issue 1535 : Update Crawljax library and dependencies ("Ajax Spider" add-on)</li>
<li>Issue 1536 : Change "Zest" add-on to depend on "Selenium" add-on</li>
<li>Issue 1537 : ZAP should allow importing CA certificates</li>
<li>Issue 1540 : Allow proxy scripts to fake responses</li>
<li>Issue 1541 : Enable active scan scripts to scan just a URL rather than every parameter</li>
<li>Issue 1544 : Support persistent script variables</li>
<li>Issue 1551 : ZAP does not detect Relative Path Confusion (aka "Relative Path Overwrite" / "Path Relative Stylesheet Import")</li>
<li>Issue 1552 : ZAP does not detect Forward / Reverse Proxies</li>
<li>Issue 1553 : ZAP does not detect Storability / Cacheability of a response</li>
<li>Issue 1557 : Deadlock on making manual request</li>

</ul>

<h2>See also</h2>
<table>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;</td><td>
<a href="../intro.html">Introduction</a></td><td>the introduction to ZAP</td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;</td><td>
<a href="releases.html">Releases</a></td><td>the full set of releases</td></tr>
<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;</td><td>
<a href="../credits.html">Credits</a></td><td>the people and groups who have made this release possible</td></tr>
</table>
</body>
</html>
