Skip to main content

Apache Fory CVE-2026-71558

| EUVDEUVD-2026-54422 CRITICAL
Deserialization of Untrusted Data (CWE-502)
2026-08-07 apache GHSA-rwv5-p9fv-c8fp
9.8
CVSS 3.1 · Vendor: apache
Share

Severity by source

Vendor (apache) PRIMARY
9.8 HIGH
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
vuln.today AI
8.1 HIGH

Network-reachable and unauthenticated once the polymorphic path is exposed (AV:N/PR:N), but reliable exploitation of heap type confusion into code execution is build-dependent and feature-gated, so AC:H; full C/I/A impact on the process.

3.1 AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
4.0 AV:N/AC:H/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (apache).

CVSS VectorVendor: apache

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

6
Analysis Updated
Aug 07, 2026 - 18:28 vuln.today
v2 (cvss_changed)
Re-analysis Queued
Aug 07, 2026 - 18:22 vuln.today
cvss_changed
CVSS changed
Aug 07, 2026 - 18:22 NVD
9.8 (CRITICAL)
Patch available
Aug 07, 2026 - 10:16 EUVD
Analysis Generated
Aug 07, 2026 - 09:46 vuln.today
CVE Published
Aug 07, 2026 - 08:54 cve.org
HIGH

DescriptionCVE.org

Heap type confusion vulnerability in Apache Fory C++ deserialization.

This issue affects Apache Fory C++ versions from 0.14.0 before 1.5.0. A crafted input payload can bypass type compatibility checks during polymorphic smart-pointer deserialization, causing an object of an incompatible type to be treated as the declared base type. This may result in undefined behavior and potentially lead to denial of service or arbitrary code execution.

Users are recommended to upgrade to Apache Fory 1.5.0, which fixes this issue. Applications not using Apache Fory C++ polymorphic smart-pointer deserialization are not affected.

AnalysisAI

Heap type confusion in the Apache Fory C++ deserialization engine (versions 0.14.0 up to but not including 1.5.0) lets a crafted payload bypass type-compatibility checks during polymorphic smart-pointer deserialization, so an object of an incompatible type is handled as its declared base type. Because CWE-502 untrusted-data handling here corrupts memory rather than merely mis-parsing values, an attacker who controls serialized input can trigger undefined behavior ranging from denial of service to arbitrary code execution. This is rated CVSS 9.8 and is fixed in 1.5.0; there is no public exploit identified at time of analysis and EPSS is low at 0.21%.

Technical ContextAI

Apache Fory (formerly Fury) is a cross-language, high-performance serialization framework; the affected component is its C++ runtime. The flaw is a CWE-502 (Deserialization of Untrusted Data) defect that manifests as heap type confusion: during polymorphic deserialization of smart pointers (e.g. std::shared_ptr/unique_ptr to a base class), Fory is supposed to verify that the concrete type in the payload is compatible with the declared base type before constructing it. The bug allows that check to be bypassed, so bytes describing one type are interpreted through the vtable/layout of an incompatible type. In C++ this breaks memory-safety invariants - mismatched object layouts, invalid vtable dispatch, and unsafe pointer reinterpretation - which is the classic path from type confusion to controlled memory corruption. Only code paths that use Fory's polymorphic smart-pointer deserialization exercise the vulnerable logic.

RemediationAI

Vendor-released patch: upgrade Apache Fory to 1.5.0, which contains the fix, per the Apache advisory (https://lists.apache.org/thread/oywndv60jwqdv6j37t7bc1qbcc4b235r) and the oss-security announcement (http://www.openwall.com/lists/oss-security/2026/08/07/3). If you cannot upgrade immediately, the most direct compensating control is to stop deserializing untrusted or externally-sourced payloads through Fory's polymorphic smart-pointer path, since applications that do not use that feature are not affected - where feasible, avoid polymorphic (base-class smart-pointer) deserialization of attacker-influenced data and use concrete non-polymorphic types, at the cost of losing polymorphic serialization functionality. Additionally, restrict and authenticate the network sources that can submit serialized data and validate/whitelist expected message sources upstream so that untrusted input never reaches the deserializer; note these controls reduce exposure but do not remove the underlying bug, so they are stopgaps until 1.5.0 is deployed. Cite only version 1.5.0 as the confirmed fixed release.

Share

CVE-2026-71558 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy