Miggo Logo

CVE-2023-40037:
Apache NiFi Insufficient Property Validation vulnerability

6.5

CVSS Score
3.1

Basic Information

EPSS Score
0.79613%
Published
8/19/2023
Updated
2/13/2025
KEV Status
No
Technology
TechnologyJava

Technical Details

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N
Package NameEcosystemVulnerable VersionsFirst Patched Version
org.apache.nifi:nifi-dbcp-basemaven>= 1.21.0, < 1.23.11.23.1
org.apache.nifi:nifi-jms-processorsmaven>= 1.21.0, < 1.23.11.23.1
org.apache.nifi:nifi-dbcp-service-apimaven>= 1.21.0, < 1.23.11.23.1
org.apache.nifi:nifi-dbcp-service-bundlemaven>= 1.21.0, < 1.23.11.23.1

Vulnerability Intelligence
Miggo AIMiggo AI

Miggo AIRoot Cause Analysis

The vulnerability stemmed from insufficient validation of JDBC/JNDI connection URLs and driver classes. The commit diff shows key changes: 1) JNDI URL validation now evaluates Expression Language and trims input, indicating prior lack of sanitization. 2) Connection URL checks switched from 'startsWith()' to 'contains()', addressing partial scheme bypass. 3) Driver class properties replaced generic validators with a dedicated DriverClassValidator, blocking dangerous drivers like H2. These fixes directly correlate to the CWE-184 and CWE-697 issues described, confirming the original functions were vulnerable to crafted input bypasses.

Vulnerable functions

Only Mi**o us*rs **n s** t*is s**tion

WAF Protection Rules

WAF Rule

*p**** Ni*i *.**.* t*rou** *.**.* support J*** *n* JN*I JMS ****ss in s*v*r*l Pro**ssors *n* *ontroll*r S*rvi**s wit* *onn**tion URL v*li**tion t**t *o*s not provi** su**i*i*nt prot**tion ***inst *r**t** inputs. *n *ut**nti**t** *n* *ut*oriz** us*r *

Reasoning

T** vuln*r**ility st*mm** *rom insu**i*i*nt v*li**tion o* `J***/JN*I` *onn**tion URLs *n* *riv*r *l*ss*s. T** *ommit *i** s*ows k*y ***n**s: *) `JN*I` URL v*li**tion now *v*lu*t*s `*xpr*ssion L*n*u***` *n* trims input, in*i**tin* prior l**k o* s*niti