Deserialization of Untrusted Data Affecting apache-nifi package, versions <2.10.0-r4


Severity

Recommended
low

Based on default assessment until relevant scores are available.

Threat Intelligence

EPSS
0.5% (40th percentile)

Do your applications use this vulnerable package?

In a few clicks we can analyze your entire application and see what components are vulnerable in your application, and suggest you quick fixes.

Test your applications
  • Snyk IDSNYK-CHAINGUARDLATEST-APACHENIFI-17972409
  • published14 Jul 2026
  • disclosed3 Jun 2026

Introduced: 3 Jun 2026

CVE-2026-47065  (opens in a new tab)
CWE-502  (opens in a new tab)

How to fix?

Upgrade Chainguard apache-nifi to version 2.10.0-r4 or higher.

NVD Description

Note: Versions mentioned in the description apply only to the upstream apache-nifi package and not the apache-nifi package as distributed by Chainguard. See How to fix? for Chainguard relevant fixed versions and status.

ZDRES-232: resolveProxyClass Not Overridden - acceptMatchers Filter Bypass via java.lang.reflect.Proxy

Assessment: Fully addressed.

When the serialised stream contains a TC_PROXYCLASSDESC (the marker for a java.lang.reflect.Proxy ), JDK’s ObjectInputStream.readProxyDesc() is dispatched. JDK then calls the default ObjectInputStream.resolveProxyClass(interfaces) implementation, which performs Class.forName(intf, false, latestUserDefinedLoader()) for EACH interface name and constructs the proxy class — bypassing the accepted classes list .

ZDRES-233: Class.forName(name, initialize=true, classLoader) in readClassDescriptor Triggers Static Initialiser of Allow-Listed Classes

Assessment: Fully addressed.

For ANY class on the allow-list, deserialising a stream that names it triggers the class’s (static initialiser) BEFORE any instance is constructed. This means an attacker who supplies a class name on the allow-list (e.g., the developer wrote accept(“com.myapp.*") , attacker supplies com.myapp.SomeClass ) causes <clinit> of SomeClass — and many real-world classes have side-effecting static initialisers

Both issues have been fixed.