CVE-2026-39816 is a high-severity vulnerability in Apache NiFi 2.0.0-M1 through 2.8.0 affecting the optional TinkerpopClientService provided by the nifi-other-graph-services-nar extension. The service is missing a Restricted annotation tied to the Execute Code required permission. TinkerpopClientService supports ByteCode Submission for the Script Submission Type, and in that mode user-supplied input can be processed as Groovy prior to query submission. As a result, in NiFi deployments using fine-grained authorization, an authenticated user who does not have the EXECUTE_CODE permission can still configure and use this service in a way that causes Groovy code to execute on the NiFi server. The flaw is therefore a permission-boundary bypass in an optional graph integration component that exposes an unintended server-side code execution path.
Mallory correlates every CVE against your assets, your vendors, and active adversary campaigns. Know which vulnerabilities matter for you, not just which ones are loud.
What it means. What to do now. Patch path, mitigations, and the assume-compromise checklist.
What an attacker gets, and what they’ve been doing with it.
If you can’t patch tonight, do this now.
Patch, then assume compromise.
1 valid exploit after Mallory filtered fakes, detection scripts, and README-only repos.
Repository contains a working proof-of-concept for CVE-2026-39816 against Apache NiFi 2.8.0. The main exploit is pocs/flow_designer_groovy_rce.py, a standalone Python script that authenticates to the NiFi REST API, verifies that the low-privileged user lacks access to restricted scripting processors, then abuses the unrestricted ExecuteGraphQuery/TinkerpopClientService path to execute attacker-supplied Groovy in the NiFi JVM. Its practical payload is a reverse shell callback to the operator, followed by PTY upgrade and interactive terminal handling. This is not merely a detector; it performs end-to-end exploitation and cleanup. Repository structure is split between the exploit and a reproducible lab environment. The setup/ directory provisions a Docker Compose stack with Apache NiFi 2.8.0, OpenLDAP, and a Gremlin server. Supporting files configure LDAP-backed authentication and NiFi authorization, seed two users (admin and flow_designer), patch NiFi properties, and automate startup/teardown. setup.sh also downloads the required graph bundle NARs from Maven Central and configures policies so flow_designer has flow-editing rights but not EXECUTE_CODE, matching the intended bypass scenario. Primary attack vector is web/network-based via authenticated HTTPS access to NiFi's /nifi-api endpoints. The exploit depends on the optional graph bundle being installed and on the attacker having sufficient design permissions to create controller services/processors. Fingerprintable infrastructure includes the NiFi API at /nifi-api/access/token and /flow/process-groups/root, LDAP at ldap://ldap:389, Gremlin at gremlin-server:8182 / ws://gremlin-server:8182/gremlin, Maven Central for NAR downloads, and the reverse-shell callback target host.docker.internal:9998. Overall, this repository is a realistic operational POC demonstrating privilege-boundary bypass leading to arbitrary code execution as the NiFi service account.
Products and vendors Mallory has correlated with this vulnerability. Open in Mallory to drill down to specific CPE configurations and version ranges.
Vendor-confirmed product mapping. Mallory continuously reconciles this list against your asset inventory.
8 sources tracked across advisories, community write-ups, and news. New activity surfaces here as Mallory finds it.
A high-severity Apache NiFi vulnerability caused by a missing restricted annotation for the Execute Code Required Permission, allowing users without EXECUTE_CODE permission to configure TinkerpopClientService to execute Groovy code when the optional graph services extension is installed.
A high-severity authenticated arbitrary code execution vulnerability in Apache NiFi that allows users lacking the EXECUTE_CODE privilege to run Groovy code on the NiFi server via graph query functionality when optional graph-related extensions, including nifi-other-graph-services-nar, are installed.
Query your assets running an affected version, and investigate the blast radius.
Every observed campaign linking this CVE to a named adversary.
Malware families riding this exploit, with evidence and IOCs.
YARA, Sigma, Snort, and vendor rules, auto-deployed to your SIEM.
Cross-references every affected SKU, including bundled OEM variants.
Community discussion across Reddit, Mastodon, and other social sources.