CVEReports
CVEReports

Automated vulnerability intelligence platform. Comprehensive reports for high-severity CVEs generated by AI.

Product

  • Home
  • Sitemap
  • RSS Feed

Company

  • About
  • Contact
  • Privacy Policy
  • Terms of Service

© 2026 CVEReports. All rights reserved.

Made with love by Amit Schendel & Alon Barad



CVE-2026-34621

CVE-2026-34621: Prototype Pollution to Arbitrary Code Execution in Adobe Acrobat EScript Engine

Alon Barad
Alon Barad
Software Engineer

Apr 15, 2026·6 min read·42 visits

Executive Summary (TL;DR)

A zero-day Prototype Pollution vulnerability in Adobe Acrobat's EScript engine allows unauthenticated attackers to bypass trust boundaries, read local files, and execute arbitrary code upon opening a malicious PDF. The vulnerability has seen active in-the-wild exploitation.

CVE-2026-34621 is a critical Prototype Pollution vulnerability in the Adobe Acrobat and Reader EScript engine. The flaw allows attackers to bypass JavaScript trust boundaries and execute arbitrary code or read sensitive local files. Attackers have actively exploited this vulnerability in targeted campaigns since December 2025.

Vulnerability Overview

CVE-2026-34621 resides within the EScript engine of Adobe Acrobat and Reader. This component evaluates and executes JavaScript embedded within PDF documents. Document-level JavaScript operates within a restricted sandbox to prevent malicious actions on the host system.

The core vulnerability is classified as Improperly Controlled Modification of Object Prototype Attributes (CWE-1321), commonly known as Prototype Pollution. The flaw manifests in how the EScript engine parses user-controlled objects and passes them to internal native bridge functions. These functions govern the Acrobat Trust Model.

By carefully crafting a PDF document, an attacker can modify the global Object.prototype. This modification injects malicious properties that inherit across all JavaScript objects instantiated within the engine. The resulting pollution allows the attacker to deceive the trust validation logic.

Successfully bypassing the trust validation grants document-level scripts access to privileged APIs. These APIs include functions capable of interacting with the local filesystem and network. The ultimate impact is local file disclosure and arbitrary code execution in the context of the current user.

Root Cause Analysis

The Acrobat Trust Model relies on specific JavaScript object properties to verify whether a function execution context is authorized to invoke privileged APIs. Native bridge helpers, such as app.beginPriv and app.trustedFunction, validate these properties before granting access.

Because the validation routine dynamically checks for the presence and value of trust indicator properties on the execution object, it is vulnerable to prototype chain traversal. If the execution object does not define a requested property, the JavaScript engine traverses up the prototype chain to resolve it.

An attacker achieves prototype pollution by writing to the __proto__ or constructor.prototype properties of a standard JavaScript object within the PDF script. When the attacker sets a trust-indicating key on the global prototype, all subsequent object validations inherit this manipulated state.

The native C++ implementation of the EScript bridge queries the V8/SpiderMonkey engine context for these keys without enforcing an own-property check. Consequently, the native code reads the polluted value from the global prototype, incorrectly determining that the calling context possesses administrative or trusted privileges.

Code Analysis and Trust Bypass

The vulnerability relies on the structural interface between the JavaScript runtime and the native Acrobat API bindings. When a script calls a privileged function, the engine constructs a context object to evaluate authorization.

The vulnerable implementation performs a naive property lookup. It evaluates contextObject[trustedKey] without verifying if the key belongs directly to the contextObject.

// Conceptual representation of the vulnerable bridge logic
function checkTrustContext(executionCtx) {
    // Vulnerable: Reads from the prototype chain if 'isTrusted' is undefined on executionCtx
    if (executionCtx.isTrusted === true) {
        grantPrivilege();
    } else {
        denyPrivilege();
    }
}
 
// Attacker pollutes the prototype
Object.prototype.isTrusted = true;
 
// A newly created context inherits the polluted property
let currentContext = {};
checkTrustContext(currentContext); // Bypasses validation

The patched implementation mitigates this by enforcing strict prototype boundaries during context evaluation. Native handlers now use dictionary objects devoid of prototypes, or they explicitly invoke property-ownership checks before evaluating trust indicators.

// Conceptual representation of the patched bridge logic
function checkTrustContext(executionCtx) {
    // Patched: Enforces own-property validation
    if (Object.prototype.hasOwnProperty.call(executionCtx, 'isTrusted') && executionCtx.isTrusted === true) {
        grantPrivilege();
    } else {
        denyPrivilege();
    }
}

Alternatively, Adobe developers initialized internal trust objects using Object.create(null). This approach entirely severs the prototype chain for sensitive configuration objects, ensuring that global pollution cannot influence internal state logic.

Exploitation Methodology

Exploitation of CVE-2026-34621 requires user interaction to open a malicious PDF file. Once the file is rendered, the embedded EScript payload executes automatically. Attackers execute a documented three-stage chain to achieve system compromise.

In the first stage, the script pollutes the Object.prototype to manipulate the context evaluated by app.trustedFunction. The attacker then registers a custom, malicious function as a trusted entity within the Acrobat environment. This effectively elevates the privilege level of the payload.

In the second stage, the attacker leverages the newly acquired trusted status to invoke util.readFileIntoStream(). This specific API allows the script to specify exact file paths on the local host. Active exploits target SSH keys, browser profile databases, and local application credentials.

In the final stage, the payload utilizes the RSS.addFeed() API to exfiltrate the collected data. This function initiates network communication from the Acrobat.exe process to an attacker-controlled endpoint. Network defenses often overlook this traffic due to the legitimate nature of the Acrobat binary.

Impact Assessment

The vulnerability carries a CVSS 3.1 base score of 8.6, reflecting the severity of the privilege boundary failure. The Scope metric evaluates to Changed (S:C) because the exploit breaks out of the Acrobat JavaScript sandbox to affect the host operating system.

Confidentiality, Integrity, and Availability impacts are all rated High. The attacker gains the ability to read arbitrary files, manipulate local system configurations via dropped executables, and disrupt system operations. Code execution occurs under the privileges of the user running Acrobat.

Exploitation telemetry confirms that this vulnerability operated as a zero-day since at least December 2025. Advanced persistent threat (APT) groups integrated the exploit into targeted spear-phishing campaigns. The maturity of the exploit chain indicates a deep understanding of Adobe internal API structures.

The inclusion of this vulnerability in the CISA Known Exploited Vulnerabilities (KEV) catalog mandates rapid remediation for federal agencies. The high EPSS score (90.77th percentile) corroborates the widespread availability and high probability of continued exploitation attempts against unpatched endpoints.

Remediation and Mitigation

Organizations must immediately deploy the patches specified in Adobe Security Bulletin APSB26-43. The fixed versions are 26.001.21411 for continuous tracks and 24.001.30362 for classic tracks. These updates implement the necessary prototype ownership validations within the EScript bridge.

If immediate patching is unfeasible, administrators must disable Adobe Acrobat JavaScript execution globally. This action neutralizes the attack vector entirely, as the exploit relies on the EScript engine to pollute the environment. Users can apply this setting via the application preferences menu.

For enterprise environments, security teams should enforce JavaScript disabling via Group Policy Objects (GPO) or mobile device management solutions like Microsoft Intune. Modifying the registry key [HKEY_CURRENT_USER\Software\Adobe\Acrobat Reader\DC\JSPrefs] to set bEnableJS to 0 scales this mitigation across Windows domains.

Security operations centers should deploy YARA and Nuclei detection rules to identify malicious PDF documents containing obfuscated references to __proto__ and app.beginPriv. Endpoint detection systems must monitor Acrobat.exe and AcroRd32.exe for anomalous file reads in user profile directories.

Official Patches

AdobeAdobe Security Bulletin APSB26-43

Technical Appendix

CVSS Score
8.6/ 10
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:H
EPSS Probability
6.08%
Top 99% most exploited

Affected Systems

Adobe Acrobat DC (Continuous)Adobe Acrobat Reader DC (Continuous)Adobe Acrobat (Classic 2024)Adobe Acrobat Reader (Classic 2024)

Affected Versions Detail

Product
Affected Versions
Fixed Version
Acrobat DC (Continuous)
Adobe
<= 26.001.2136726.001.21411
Acrobat Reader DC (Continuous)
Adobe
<= 26.001.2136726.001.21411
Acrobat (Classic 2024)
Adobe
<= 24.001.3035624.001.30362
Acrobat Reader (Classic 2024)
Adobe
<= 24.001.3035624.001.30362
AttributeDetail
CWECWE-1321
Attack VectorLocal (User Interaction Required)
CVSS Score8.6 (High)
EPSS Percentile90.77%
ImpactArbitrary Code Execution / Local File Disclosure
Exploit StatusActive / Weaponized
CISA KEVListed (April 13, 2026)

MITRE ATT&CK Mapping

T1204.002User Execution: Malicious File
Execution
T1059.007Command and Scripting Interpreter: JavaScript
Execution
T1005Data from Local System
Collection
T1048.003Exfiltration Over Alternative Protocol: Unencrypted Non-C2 Protocol
Exfiltration
CWE-1321
Prototype Pollution

Improperly Controlled Modification of Object Prototype Attributes ('Prototype Pollution')

Known Exploits & Detection

GitHubProof of Concept repository for CVE-2026-34621

Vulnerability Timeline

Initial reports of targeted attacks involving suspicious PDF files.
2025-12-13
Research begins surfacing regarding a trust model flaw in the EScript bridge.
2026-02-26
CVE-2026-34621 officially assigned and published.
2026-04-11
Adobe releases Security Bulletin APSB26-43; CISA adds CVE to KEV catalog.
2026-04-13

References & Sources

  • [1]Adobe Security Bulletin APSB26-43
  • [2]CISA KEV Catalog: CVE-2026-34621
  • [3]Technical Analysis by Kaya Ercihan
  • [4]PoC Repository
  • [5]SecurityWeek: Adobe Patches Reader Zero-Day Exploited for Months

Attack Flow Diagram

Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.
Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.

More Reports

•about 12 hours ago•GHSA-XF4V-W5X5-PV79
5.1

GHSA-XF4V-W5X5-PV79: CSV Formula Injection in Spree Customer Export

A CSV Formula Injection vulnerability (CWE-1236) exists in the Spree headless eCommerce platform within the customer export functionality. An unauthenticated attacker can register a customer profile containing malicious formula sequences in fields like the first name or last name. When an administrator exports the customer data to a CSV file and opens it in a spreadsheet application, the spreadsheet engine can interpret and execute these formulas, potentially leading to remote command execution on the administrator's workstation or out-of-band data exfiltration.

Alon Barad
Alon Barad
4 views•6 min read
•about 12 hours ago•CVE-2026-47694
5.4

CVE-2026-47694: Stored Cross-Site Scripting in WWBN AVideo Category Descriptions

A Stored Cross-Site Scripting (XSS) vulnerability exists in WWBN AVideo versions up to and including 29.0. Unsanitized category descriptions are stored in the database and subsequently rendered as raw HTML in the Gallery view plugin, allowing low-privileged authenticated users to execute arbitrary JavaScript in the browsers of visiting users.

Alon Barad
Alon Barad
5 views•7 min read
•about 13 hours ago•GHSA-JPVJ-WPMJ-H7RV
9.6

GHSA-JPVJ-WPMJ-H7RV: Supply Chain Compromise and Malicious Code Injection in @cap-js/openapi

A critical supply chain compromise was identified in the Node.js package @cap-js/openapi at version 1.4.1. An attacker gained unauthorized publishing access to the npm registry and distributed a backdoored release that harvests sensitive developer credentials, environment variables, and SSH keys. The malicious code then exfiltrates the collected data to external actor-controlled servers.

Amit Schendel
Amit Schendel
12 views•5 min read
•about 13 hours ago•CVE-2026-47696
7.1

CVE-2026-47696: Authenticated Wallet Credit Bypass in WWBN AVideo AuthorizeNet Plugin

An authenticated wallet credit bypass vulnerability exists in WWBN AVideo version 29.0 and earlier. The AuthorizeNet plugin includes an unfinished mockup endpoint, processPayment.json.php, which lacks actual transaction verification and hardcodes success. This allows any authenticated user to credit their wallet with arbitrary balances without making any payments.

Amit Schendel
Amit Schendel
4 views•5 min read
•about 14 hours ago•GHSA-8WHC-2WMV-WW35
8.8

GHSA-8whc-2wmv-ww35: Unauthenticated Stored DOM-based Cross-Site Scripting in WWBN AVideo YPTSocket Plugin

An unauthenticated stored DOM-based Cross-Site Scripting (DOM XSS) vulnerability in the YPTSocket plugin of WWBN AVideo (formerly YouPHPTube) allows remote attackers to execute arbitrary JavaScript within the session context of administrative users. Unsanitized metadata parameters supplied during the WebSocket handshake are persisted in an SQLite database and broadcast to connected users. The frontend application processes these parameters through an unsafe jQuery append sink, leading to silent, high-impact administrative context compromise.

Amit Schendel
Amit Schendel
6 views•7 min read
•about 14 hours ago•CVE-2026-47676
5.3

CVE-2026-47676: Inconsistent Path Parsing and Slicing in Hono Framework Sub-Application Mounting

A path parsing and normalization inconsistency vulnerability exists in the Hono web framework prior to version 4.12.21. When hosting sub-applications via the app.mount() routing interface, Hono calculates the routing path prefix length on a percent-decoded representation of the URI but executes the path-slicing offset on the raw, percent-encoded string. This discrepancy results in malformed request paths being dispatched to mounted sub-applications, potentially leading to route bypasses, route confusion, and application-level Denial of Service.

Alon Barad
Alon Barad
4 views•6 min read