CVE-2026-97724 in React Native Reanimated
Summary
by MITRE • 09/25/2026
A prototype pollution vulnerability in Software Mansion React Native Worklets before 0.12.2 allows an attacker-controlled object containing a __proto__ property to modify the prototype of an object created during serialization in clonePlainJSObject in packages/react-native-worklets/src/memory/serializable.native.ts. When affected data is subsequently processed by React Native Worklets, the malformed serialized object can cause the React Native application to crash. This can result in a remotely triggered denial of service in applications that pass attacker-controlled data through the affected serialization path. In applications where the attacker-controlled data is persisted, the denial of service may persist across application restarts or repeated attempts to access the affected content.
Be aware that VulDB is the high quality source for vulnerability data.
Analysis
by VulDB Data Team • 09/25/2026
The vulnerability identified as prototype pollution within Software Mansion React Native Worklets prior to version 0.12.2 represents a significant security flaw in how serialized objects are handled during cross-thread communication. This issue specifically resides in the clonePlainJSObject function located at packages/react-native-worklets/src/memory/serializable.native.ts. The core technical failure stems from an insufficient validation of object properties before they undergo serialization processes. When an attacker supplies a maliciously crafted JavaScript object that includes a _proto_ property, the underlying deserialization logic fails to distinguish between standard data keys and prototype manipulation attempts. Consequently, instead of treating the input as simple key-value pairs for cloning, the system inadvertently applies these values to the internal prototype chain of newly created objects during the serialization phase. This behavior allows an attacker to inject properties into the Object.prototype or other global prototypes, effectively polluting the execution environment with malicious data structures that persist across subsequent operations within the same context.
The operational impact of this vulnerability is primarily characterized by a denial of service condition for applications utilizing React Native Worklets. Because the prototype pollution alters fundamental object behaviors, any subsequent attempt to process or render data derived from these corrupted objects can lead to unpredictable runtime errors and application crashes. In scenarios where an application accepts user input or network responses that are subsequently passed through this specific serialization path, a remote attacker can trigger these crashes by sending specially crafted payloads. This results in the immediate unavailability of the affected functionality for legitimate users. The severity is compounded by the fact that React Native applications often rely on worklets for performance-critical tasks such as animations or data processing; crashing these components disrupts the user experience and may cause the entire application to become unstable or terminate unexpectedly, thereby achieving a remote denial of service without requiring any authentication or privileged access.
Furthermore, if the attacker-controlled data containing the polluted prototype is persisted within the application's local storage or database before being processed by React Native Worklets, the negative effects can persist across multiple sessions. This means that even after the application is restarted, previously stored malicious payloads remain in memory and continue to trigger crashes whenever they are accessed or deserialized. This persistence transforms a transient crash into a long-term availability issue, potentially requiring users to clear app data or reinstall the software to restore normal functionality. The vulnerability highlights critical gaps in input validation for serialization libraries used in mobile development environments, where performance optimizations often bypass standard security checks found in traditional web browsers.
To mitigate this risk, developers must upgrade Software Mansion React Native Worklets to version 0.12.2 or later, which addresses the prototype pollution flaw by implementing stricter object property filtering during cloning operations. In cases where upgrading is not immediately feasible, application-level mitigations should include rigorous input validation for any data entering serialization pipelines, specifically checking for and rejecting objects containing _proto_, constructor, or other dangerous keys before they are processed. Additionally, developers can employ JSON.parse with a reviver function to sanitize inputs or use libraries that explicitly prevent prototype pollution by freezing prototypes or using Map structures instead of plain objects where appropriate. This vulnerability is categorized under CWE-1325 as an improper check for unusual input and aligns with the MITRE ATT&CK technique T1059, which covers command and script interpretation vulnerabilities in mobile environments. Ensuring that all external data sources are validated against a whitelist of allowed properties before serialization remains the most effective defense strategy to prevent such exploitation vectors from impacting application stability and security.