CVE-2026-57527: ZAP ViewState Add-on Insecure Deserialization – Code Execution Vulnerability
Zed Attack Proxy (ZAP), a widely-used security testing tool, contains a critical vulnerability in its ViewState add-on that allows attackers to run arbitrary code on a security analyst's machine. The flaw exists because the add-on deserializes untrusted data from web server responses without proper validation. An attacker who controls or compromises a proxied web server can craft a malicious response that executes code within ZAP itself when an analyst uses the tool to inspect the response. This is particularly concerning because ZAP is trusted to test web applications—turning it into an attack vector undermines that trust.
Source data · NVD / CISA · public domain
- CVSS
- 3.1 · 8.8 HIGH · CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
- Weaknesses (CWE)
- CWE-502
- Affected products
- 0 configuration(s)
- Published / Modified
- 2026-06-26 / 2026-07-14
NVD description (verbatim)
Zed Attack Proxy (ZAP) ViewState add-on before version 4 contains an insecure deserialization vulnerability that allows attackers who control a proxied web server to achieve arbitrary code execution by embedding a malicious serialized Java object in the javax.faces.ViewState HTTP response parameter. The JSFViewState.decode() method base64-decodes the ViewState value and passes it directly to ObjectInputStream.readObject() without a deserialization filter, allowlist, or type restriction, causing the malicious object to be deserialized within the ZAP JVM when the Desktop UI renders the ViewState panel.
5 reference(s) · View on NVD →
SEC.co analysis · AI-assisted, reviewed against source
Technical summary
The ViewState add-on's JSFViewState.decode() method processes the javax.faces.ViewState HTTP parameter by base64-decoding its value and passing it directly to ObjectInputStream.readObject(). This unsafe deserialization occurs without a deserialization filter, allowlist, or type validation. When the ZAP Desktop UI renders the ViewState panel, the malicious serialized Java object is instantiated within the ZAP JVM, enabling arbitrary code execution. The vulnerability stems from CWE-502 (Deserialization of Untrusted Data) and affects any analyst using the add-on to inspect JSF-based applications.
Business impact
For security teams and penetration testers relying on ZAP, this vulnerability creates a significant supply-chain risk. An attacker who identifies an organization uses ZAP for testing can inject malicious payloads into responses from target applications, compromising the analyst's workstation or the testing environment. This could lead to theft of source code, test credentials, proxy logs containing sensitive application behavior, or lateral movement into the broader security infrastructure. The impact is elevated because ZAP runs with the privileges of the user, potentially affecting administrative accounts used for security assessments.
Affected systems
The vulnerability affects Zed Attack Proxy ViewState add-on versions prior to version 4. It is triggered only when analysts actively use the tool to proxy traffic from and inspect responses of JavaServer Faces (JSF) applications that include a ViewState parameter. The attack requires either server-side control or a network position allowing response manipulation, limiting exposure to scenarios where attackers have already compromised or can intercept traffic from a target application.
Exploitability
While the technical barrier to exploitation is low—crafting a malicious serialized Java object and embedding it in a ViewState parameter is well within the capability of experienced attackers—the attack requires user interaction. An analyst must view the affected response in ZAP's UI, and the attacker must either control the proxied web server or be able to intercept and modify responses in transit. The CVSS score of 8.8 (HIGH) reflects the high impact of code execution offset by the requirement for user action and network access to a proxied server.
Remediation
Upgrade the ViewState add-on to version 4 or later. Users should verify their ZAP installation includes the updated add-on and confirm the version in the add-ons marketplace or plugin manager. Until patched, organizations should restrict ZAP use to secure, trusted networks and consider segmenting security testing workstations to limit blast radius if compromise occurs. Additionally, avoid proxying untrusted or hostile web applications through ZAP until the patch is deployed.
Patch guidance
Update the ViewState add-on to version 4 or newer through the ZAP add-ons marketplace. Check the ZAP Help menu for add-on management tools, search for 'ViewState,' and install the latest available version. Verify the patch is applied by confirming the add-on version displays as 4.0 or higher in the installed add-ons list. For organizations managing ZAP deployments centrally, verify patch distribution to all testing workstations and confirm version compliance via inventory or automated scanning.
Detection guidance
Monitor ZAP instances for the ViewState add-on version using inventory management tools or by scripting queries against ZAP's plugin metadata. Look for instances running add-on versions below 4. In network-based detection, monitor for unusual process execution or file writes originating from ZAP processes, particularly if ZAP is proxying untrusted applications. Log all add-on installations and updates to establish a baseline of expected versions.
Why prioritize this
Although not yet listed on CISA's KEV catalog, this vulnerability warrants high priority because it affects a trust-critical tool widely used by security professionals. Compromise of ZAP directly compromises the security team's ability to assess applications and access to their testing credentials and logs. The attack surface, while requiring user action, is realistic in penetration testing scenarios where analysts routinely inspect responses from potentially hostile applications. Organizations should treat this as urgent within their security testing infrastructure.
Risk score, explained
The CVSS 8.8 HIGH score reflects the combination of network-based attack vector, low attack complexity, no required privileges, and user interaction that triggers high-impact code execution. The score appropriately weights the severe consequences—full confidentiality, integrity, and availability compromise of the ZAP process—against the requirement that an analyst must view the malicious response. For security teams, the practical risk is further elevated by ZAP's role as a foundational testing tool.
Frequently asked questions
Does this vulnerability require the analyst to download or run anything, or is viewing the malicious response in ZAP enough?
Viewing the malicious response in ZAP's UI is sufficient to trigger the vulnerability. The attacker embeds the payload in the javax.faces.ViewState HTTP parameter, and the vulnerability is triggered when the ViewState panel renders the decoded object. No additional user action is required beyond the analyst accessing the response through ZAP's interface.
What if we only test applications that don't use JavaServer Faces (JSF)?
If your organization does not test JSF-based applications or the applications you test do not include ViewState parameters, this specific vulnerability cannot be triggered. However, the underlying issue—insecure deserialization—is a pattern worth auditing across all ZAP add-ons. Review any other add-ons that deserialize untrusted data and ensure they are current and patched.
Can we mitigate this without upgrading if we restrict what applications we proxy?
Partial mitigation is possible by avoiding proxying untrusted applications until patched, but this is not a robust long-term solution. Since legitimate JSF applications may be compromised or hosting malicious content, the safest approach is to upgrade. If you cannot upgrade immediately, isolate ZAP workstations on a dedicated, segmented network to limit lateral movement if compromise occurs.
Will ZAP notify us automatically if we're using a vulnerable version?
ZAP's add-on update mechanisms vary by deployment model. Desktop installations typically notify users of available updates, but automatic patching is not guaranteed. We recommend checking your ZAP installation's add-ons list directly or querying your deployment management tools to confirm version compliance rather than relying on automatic notifications.
This analysis is provided for informational purposes and reflects the vulnerability details as of the publication date. Patch availability, version numbers, and timeline details should be verified against official Zed Attack Proxy advisories and vendor releases. Organizations should conduct their own risk assessment and compatibility testing before applying patches. This document does not constitute professional security advice, and organizations should consult with their own security teams before taking remedial action. Source: NVD (public-domain), retrieved 2026-08-05. Analysis generated by SEC.co (claude-haiku-4-5).
Weaknesses (CWE)
Related vulnerabilities
- CVE-2025-11993HIGHWooCommerce Infinite Scroll Plugin PHP Object Injection – HIGH Severity
- CVE-2025-27511HIGHGeoServer DB2 JNDI Injection Remote Code Execution
- CVE-2025-69130HIGHPHP Object Injection in Entrepreneur WordPress Booking Theme ≤3.1.3
- CVE-2025-71339HIGHPicklescan Gadget Bypass Allows Arbitrary Code Execution
- CVE-2025-71340HIGHPicklescan Evasion via idlelib.pyshell.ModifiedInterpreter
- CVE-2025-71341HIGHPicklescan Bypass Enables Remote Code Execution via profile.Profile.runctx
- CVE-2025-71342HIGHPicklescan Evasion Enables Remote Code Execution in PyTorch Models
- CVE-2025-71343HIGHpicklescan Detection Bypass Allows Remote Code Execution