<!DOCTYPE html>
<html class="no-js" lang="en">
    <head>
        <title>Apache NiFi Security</title>
        <meta charset="utf-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <link rel="shortcut icon" href="/assets/images/nifi16.ico"/>
        <link rel="stylesheet" href="/stylesheets/app.min.27f785d2dfa83c24896261ad5106f3c19ee004c4d04b8a1c4b22e03a3a9fcb2a.css">
        <link rel="stylesheet" href="/assets/stylesheets/font-awesome.min.css">
        <script src="/assets/js/modernizr.js"></script>
        <script src="/assets/js/webfontloader.js"></script>
        <script>
  var _paq = window._paq = window._paq || [];
  _paq.push(['disableCookies']);
  _paq.push(['trackPageView']);
  _paq.push(['enableLinkTracking']);
  (function() {
    var baseUri = "//matomo.privacy.apache.org/";
    _paq.push(['setTrackerUrl', baseUri + 'matomo.php']);
    _paq.push(['setSiteId', '28']);
    var trackerElement = document.createElement('script');
    var firstScriptElement = document.getElementsByTagName('script')[0];
    trackerElement.async = true;
    trackerElement.src = baseUri + 'matomo.js';
    var firstScriptElement = document.getElementsByTagName('script')[0];
    if (window.location.host === 'nifi.apache.org') {
      firstScriptElement.parentNode.insertBefore(trackerElement, firstScriptElement);
    }
  })();
</script>
</head>
    <body><div class="sticky contain-to-grid">
    <nav class="top-bar" data-topbar role="navigation">
        <ul class="title-area">
            <li class="name">
                <h1>
                    <a href="index.html">
                        <img id="logo-top-bar" src="/assets/images/nifi-drop-white.svg" alt="Apache NiFi"/>
                    </a>
                </h1>
            </li>
            
            <li class="toggle-topbar menu-icon"><a href="#"><span></span></a></li>
        </ul>

        <section class="top-bar-section">
            
            <ul class="right">
                <li class="has-dropdown">
                    <a href="#">Documentation</a>
                    <ul class="dropdown">
                        <li><a href="project-documentation.html">Project Documentation 2.0.0-M1</a></li>
                        <li><a href="docs.html">Project Documentation 1.24.0</a></li>
                        <li><a href="security.html">Security Reporting</a></li>
                        <li><a href="faq.html">FAQ</a></li>
                        <li><a href="videos.html">Videos</a></li>
                        <li><a href="https://cwiki.apache.org/confluence/display/NIFI"><i class="fa fa-external-link external-link"></i>Wiki</a></li>
                    </ul>
                </li>
                <li class="has-dropdown">
                    <a href="#">Downloads</a>
                    <ul class="dropdown">
                        <li><a href="download.html">Download NiFi</a></li>
                        <li><a href="https://cwiki.apache.org/confluence/display/NIFI/Release+Notes"><i class="fa fa-external-link external-link"></i>Release Notes</a></li>
                    </ul>
                </li>
                <li class="has-dropdown">
                    <a href="#">Community</a>
                    <ul class="dropdown">
                        <li><a href="https://cwiki.apache.org/confluence/display/NIFI/Contributor+Guide"><i class="fa fa-external-link external-link"></i>Contributor Guide</a></li>
                        <li><a href="mailing_lists.html">Mailing Lists &amp; Chat</a></li>
                        <li><a href="people.html">People</a></li>
                        <li><a href="powered-by-nifi.html">Powered by NiFi</a></li>
                    </ul>
                </li>
                <li class="has-dropdown">
                    <a href="#">Development</a>
                    <ul class="dropdown">
                        <li><a href="quickstart.html">Quickstart</a></li>
                        <li><a href="developer-guide.html">Developer Guide</a></li>
                        <li><a href="gpg.html">GPG Guide</a></li>
                        <li><a href="release-guide.html">Release Guide</a></li>
                        <li><a href="nifi-maven-release-guide.html">NAR Maven Plugin Release Guide</a></li>
                        <li><a href="fds-release-guide.html">FDS Release Guide</a></li>
                        <li><a href="licensing-guide.html">Licensing Guide</a></li>
                        <li><a href="https://gitbox.apache.org/repos/asf/nifi.git"><i class="fa fa-external-link external-link"></i>Source</a></li>
                        <li><a href="https://issues.apache.org/jira/browse/NIFI"><i class="fa fa-external-link external-link"></i>Issues</a></li>
                        <li><a href="https://github.com/apache/nifi"><i class="fa fa-external-link external-link"></i>GitHub</a></li>
                    </ul>
                </li>
                <li class="has-dropdown">
                    <a href="#">Subprojects</a>
                    <ul class="dropdown">
                        <li><a href="minifi/index.html">MiNiFi</a></li>
                        <li><a href="registry.html">Registry</a></li>
                        <li><a href="fds.html">FDS</a></li>
                    </ul>
                </li>
                <li class="has-dropdown">
                    <a href="#">Apache</a>
                    <ul class="dropdown">
                        <li><a href="https://www.apache.org"><i class="fa fa-external-link external-link"></i>Apache Software Foundation</a></li>
                        <li><a href="https://www.apache.org/licenses/"><i class="fa fa-external-link external-link"></i>License</a></li>
                        <li><a href="https://privacy.apache.org/policies/privacy-policy-public.html"><i class="fa fa-external-link external-link"></i>Privacy Policy</a></li>
                        <li><a href="https://www.apache.org/foundation/sponsorship.html"><i class="fa fa-external-link external-link"></i>Sponsorship</a></li>
                        <li><a href="https://www.apache.org/security/"><i class="fa fa-external-link external-link"></i>Security</a></li>
                        <li><a href="https://www.apache.org/foundation/thanks.html"><i class="fa fa-external-link external-link"></i>Thanks</a></li>
                    </ul>
                </li>
            </ul>
        </section>
    </nav>
</div>

          <div class="row">
            <div class="large-12 columns">
              <div class="large-space"></div>
	<h1 id="apache-nifi-security">Apache NiFi Security</h1>
<p>Apache NiFi welcomes the responsible reporting of security vulnerabilities. Project Management Committee members will
collaborate and respond to potential vulnerabilities, providing an assessment of the concern and a plan of action to
remediate verified issues.</p>
<h2 id="reporting-policy">Reporting Policy</h2>
<p>Please read the <a href="https://www.apache.org/security/committers.html">Apache Project Security for Committers</a>
policy for general guidelines applicable disclosure of security issues for Apache Software Foundation projects.</p>
<p>Do not perform the following actions after discovering a potential security concern:</p>
<ul>
<li>Open a Jira disclosing a security vulnerability to the public</li>
<li>Send a message to the project mailing lists disclosing a security vulnerability to the public</li>
<li>Send a message to the project Slack instance disclosing a security vulnerability to the public</li>
</ul>
<h2 id="reporting-guidelines">Reporting Guidelines</h2>
<p>Configuring dangerous operating system commands or custom scripts is not a project security vulnerability.
Authenticated and authorized users are responsible for the security of operating system commands and custom
code.</p>
<p>Apache NiFi provides a framework for developing processing pipelines using standard and custom
components. The framework supports configurable permissions that enable authorized users to execute code
using several standard components. Components such as ExecuteProcess and ExecuteStreamCommand support
running operating system commands, while other scripted components support executing custom code using
different programming languages. Configuring these components with untrusted commands or arguments is
contrary to best practices, but it does not constitute of security issue for remediation.</p>
<h2 id="reporting-process">Reporting Process</h2>
<ul>
<li>Notify the project on initial discovery of a potential security vulnerability</li>
<li>Provide a reasonable amount of time for an initial assessment and remediation plan</li>
<li>Limit interaction to accounts under direct control or accounts with explicit permission of the owner</li>
<li>Avoid privacy violations, destruction of data, and interruption or degradation of services</li>
<li>Avoid spamming, social engineering, and methods to manipulate project members</li>
</ul>
<h2 id="reporting-methods">Reporting Methods</h2>
<ul>
<li>Security Mailing List: <a href="mailto:security@nifi.apache.org">security@nifi.apache.org</a>
<ul>
<li>Members of the Project Management Committee monitor this private mailing list and respond to disclosures</li>
</ul>
</li>
</ul>
<h2 id="severity-ratings">Severity Ratings</h2>
<p>Severity ratings represent the determination of project members based on an evaluation of
<a href="https://www.first.org/cvss/">Common Vulnerability Scoring System</a> calculations.</p>
<ul>
<li>Critical: Arbitrary code execution from a remote attacker</li>
<li>High: Compromise of integrity or availability through resource exhaustion</li>
<li>Medium: Requires special configuration settings and significant mitigations are available</li>
<li>Low: Minimal impact and significant difficulty of exploitation</li>
</ul>
<h1 id="published-vulnerabilities">Published Vulnerabilities</h1>
<p>The following announcements include published vulnerabilities that apply directly to Apache NiFi components.</p>
<div class="vulnerability-container">
  <h3 id="CVE-2023-49145">CVE-2023-49145</h3>

  <ul>
    <li>Title: Improper Neutralization of Input in Advanced User Interface for Jolt</li>
    <li>Published: 2023-11-27</li>
    <li>Severity: High</li>
    <li>Products: Apache NiFi</li>
    <li>Affected Versions: 0.7.0 to 1.23.2</li>
    <li>Fixed Versions: 1.24.0</li>
    <li>Reporter: Dr. Oliver Matula, DB Systel GmbH</li>
    <li>References
      <ul>
        <li>
          CVE Record: <a href="https://www.cve.org/CVERecord?id=CVE-2023-49145" target="_blank">CVE-2023-49145</a>
        </li>
        <li>
          NVD Record: <a href="https://nvd.nist.gov/vuln/detail/CVE-2023-49145" target="_blank">CVE-2023-49145</a>
        </li>
        <li>
          Apache Jira Issue: <a href="https://issues.apache.org/jira/browse/NIFI-12403" target="_blank">NIFI-12403</a>
        </li>
        
        <li>
          GitHub Pull Request: <a href="https://github.com/apache/nifi/pull/8060" target="_blank">8060</a>
        </li>
        
      </ul>
    </li>
  </ul>

  <p class="vulnerability-description">
    

Apache NiFi 0.7.0 through 1.23.2 include the JoltTransformJSON Processor, which provides an advanced configuration user
interface that is vulnerable to DOM-based cross-site scripting. If an authenticated user, who is authorized to configure
a JoltTransformJSON Processor, visits a crafted URL, then arbitrary JavaScript code can be executed within the session
context of the authenticated user. Upgrading to Apache NiFi 1.24.0 or 2.0.0-M1 is the recommended mitigation.


  </p>
</div>
<div class="vulnerability-container">
  <h3 id="CVE-2023-40037">CVE-2023-40037</h3>

  <ul>
    <li>Title: Incomplete Validation of JDBC and JNDI Connection URLs</li>
    <li>Published: 2023-08-18</li>
    <li>Severity: Medium</li>
    <li>Products: Apache NiFi</li>
    <li>Affected Versions: 1.21.0 to 1.23.0</li>
    <li>Fixed Versions: 1.23.1</li>
    <li>Reporter: Matei &#39;Mal&#39; Badanoiu</li>
    <li>References
      <ul>
        <li>
          CVE Record: <a href="https://www.cve.org/CVERecord?id=CVE-2023-40037" target="_blank">CVE-2023-40037</a>
        </li>
        <li>
          NVD Record: <a href="https://nvd.nist.gov/vuln/detail/CVE-2023-40037" target="_blank">CVE-2023-40037</a>
        </li>
        <li>
          Apache Jira Issue: <a href="https://issues.apache.org/jira/browse/NIFI-11920" target="_blank">NIFI-11920</a>
        </li>
        
        <li>
          GitHub Pull Request: <a href="https://github.com/apache/nifi/pull/7586" target="_blank">7586</a>
        </li>
        
      </ul>
    </li>
  </ul>

  <p class="vulnerability-description">
    

Apache NiFi 1.21.0 through 1.23.0 support JDBC and JNDI JMS access in several Processors and Controller Services with
connection URL validation that does not provide sufficient protection against crafted inputs. An authenticated and
authorized user can bypass connection URL validation using custom input formatting. The resolution enhances connection
URL validation and introduces validation for additional related properties. Upgrading to Apache NiFi 1.23.1 is the
recommended mitigation.


  </p>
</div>
<div class="vulnerability-container">
  <h3 id="CVE-2023-36542">CVE-2023-36542</h3>

  <ul>
    <li>Title: Potential Code Injection with Properties Referencing Remote Resources</li>
    <li>Published: 2023-07-28</li>
    <li>Severity: Medium</li>
    <li>Products: Apache NiFi</li>
    <li>Affected Versions: 0.0.2 to 1.22.0</li>
    <li>Fixed Versions: 1.23.0</li>
    <li>Reporter: nbxiglk</li>
    <li>References
      <ul>
        <li>
          CVE Record: <a href="https://www.cve.org/CVERecord?id=CVE-2023-36542" target="_blank">CVE-2023-36542</a>
        </li>
        <li>
          NVD Record: <a href="https://nvd.nist.gov/vuln/detail/CVE-2023-36542" target="_blank">CVE-2023-36542</a>
        </li>
        <li>
          Apache Jira Issue: <a href="https://issues.apache.org/jira/browse/NIFI-11744" target="_blank">NIFI-11744</a>
        </li>
        
        <li>
          GitHub Pull Request: <a href="https://github.com/apache/nifi/pull/7426" target="_blank">7426</a>
        </li>
        
      </ul>
    </li>
  </ul>

  <p class="vulnerability-description">
    

Apache NiFi 0.0.2 through 1.22.0 include Processors and Controller Services that support HTTP URL references for
retrieving drivers, which allows an authenticated and authorized user to configure a location that enables custom code
execution. The resolution introduces a new Required Permission for referencing remote resources, restricting
configuration of these components to privileged users. The permission prevents unprivileged users from configuring
Processors and Controller Services annotated with the new Reference Remote Resources restriction. Upgrading to Apache
NiFi 1.23.0 is the recommended mitigation.


  </p>
</div>
<div class="vulnerability-container">
  <h3 id="CVE-2023-34468">CVE-2023-34468</h3>

  <ul>
    <li>Title: Potential Code Injection with Database Services using H2</li>
    <li>Published: 2023-06-12</li>
    <li>Severity: Medium</li>
    <li>Products: Apache NiFi</li>
    <li>Affected Versions: 0.0.2 to 1.21.0</li>
    <li>Fixed Versions: 1.22.0</li>
    <li>Reporter: Matei &#39;Mal&#39; Badanoiu</li>
    <li>References
      <ul>
        <li>
          CVE Record: <a href="https://www.cve.org/CVERecord?id=CVE-2023-34468" target="_blank">CVE-2023-34468</a>
        </li>
        <li>
          NVD Record: <a href="https://nvd.nist.gov/vuln/detail/CVE-2023-34468" target="_blank">CVE-2023-34468</a>
        </li>
        <li>
          Apache Jira Issue: <a href="https://issues.apache.org/jira/browse/NIFI-11653" target="_blank">NIFI-11653</a>
        </li>
        
        <li>
          GitHub Pull Request: <a href="https://github.com/apache/nifi/pull/7349" target="_blank">7349</a>
        </li>
        
      </ul>
    </li>
  </ul>

  <p class="vulnerability-description">
    

The DBCPConnectionPool and HikariCPConnectionPool Controller Services in Apache NiFi 0.0.2 through 1.21.0 allow an
authenticated and authorized user to configure a Database URL with the H2 driver that enables custom code execution.
The resolution validates the Database URL and rejects H2 JDBC locations. Upgrading to NiFi 1.22.0 disables H2 JDBC URLs
in the default configuration.


  </p>
</div>
<div class="vulnerability-container">
  <h3 id="CVE-2023-34212">CVE-2023-34212</h3>

  <ul>
    <li>Title: Potential Deserialization of Untrusted Data with JNDI in JMS Components</li>
    <li>Published: 2023-06-12</li>
    <li>Severity: Medium</li>
    <li>Products: Apache NiFi</li>
    <li>Affected Versions: 1.8.0 to 1.21.0</li>
    <li>Fixed Versions: 1.22.0</li>
    <li>Reporter: Veraxy00 of Qianxin TI Center and Matei &#39;Mal&#39; Badanoiu</li>
    <li>References
      <ul>
        <li>
          CVE Record: <a href="https://www.cve.org/CVERecord?id=CVE-2023-34212" target="_blank">CVE-2023-34212</a>
        </li>
        <li>
          NVD Record: <a href="https://nvd.nist.gov/vuln/detail/CVE-2023-34212" target="_blank">CVE-2023-34212</a>
        </li>
        <li>
          Apache Jira Issue: <a href="https://issues.apache.org/jira/browse/NIFI-11614" target="_blank">NIFI-11614</a>
        </li>
        
        <li>
          GitHub Pull Request: <a href="https://github.com/apache/nifi/pull/7313" target="_blank">7313</a>
        </li>
        
      </ul>
    </li>
  </ul>

  <p class="vulnerability-description">
    

The JndiJmsConnectionFactoryProvider Controller Service along with the ConsumeJMS and PublishJMS Processors, in Apache
NiFi 1.8.0 through 1.21.0 allow an authenticated and authorized user to configure URL and library properties that enable
deserialization of untrusted data from a remote location. The resolution validates the JNDI URL and restricts locations
to a set of allowed schemes. Upgrading to NiFi 1.22.0 disables LDAP for JNDI URLs in the default configuration.


  </p>
</div>
<div class="vulnerability-container">
  <h3 id="CVE-2023-22832">CVE-2023-22832</h3>

  <ul>
    <li>Title: Improper Restriction of XML External Entity References in ExtractCCDAAttributes</li>
    <li>Published: 2023-02-09</li>
    <li>Severity: Medium</li>
    <li>Products: Apache NiFi</li>
    <li>Affected Versions: 1.2.0 to 1.19.1</li>
    <li>Fixed Versions: 1.20.0</li>
    <li>Reporter: Yi Cai of Chaitin Tech</li>
    <li>References
      <ul>
        <li>
          CVE Record: <a href="https://www.cve.org/CVERecord?id=CVE-2023-22832" target="_blank">CVE-2023-22832</a>
        </li>
        <li>
          NVD Record: <a href="https://nvd.nist.gov/vuln/detail/CVE-2023-22832" target="_blank">CVE-2023-22832</a>
        </li>
        <li>
          Apache Jira Issue: <a href="https://issues.apache.org/jira/browse/NIFI-11029" target="_blank">NIFI-11029</a>
        </li>
        
        <li>
          GitHub Pull Request: <a href="https://github.com/apache/nifi/pull/6828" target="_blank">6828</a>
        </li>
        
      </ul>
    </li>
  </ul>

  <p class="vulnerability-description">
    

The ExtractCCDAAttributes Processor in Apache NiFi 1.2.0 through 1.19.1 does not restrict XML External Entity
references. Flow configurations that include the ExtractCCDAAttributes Processor are vulnerable to malicious XML
documents that contain Document Type Declarations with XML External Entity references. The resolution disables Document
Type Declarations and disallows XML External Entity resolution in the ExtractCCDAAttributes Processor. Upgrading to NiFi
1.20.0 disables Document Type Declarations in the default configuration for ExtractCCDAAttributes.


  </p>
</div>
<div class="vulnerability-container">
  <h3 id="CVE-2022-33140">CVE-2022-33140</h3>

  <ul>
    <li>Title: Improper Neutralization of Command Elements in Shell User Group Provider</li>
    <li>Published: 2022-06-15</li>
    <li>Severity: High</li>
    <li>Products: Apache NiFi and Apache NiFi Registry</li>
    <li>Affected Versions: 1.10.0 to 1.16.2</li>
    <li>Fixed Versions: 1.20.0</li>
    <li>Reporter: Anonymous</li>
    <li>References
      <ul>
        <li>
          CVE Record: <a href="https://www.cve.org/CVERecord?id=CVE-2022-33140" target="_blank">CVE-2022-33140</a>
        </li>
        <li>
          NVD Record: <a href="https://nvd.nist.gov/vuln/detail/CVE-2022-33140" target="_blank">CVE-2022-33140</a>
        </li>
        <li>
          Apache Jira Issue: <a href="https://issues.apache.org/jira/browse/NIFI-10114" target="_blank">NIFI-10114</a>
        </li>
        
        <li>
          GitHub Pull Request: <a href="https://github.com/apache/nifi/pull/6122" target="_blank">6122</a>
        </li>
        
      </ul>
    </li>
  </ul>

  <p class="vulnerability-description">
    

The optional ShellUserGroupProvider in Apache NiFi 1.10.0 to 1.16.2 and Apache NiFi Registry 0.6.0 to 1.16.2 does not
neutralize arguments for group resolution commands, allowing injection of operating system commands on Linux and macOS
platforms. The ShellUserGroupProvider is not included in the default configuration. Command injection requires
ShellUserGroupProvider to be one of the enabled User Group Providers in the Authorizers configuration. Command injection
also requires an authenticated user with elevated privileges. Apache NiFi requires an authenticated user with
authorization to modify access policies to execute the command. Apache NiFi Registry requires an authenticated user with
authorization to read user groups to execute the command. NiFi and NiFi Registry version 1.16.3 has completely removed
the shell commands from the ShellUserGroupProvider that received user arguments.


  </p>
</div>
<div class="vulnerability-container">
  <h3 id="CVE-2022-29265">CVE-2022-29265</h3>

  <ul>
    <li>Title: Improper Restriction of XML External Entity References in Multiple Components</li>
    <li>Published: 2022-04-29</li>
    <li>Severity: Medium</li>
    <li>Products: Apache NiFi</li>
    <li>Affected Versions: 0.0.1 to 1.16.0</li>
    <li>Fixed Versions: 1.16.1</li>
    <li>Reporter: David Handermann at exceptionfactory.com</li>
    <li>References
      <ul>
        <li>
          CVE Record: <a href="https://www.cve.org/CVERecord?id=CVE-2022-29265" target="_blank">CVE-2022-29265</a>
        </li>
        <li>
          NVD Record: <a href="https://nvd.nist.gov/vuln/detail/CVE-2022-29265" target="_blank">CVE-2022-29265</a>
        </li>
        <li>
          Apache Jira Issue: <a href="https://issues.apache.org/jira/browse/NIFI-9901" target="_blank">NIFI-9901</a>
        </li>
        
        <li>
          GitHub Pull Request: <a href="https://github.com/apache/nifi/pull/5962" target="_blank">5962</a>
        </li>
        
      </ul>
    </li>
  </ul>

  <p class="vulnerability-description">
    

Multiple components in Apache NiFi 0.0.1 to 1.16.0 do not restrict XML External Entity references in the default
configuration. The Standard Content Viewer service attempts to resolve XML External Entity references when viewing
formatted XML files. The following Processors attempt to resolve XML External Entity references when configured with
default property values: EvaluateXPath, EvaluateXQuery, and ValidateXml. Apache NiFi flow configurations that include
these Processors are vulnerable to malicious XML documents that contain Document Type Declarations with XML External
Entity references. Upgrading to NiFi 1.16.1 disables Document Type Declarations in the default configuration for these
processors, and disallows XML External Entity resolution in standard services.


  </p>
</div>
<div class="vulnerability-container">
  <h3 id="CVE-2022-26850">CVE-2022-26850</h3>

  <ul>
    <li>Title: Insufficiently Protected Credentials for Single-User Authentication</li>
    <li>Published: 2022-03-27</li>
    <li>Severity: Low</li>
    <li>Products: Apache NiFi</li>
    <li>Affected Versions: 1.14.0 to 1.15.3</li>
    <li>Fixed Versions: 1.16.0</li>
    <li>Reporter: Jonathan Leitschuh at twitter.com/jlleitschuh</li>
    <li>References
      <ul>
        <li>
          CVE Record: <a href="https://www.cve.org/CVERecord?id=CVE-2022-26850" target="_blank">CVE-2022-26850</a>
        </li>
        <li>
          NVD Record: <a href="https://nvd.nist.gov/vuln/detail/CVE-2022-26850" target="_blank">CVE-2022-26850</a>
        </li>
        <li>
          Apache Jira Issue: <a href="https://issues.apache.org/jira/browse/NIFI-9785" target="_blank">NIFI-9785</a>
        </li>
        
        <li>
          GitHub Pull Request: <a href="https://github.com/apache/nifi/pull/5856" target="_blank">5856</a>
        </li>
        
      </ul>
    </li>
  </ul>

  <p class="vulnerability-description">
    

When creating or updating credentials for single-user access, NiFi wrote a copy of the Login Identity Providers
configuration to the operating system temporary directory. The Login Identity Providers configuration file contains the
username and a bcrypt hash of the configured password. On most platforms, the operating system temporary directory has
global read permissions. NiFi immediately moved the temporary file to the final configuration directory, which
significantly limited the window of opportunity for access. Bcrypt is a password-hashing algorithm that incorporates a
random salt and a specified cost factor, designed to maintain resistance to brute-force attacks. Use of the bcrypt
algorithm minimizes the impact of disclosing the single-user credentials stored in Login Identity Providers. NiFi 1.16.0
includes updates to replace the Login Identity Providers configuration without writing a file to the operating system
temporary directory.


  </p>
</div>
<div class="vulnerability-container">
  <h3 id="CVE-2021-44145">CVE-2021-44145</h3>

  <ul>
    <li>Title: Potential Information Disclosure through XML External Entity Resoltion in TransformXML</li>
    <li>Published: 2021-12-15</li>
    <li>Severity: Low</li>
    <li>Products: Apache NiFi</li>
    <li>Affected Versions: 0.1.0 to 1.15.0</li>
    <li>Fixed Versions: 1.15.1</li>
    <li>Reporter: DangKhai at Viettel Cyber Security</li>
    <li>References
      <ul>
        <li>
          CVE Record: <a href="https://www.cve.org/CVERecord?id=CVE-2021-44145" target="_blank">CVE-2021-44145</a>
        </li>
        <li>
          NVD Record: <a href="https://nvd.nist.gov/vuln/detail/CVE-2021-44145" target="_blank">CVE-2021-44145</a>
        </li>
        <li>
          Apache Jira Issue: <a href="https://issues.apache.org/jira/browse/NIFI-9399" target="_blank">NIFI-9399</a>
        </li>
        
        <li>
          GitHub Pull Request: <a href="https://github.com/apache/nifi/pull/5542" target="_blank">5542</a>
        </li>
        
      </ul>
    </li>
  </ul>

  <p class="vulnerability-description">
    

In the TransformXML processor, an authenticated user could configure an XSLT file which, if it included malicious
external entity calls, may reveal sensitive information. The Secure processing property in TransformXML will now apply
to the configured XSLT file as well as flow files being transformed. Users running any previous NiFi release should
upgrade to 1.15.1.


  </p>
</div>
<div class="vulnerability-container">
  <h3 id="CVE-2020-9486">CVE-2020-9486</h3>

  <ul>
    <li>Title: Potential Information Disclosure in Application Logs</li>
    <li>Published: 2020-08-18</li>
    <li>Severity: Medium</li>
    <li>Products: Apache NiFi</li>
    <li>Affected Versions: 1.10.0 to 1.11.4</li>
    <li>Fixed Versions: 1.12.0</li>
    <li>Reporter: Andy LoPresto and Pierre Villard</li>
    <li>References
      <ul>
        <li>
          CVE Record: <a href="https://www.cve.org/CVERecord?id=CVE-2020-9486" target="_blank">CVE-2020-9486</a>
        </li>
        <li>
          NVD Record: <a href="https://nvd.nist.gov/vuln/detail/CVE-2020-9486" target="_blank">CVE-2020-9486</a>
        </li>
        <li>
          Apache Jira Issue: <a href="https://issues.apache.org/jira/browse/NIFI-7377" target="_blank">NIFI-7377</a>
        </li>
        
        <li>
          GitHub Pull Request: <a href="https://github.com/apache/nifi/pull/4222" target="_blank">4222</a>
        </li>
        
      </ul>
    </li>
  </ul>

  <p class="vulnerability-description">
    

The NiFi stateless execution engine produced log output which included sensitive property values. When a flow was
triggered, the flow definition configuration JSON was printed, potentially containing sensitive values in plaintext.
NiFi 1.12.0 implemented Argon2 secure hashing to provide a deterministic loggable value which does not reveal the
sensitive value. Users running any previous NiFi release should upgrade to 1.12.0.


  </p>
</div>
<div class="vulnerability-container">
  <h3 id="CVE-2020-9487">CVE-2020-9487</h3>

  <ul>
    <li>Title: Potential Denial of Service with Token Authentication Requests</li>
    <li>Published: 2020-08-18</li>
    <li>Severity: Medium</li>
    <li>Products: Apache NiFi</li>
    <li>Affected Versions: 1.0.0 to 1.11.4</li>
    <li>Fixed Versions: 1.12.0</li>
    <li>Reporter: Dennis Detering, IT Security Consultant at Spike Reply</li>
    <li>References
      <ul>
        <li>
          CVE Record: <a href="https://www.cve.org/CVERecord?id=CVE-2020-9487" target="_blank">CVE-2020-9487</a>
        </li>
        <li>
          NVD Record: <a href="https://nvd.nist.gov/vuln/detail/CVE-2020-9487" target="_blank">CVE-2020-9487</a>
        </li>
        <li>
          Apache Jira Issue: <a href="https://issues.apache.org/jira/browse/NIFI-7385" target="_blank">NIFI-7385</a>
        </li>
        
        <li>
          GitHub Pull Request: <a href="https://github.com/apache/nifi/pull/4271" target="_blank">4271</a>
        </li>
        
      </ul>
    </li>
  </ul>

  <p class="vulnerability-description">
    

The NiFi download token (one-time password) mechanism used a fixed cache size and did not authenticate a request to
create a download token, only when attempting to use the token to access the content. An unauthenticated user could
repeatedly request download tokens, preventing legitimate users from requesting download tokens. NiFi 1.12.0 disabled
anonymous authentication, implemented a multi-indexed cache, and limited token creation requests to
one concurrent request per user. Users running any previous NiFi release should upgrade to 1.12.0.


  </p>
</div>
<div class="vulnerability-container">
  <h3 id="CVE-2020-9491">CVE-2020-9491</h3>

  <ul>
    <li>Title: Insecure TLS Protocol Versions for Cluster Communication</li>
    <li>Published: 2020-08-18</li>
    <li>Severity: High</li>
    <li>Products: Apache NiFi</li>
    <li>Affected Versions: 1.2.0 to 1.11.4</li>
    <li>Fixed Versions: 1.12.0</li>
    <li>Reporter: Juan Carlos Sequeiros and Andy LoPresto</li>
    <li>References
      <ul>
        <li>
          CVE Record: <a href="https://www.cve.org/CVERecord?id=CVE-2020-9491" target="_blank">CVE-2020-9491</a>
        </li>
        <li>
          NVD Record: <a href="https://nvd.nist.gov/vuln/detail/CVE-2020-9491" target="_blank">CVE-2020-9491</a>
        </li>
        <li>
          Apache Jira Issue: <a href="https://issues.apache.org/jira/browse/NIFI-7407" target="_blank">NIFI-7407</a>
        </li>
        
        <li>
          GitHub Pull Request: <a href="https://github.com/apache/nifi/pull/4263" target="_blank">4263</a>
        </li>
        
      </ul>
    </li>
  </ul>

  <p class="vulnerability-description">
    

The NiFi UI and API were protected by mandating TLS v1.2, as well as listening connections established by processors
like ListenHTTP and HandleHttpRequest. However intra-cluster communication such as cluster request replication,
Site-to-Site, and load balanced queues continued to support TLS 1.0 or 1.1. NiFI 1.12.0 refactored disparate internal
SSL and TLS code, reducing exposure for extension and framework developers to low-level primitives. NiFi 1.12. also
added support for TLS v1.3 on supporting JVMs. This version restricted all incoming TLS communications to TLS
1.2 or higher. Users running any previous NiFi release should upgrade to 1.12.0.


  </p>
</div>
<div class="vulnerability-container">
  <h3 id="CVE-2020-13940">CVE-2020-13940</h3>

  <ul>
    <li>Title: Potential Information Disclosure through XML External Entity Resolution in Notification Service</li>
    <li>Published: 2020-08-18</li>
    <li>Severity: Low</li>
    <li>Products: Apache NiFi</li>
    <li>Affected Versions: 1.0.0 to 1.11.4</li>
    <li>Fixed Versions: 1.12.0</li>
    <li>Reporter: Matt Burgess and Andy LoPresto</li>
    <li>References
      <ul>
        <li>
          CVE Record: <a href="https://www.cve.org/CVERecord?id=CVE-2020-13940" target="_blank">CVE-2020-13940</a>
        </li>
        <li>
          NVD Record: <a href="https://nvd.nist.gov/vuln/detail/CVE-2020-13940" target="_blank">CVE-2020-13940</a>
        </li>
        <li>
          Apache Jira Issue: <a href="https://issues.apache.org/jira/browse/NIFI-7680" target="_blank">NIFI-7680</a>
        </li>
        
        <li>
          GitHub Pull Request: <a href="https://github.com/apache/nifi/pull/4436" target="_blank">4436</a>
        </li>
        
      </ul>
    </li>
  </ul>

  <p class="vulnerability-description">
    

The notification service manager and various policy authorizer and user group provider objects allowed trusted
administrators to inadvertently configure a potentially malicious XML file. The XML file has the ability to make
external calls to services through XML External Entity resolution. NiFi 1.12.0 introduced an XML validator to prevent
malicious code from being parsed and executed. Users running any previous NiFi release should upgrade to 1.12.0.


  </p>
</div>
<div class="vulnerability-container">
  <h3 id="CVE-2020-9482">CVE-2020-9482</h3>

  <ul>
    <li>Title: Application Bearer Token Remains Valid After Logout Completion</li>
    <li>Published: 2020-04-07</li>
    <li>Severity: Medium</li>
    <li>Products: Apache NiFi Registry</li>
    <li>Affected Versions: 0.1.0 to 0.5.0</li>
    <li>Fixed Versions: 0.6.0</li>
    <li>Reporter: Andy LoPresto</li>
    <li>References
      <ul>
        <li>
          CVE Record: <a href="https://www.cve.org/CVERecord?id=CVE-2020-9482" target="_blank">CVE-2020-9482</a>
        </li>
        <li>
          NVD Record: <a href="https://nvd.nist.gov/vuln/detail/CVE-2020-9482" target="_blank">CVE-2020-9482</a>
        </li>
        <li>
          Apache Jira Issue: <a href="https://issues.apache.org/jira/browse/NIFIREG-361" target="_blank">NIFIREG-361</a>
        </li>
        
      </ul>
    </li>
  </ul>

  <p class="vulnerability-description">
    

If NiFi Registry uses an authentication mechanism other than PKI, when the user clicks Log Out, NiFi Registry
invalidates the authentication token on the client side but not on the server side. This permits the user's client-side
token to be used for up to 12 hours after logging out to make API requests to NiFi Registry. NiFi Registry 0.6.0
invalidates the server-side authentication token immediately after the user clicks the Log Out link.


  </p>
</div>
<div class="vulnerability-container">
  <h3 id="CVE-2020-1942">CVE-2020-1942</h3>

  <ul>
    <li>Title: Potential Information Disclosure in Application Logs</li>
    <li>Published: 2020-02-04</li>
    <li>Severity: Medium</li>
    <li>Products: Apache NiFi</li>
    <li>Affected Versions: 0.0.1 to 1.11.0</li>
    <li>Fixed Versions: 1.11.1</li>
    <li>Reporter: Andy LoPresto</li>
    <li>References
      <ul>
        <li>
          CVE Record: <a href="https://www.cve.org/CVERecord?id=CVE-2020-1942" target="_blank">CVE-2020-1942</a>
        </li>
        <li>
          NVD Record: <a href="https://nvd.nist.gov/vuln/detail/CVE-2020-1942" target="_blank">CVE-2020-1942</a>
        </li>
        <li>
          Apache Jira Issue: <a href="https://issues.apache.org/jira/browse/NIFI-7079" target="_blank">NIFI-7079</a>
        </li>
        
        <li>
          GitHub Pull Request: <a href="https://github.com/apache/nifi/pull/4208" target="_blank">4208</a>
        </li>
        
      </ul>
    </li>
  </ul>

  <p class="vulnerability-description">
    

The flow fingerprint factory generated flow fingerprints which included sensitive property descriptor values. In the
event a node attempted to join a cluster and the cluster flow was not inheritable, the flow fingerprint of both the
cluster and local flow was printed, potentially containing sensitive values in plaintext. NiFi 1.11.1i implemented
Argon2 secure hashing to provide a deterministic loggable value which does not reveal the sensitive value. Users running
any previous NiFi release should upgrade to 1.11.1.


  </p>
</div>
<div class="vulnerability-container">
  <h3 id="CVE-2020-1928">CVE-2020-1928</h3>

  <ul>
    <li>Title: Potential Information Disclosure in Application Debug Logs</li>
    <li>Published: 2020-01-22</li>
    <li>Severity: Medium</li>
    <li>Products: Apache NiFi</li>
    <li>Affected Versions: 1.10.0</li>
    <li>Fixed Versions: 1.11.0</li>
    <li>Reporter: Andy LoPresto</li>
    <li>References
      <ul>
        <li>
          CVE Record: <a href="https://www.cve.org/CVERecord?id=CVE-2020-1928" target="_blank">CVE-2020-1928</a>
        </li>
        <li>
          NVD Record: <a href="https://nvd.nist.gov/vuln/detail/CVE-2020-1928" target="_blank">CVE-2020-1928</a>
        </li>
        <li>
          Apache Jira Issue: <a href="https://issues.apache.org/jira/browse/NIFI-6948" target="_blank">NIFI-6948</a>
        </li>
        
        <li>
          GitHub Pull Request: <a href="https://github.com/apache/nifi/pull/3935" target="_blank">3935</a>
        </li>
        
      </ul>
    </li>
  </ul>

  <p class="vulnerability-description">
    

The sensitive parameter parser would log parsed property descriptor values for debugging purposes. This would expose
literal values entered a sensitive property when no parameter was present. NiFi 1.11.0 removed debug logging from the
class. Users running the 1.10.0 release should upgrade to 1.11.0.


  </p>
</div>
<div class="vulnerability-container">
  <h3 id="CVE-2020-1933">CVE-2020-1933</h3>

  <ul>
    <li>Title: Potential Cross-Site Scripting in Uploaded Templates</li>
    <li>Published: 2020-01-22</li>
    <li>Severity: Medium</li>
    <li>Products: Apache NiFi</li>
    <li>Affected Versions: 1.0.0 to 1.10.0</li>
    <li>Fixed Versions: 1.11.0</li>
    <li>Reporter: Jakub Palaczynski of ING Tech Poland</li>
    <li>References
      <ul>
        <li>
          CVE Record: <a href="https://www.cve.org/CVERecord?id=CVE-2020-1933" target="_blank">CVE-2020-1933</a>
        </li>
        <li>
          NVD Record: <a href="https://nvd.nist.gov/vuln/detail/CVE-2020-1933" target="_blank">CVE-2020-1933</a>
        </li>
        <li>
          Apache Jira Issue: <a href="https://issues.apache.org/jira/browse/NIFI-7023" target="_blank">NIFI-7023</a>
        </li>
        
        <li>
          GitHub Pull Request: <a href="https://github.com/apache/nifi/pull/3991" target="_blank">3991</a>
        </li>
        
      </ul>
    </li>
  </ul>

  <p class="vulnerability-description">
    

Malicious scripts could be injected to the UI through action by an unaware authenticated user in Firefox. Did not appear
to occur in other browsers. NiFi 1.11.0 adds sanitization of the error response ensures the XSS would not be executed.
Users running earlier versions should upgrade to 1.11.0.


  </p>
</div>
<div class="vulnerability-container">
  <h3 id="CVE-2019-10080">CVE-2019-10080</h3>

  <ul>
    <li>Title: Potential Information Disclosure through XML External Entity Resolution in File Lookup Service</li>
    <li>Published: 2019-11-04</li>
    <li>Severity: Low</li>
    <li>Products: Apache NiFi</li>
    <li>Affected Versions: 1.3.0 to 1.9.2</li>
    <li>Fixed Versions: 1.10.0</li>
    <li>Reporter: RunningSnail</li>
    <li>References
      <ul>
        <li>
          CVE Record: <a href="https://www.cve.org/CVERecord?id=CVE-2019-10080" target="_blank">CVE-2019-10080</a>
        </li>
        <li>
          NVD Record: <a href="https://nvd.nist.gov/vuln/detail/CVE-2019-10080" target="_blank">CVE-2019-10080</a>
        </li>
        <li>
          Apache Jira Issue: <a href="https://issues.apache.org/jira/browse/NIFI-6301" target="_blank">NIFI-6301</a>
        </li>
        
        <li>
          GitHub Pull Request: <a href="https://github.com/apache/nifi/pull/3507" target="_blank">3507</a>
        </li>
        
      </ul>
    </li>
  </ul>

  <p class="vulnerability-description">
    

The XMLFileLookupService allowed trusted users to inadvertently configure a potentially malicious XML file. The XML file
has the ability to make external calls to services using XML External Entity resolution and reveal information such as
the versions of Java, Jersey, and Apache that the NiFI instance uses. NiFi 1.10.0 adds a validator to ensure the XML
file is not malicious. Users running a prior release should upgrade to 1.10.0.


  </p>
</div>
<div class="vulnerability-container">
  <h3 id="CVE-2019-12421">CVE-2019-12421</h3>

  <ul>
    <li>Title: Application Bearer Token Remains Valid After Logout Completion</li>
    <li>Published: 2019-11-04</li>
    <li>Severity: Medium</li>
    <li>Products: Apache NiFi</li>
    <li>Affected Versions: 1.0.0 to 1.9.2</li>
    <li>Fixed Versions: 1.10.0</li>
    <li>Reporter: Abdu Sahin</li>
    <li>References
      <ul>
        <li>
          CVE Record: <a href="https://www.cve.org/CVERecord?id=CVE-2019-12421" target="_blank">CVE-2019-12421</a>
        </li>
        <li>
          NVD Record: <a href="https://nvd.nist.gov/vuln/detail/CVE-2019-12421" target="_blank">CVE-2019-12421</a>
        </li>
        <li>
          Apache Jira Issue: <a href="https://issues.apache.org/jira/browse/NIFI-6085" target="_blank">NIFI-6085</a>
        </li>
        
        <li>
          GitHub Pull Request: <a href="https://github.com/apache/nifi/pull/3362" target="_blank">3362</a>
        </li>
        
      </ul>
    </li>
  </ul>

  <p class="vulnerability-description">
    

If NiFi uses an authentication mechanism other than PKI, when the user clicks Log Out, NiFi invalidates the
authentication token on the client side but not on the server side. This permits the user's client-side token to be used
for up to 12 hours after logging out to make API requests to NiFi. NiFi 1.10.0 invalidates the server-side
authentication token immediately after the user clicks the Log Out link. Users running a prior release should
upgrade to 1.10.0.


  </p>
</div>
<div class="vulnerability-container">
  <h3 id="CVE-2019-10083">CVE-2019-10083</h3>

  <ul>
    <li>Title: Potential Information Disclosure in Process Group Resources</li>
    <li>Published: 2019-11-04</li>
    <li>Severity: Medium</li>
    <li>Products: Apache NiFi</li>
    <li>Affected Versions: 1.0.0 to 1.9.2</li>
    <li>Fixed Versions: 1.10.0</li>
    <li>Reporter: Mark Payne</li>
    <li>References
      <ul>
        <li>
          CVE Record: <a href="https://www.cve.org/CVERecord?id=CVE-2019-10083" target="_blank">CVE-2019-10083</a>
        </li>
        <li>
          NVD Record: <a href="https://nvd.nist.gov/vuln/detail/CVE-2019-10083" target="_blank">CVE-2019-10083</a>
        </li>
        <li>
          Apache Jira Issue: <a href="https://issues.apache.org/jira/browse/NIFI-6302" target="_blank">NIFI-6302</a>
        </li>
        
        <li>
          GitHub Pull Request: <a href="https://github.com/apache/nifi/pull/3477" target="_blank">3477</a>
        </li>
        
      </ul>
    </li>
  </ul>

  <p class="vulnerability-description">
    

When updating a Process Group via the API, the response to the request includes all of its contents (at the top most
level, not recursively). The response included details about processors and controller services which the user may not
have had read access to. Requests to update or remove the process group will no longer return the contents of the
process group in the response in Apache NiFi 1.10.0. Users running a prior release should upgrade to 1.10.0.


  </p>
</div>
<div class="vulnerability-container">
  <h3 id="CVE-2018-17192">CVE-2018-17192</h3>

  <ul>
    <li>Title: Improper Restriction of Browser Frame Access</li>
    <li>Published: 2018-10-26</li>
    <li>Severity: Low</li>
    <li>Products: Apache NiFi</li>
    <li>Affected Versions: 1.0.0 to 1.6.0</li>
    <li>Fixed Versions: 1.8.0</li>
    <li>Reporter: Suchithra V N</li>
    <li>References
      <ul>
        <li>
          CVE Record: <a href="https://www.cve.org/CVERecord?id=CVE-2018-17192" target="_blank">CVE-2018-17192</a>
        </li>
        <li>
          NVD Record: <a href="https://nvd.nist.gov/vuln/detail/CVE-2018-17192" target="_blank">CVE-2018-17192</a>
        </li>
        <li>
          Apache Jira Issue: <a href="https://issues.apache.org/jira/browse/NIFI-5258" target="_blank">NIFI-5258</a>
        </li>
        
        <li>
          GitHub Pull Request: <a href="https://github.com/apache/nifi/pull/2759" target="_blank">2759</a>
        </li>
        
      </ul>
    </li>
  </ul>

  <p class="vulnerability-description">
    

The X-Frame-Options headers were applied inconsistently on some HTTP responses, resulting in duplicate or missing
security headers. Some browsers would interpret these results incorrectly, allowing clickjacking attacks. NiFi 1.8.0
consistently applies the security headers including X-Frame-Options. Users running a prior release should upgrade to
1.8.0.


  </p>
</div>
<div class="vulnerability-container">
  <h3 id="CVE-2018-17193">CVE-2018-17193</h3>

  <ul>
    <li>Title: Improper Neutralization of Input in Proxy Request Headers</li>
    <li>Published: 2018-10-26</li>
    <li>Severity: Medium</li>
    <li>Products: Apache NiFi</li>
    <li>Affected Versions: 1.0.0 to 1.7.1</li>
    <li>Fixed Versions: 1.8.0</li>
    <li>Reporter: Dan Fike with assistance from Patrick White</li>
    <li>References
      <ul>
        <li>
          CVE Record: <a href="https://www.cve.org/CVERecord?id=CVE-2018-17193" target="_blank">CVE-2018-17193</a>
        </li>
        <li>
          NVD Record: <a href="https://nvd.nist.gov/vuln/detail/CVE-2018-17193" target="_blank">CVE-2018-17193</a>
        </li>
        <li>
          Apache Jira Issue: <a href="https://issues.apache.org/jira/browse/NIFI-5442" target="_blank">NIFI-5442</a>
        </li>
        
        <li>
          GitHub Pull Request: <a href="https://github.com/apache/nifi/pull/2908" target="_blank">2908</a>
        </li>
        
      </ul>
    </li>
  </ul>

  <p class="vulnerability-description">
    

The message-page.jsp error page used the value of the HTTP request header X-ProxyContextPath without sanitization,
resulting in a potential reflected cross-site scripting attack. NiFi 1.8.0 correctly parses and sanitizes the request
attribute value. Users running a prior release should upgrade to 1.8.0.


  </p>
</div>
<div class="vulnerability-container">
  <h3 id="CVE-2018-17194">CVE-2018-17194</h3>

  <ul>
    <li>Title: Potential Denial of Service with HTTP DELETE Cluster Replication Requests</li>
    <li>Published: 2018-10-26</li>
    <li>Severity: Medium</li>
    <li>Products: Apache NiFi</li>
    <li>Affected Versions: 1.0.0 to 1.7.1</li>
    <li>Fixed Versions: 1.8.0</li>
    <li>Reporter: Mike Cole and Andy LoPresto</li>
    <li>References
      <ul>
        <li>
          CVE Record: <a href="https://www.cve.org/CVERecord?id=CVE-2018-17194" target="_blank">CVE-2018-17194</a>
        </li>
        <li>
          NVD Record: <a href="https://nvd.nist.gov/vuln/detail/CVE-2018-17194" target="_blank">CVE-2018-17194</a>
        </li>
        <li>
          Apache Jira Issue: <a href="https://issues.apache.org/jira/browse/NIFI-5628" target="_blank">NIFI-5628</a>
        </li>
        
        <li>
          GitHub Pull Request: <a href="https://github.com/apache/nifi/pull/3035" target="_blank">3035</a>
        </li>
        
      </ul>
    </li>
  </ul>

  <p class="vulnerability-description">
    

When a client request to a cluster node was replicated to other nodes in the cluster for verification, the
Content-Length was forwarded. On a DELETE request, the body was ignored, but if the initial request had a Content-Length
value other than 0, the receiving nodes would wait for the body and eventually timeout. NiFi 1.8.0 checks DELETE
requests and overwrites non-zero Content-Length header. Users running a prior release should upgrade to 1.8.0.


  </p>
</div>
<div class="vulnerability-container">
  <h3 id="CVE-2018-17195">CVE-2018-17195</h3>

  <ul>
    <li>Title: Potential Cross-Site Request Forgery in Template Upload Resources</li>
    <li>Published: 2018-10-26</li>
    <li>Severity: Critical</li>
    <li>Products: Apache NiFi</li>
    <li>Affected Versions: 1.0.0 to 1.7.1</li>
    <li>Fixed Versions: 1.8.0</li>
    <li>Reporter: Mike Cole</li>
    <li>References
      <ul>
        <li>
          CVE Record: <a href="https://www.cve.org/CVERecord?id=CVE-2018-17195" target="_blank">CVE-2018-17195</a>
        </li>
        <li>
          NVD Record: <a href="https://nvd.nist.gov/vuln/detail/CVE-2018-17195" target="_blank">CVE-2018-17195</a>
        </li>
        <li>
          Apache Jira Issue: <a href="https://issues.apache.org/jira/browse/NIFI-5595" target="_blank">NIFI-5595</a>
        </li>
        
        <li>
          GitHub Pull Request: <a href="https://github.com/apache/nifi/pull/3024" target="_blank">3024</a>
        </li>
        
      </ul>
    </li>
  </ul>

  <p class="vulnerability-description">
    

The template upload API endpoint accepted requests from different domain when sent in conjunction with ARP spoofing and
meddler in the middle (MITM) intervention, resulting in cross-site request forgery. The required attack vector is
complex, requiring a scenario with client certificate authentication, same subnet access, and injecting malicious code
into an unprotected (plaintext HTTP) website which the targeted user later visits, but the possible damage warranted a
Critical severity level. NiFi 1.8.0 applies Cross-Origin Resource Sharing (CORS) policy request filtering. Users running
a prior release should upgrade to 1.8.0.


  </p>
</div>
<div class="vulnerability-container">
  <h3 id="CVE-2018-1309">CVE-2018-1309</h3>

  <ul>
    <li>Title: Improper Restriction of XML External Entity References in SplitXml</li>
    <li>Published: 2018-04-08</li>
    <li>Severity: Medium</li>
    <li>Products: Apache NiFi</li>
    <li>Affected Versions: 0.1.0 to 1.5.0</li>
    <li>Fixed Versions: 1.6.0</li>
    <li>Reporter: 圆珠笔</li>
    <li>References
      <ul>
        <li>
          CVE Record: <a href="https://www.cve.org/CVERecord?id=CVE-2018-1309" target="_blank">CVE-2018-1309</a>
        </li>
        <li>
          NVD Record: <a href="https://nvd.nist.gov/vuln/detail/CVE-2018-1309" target="_blank">CVE-2018-1309</a>
        </li>
        <li>
          Apache Jira Issue: <a href="https://issues.apache.org/jira/browse/NIFI-4869" target="_blank">NIFI-4869</a>
        </li>
        
        <li>
          GitHub Pull Request: <a href="https://github.com/apache/nifi/pull/2466" target="_blank">2466</a>
        </li>
        
      </ul>
    </li>
  </ul>

  <p class="vulnerability-description">
    

Malicious XML content could cause information disclosure or remote code execution in the SplitXml Processor. NiFi 1.6.0
disables external general entity parsing and disallows document type declarations in SplitXml. Users running a prior
release should upgrade to 1.6.0.


  </p>
</div>
<div class="vulnerability-container">
  <h3 id="CVE-2018-1310">CVE-2018-1310</h3>

  <ul>
    <li>Title: Potential Denial of Service in JMS Processors</li>
    <li>Published: 2018-04-08</li>
    <li>Severity: Medium</li>
    <li>Products: Apache NiFi</li>
    <li>Affected Versions: 0.1.0 to 1.5.0</li>
    <li>Fixed Versions: 1.6.0</li>
    <li>Reporter: 圆珠笔</li>
    <li>References
      <ul>
        <li>
          CVE Record: <a href="https://www.cve.org/CVERecord?id=CVE-2018-1310" target="_blank">CVE-2018-1310</a>
        </li>
        <li>
          NVD Record: <a href="https://nvd.nist.gov/vuln/detail/CVE-2018-1310" target="_blank">CVE-2018-1310</a>
        </li>
        <li>
          Apache Jira Issue: <a href="https://issues.apache.org/jira/browse/NIFI-4870" target="_blank">NIFI-4870</a>
        </li>
        
        <li>
          GitHub Pull Request: <a href="https://github.com/apache/nifi/pull/2469" target="_blank">2469</a>
        </li>
        
      </ul>
    </li>
  </ul>

  <p class="vulnerability-description">
    

Malicious JMS content could cause denial of service in impacted Processors. See ActiveMQ CVE-2015-5254 announcement for
more information. NiFi 1.6.0 upgrades the activemq-client library to 5.15.3. Users running a prior release should
upgrade to 1.6.0.


  </p>
</div>
<div class="vulnerability-container">
  <h3 id="CVE-2017-12632">CVE-2017-12632</h3>

  <ul>
    <li>Title: Improper Input Validation of HTTP Host Request Headers</li>
    <li>Published: 2018-01-12</li>
    <li>Severity: Medium</li>
    <li>Products: Apache NiFi</li>
    <li>Affected Versions: 0.1.0 to 1.4.0</li>
    <li>Fixed Versions: 1.5.0</li>
    <li>Reporter: Mike Cole</li>
    <li>References
      <ul>
        <li>
          CVE Record: <a href="https://www.cve.org/CVERecord?id=CVE-2017-12632" target="_blank">CVE-2017-12632</a>
        </li>
        <li>
          NVD Record: <a href="https://nvd.nist.gov/vuln/detail/CVE-2017-12632" target="_blank">CVE-2017-12632</a>
        </li>
        <li>
          Apache Jira Issue: <a href="https://issues.apache.org/jira/browse/NIFI-4501" target="_blank">NIFI-4501</a>
        </li>
        
        <li>
          GitHub Pull Request: <a href="https://github.com/apache/nifi/pull/2279" target="_blank">2279</a>
        </li>
        
      </ul>
    </li>
  </ul>

  <p class="vulnerability-description">
    

A malicious host header in an incoming HTTP request could cause NiFi to load resources from an external server. NiFi
1.5.0 sanitizes host headers and compares to a controlled whitelist property. Users running a prior release should
upgrade to 1.5.0.


  </p>
</div>
<div class="vulnerability-container">
  <h3 id="CVE-2017-15697">CVE-2017-15697</h3>

  <ul>
    <li>Title: Potential Cross-Site Scripting in Proxy Request Headers</li>
    <li>Published: 2018-01-12</li>
    <li>Severity: Medium</li>
    <li>Products: Apache NiFi</li>
    <li>Affected Versions: 1.0.0 to 1.4.0</li>
    <li>Fixed Versions: 1.5.0</li>
    <li>Reporter: Andy LoPresto</li>
    <li>References
      <ul>
        <li>
          CVE Record: <a href="https://www.cve.org/CVERecord?id=CVE-2017-15697" target="_blank">CVE-2017-15697</a>
        </li>
        <li>
          NVD Record: <a href="https://nvd.nist.gov/vuln/detail/CVE-2017-15697" target="_blank">CVE-2017-15697</a>
        </li>
        <li>
          Apache Jira Issue: <a href="https://issues.apache.org/jira/browse/NIFI-4501" target="_blank">NIFI-4501</a>
        </li>
        
        <li>
          GitHub Pull Request: <a href="https://github.com/apache/nifi/pull/2279" target="_blank">2279</a>
        </li>
        
      </ul>
    </li>
  </ul>

  <p class="vulnerability-description">
    

A malicious X-ProxyContextPath or X-Forwarded-Context header containing external resources or embedded code could cause
remote code execution. NiFi 1.5.0 includes corrected handling of these headers. Users running a prior release should
upgrade to 1.5.0.


  </p>
</div>
<div class="vulnerability-container">
  <h3 id="CVE-2017-12623">CVE-2017-12623</h3>

  <ul>
    <li>Title: Improper Restriction of XML External Entity References in Template Upload Resources</li>
    <li>Published: 2017-10-02</li>
    <li>Severity: High</li>
    <li>Products: Apache NiFi</li>
    <li>Affected Versions: 1.0.0 to 1.3.0</li>
    <li>Fixed Versions: 1.4.0</li>
    <li>Reporter: Paweł Gocyla with further information from Mike Cole</li>
    <li>References
      <ul>
        <li>
          CVE Record: <a href="https://www.cve.org/CVERecord?id=CVE-2017-12623" target="_blank">CVE-2017-12623</a>
        </li>
        <li>
          NVD Record: <a href="https://nvd.nist.gov/vuln/detail/CVE-2017-12623" target="_blank">CVE-2017-12623</a>
        </li>
        <li>
          Apache Jira Issue: <a href="https://issues.apache.org/jira/browse/NIFI-4353" target="_blank">NIFI-4353</a>
        </li>
        
        <li>
          GitHub Pull Request: <a href="https://github.com/apache/nifi/pull/2128" target="_blank">2128</a>
        </li>
        
      </ul>
    </li>
  </ul>

  <p class="vulnerability-description">
    

Any authenticated user (valid client certificate but without ACL permissions) could upload a template which contained
malicious code and accessed sensitive files via an XML External Entity (XXE) attack. NiFi 1.14.0 properly handles XML
External Entities. Users running a prior release should upgrade to 1.4.0.


  </p>
</div>
<div class="vulnerability-container">
  <h3 id="CVE-2017-15703">CVE-2017-15703</h3>

  <ul>
    <li>Title: Deserialization of Untrusted Data in Template Upload Resources</li>
    <li>Published: 2017-10-02</li>
    <li>Severity: Medium</li>
    <li>Products: Apache NiFi</li>
    <li>Affected Versions: 1.0.0 to 1.3.0</li>
    <li>Fixed Versions: 1.4.0</li>
    <li>Reporter: Mike Cole</li>
    <li>References
      <ul>
        <li>
          CVE Record: <a href="https://www.cve.org/CVERecord?id=CVE-2017-15703" target="_blank">CVE-2017-15703</a>
        </li>
        <li>
          NVD Record: <a href="https://nvd.nist.gov/vuln/detail/CVE-2017-15703" target="_blank">CVE-2017-15703</a>
        </li>
        <li>
          Apache Jira Issue: <a href="https://issues.apache.org/jira/browse/NIFI-4357" target="_blank">NIFI-4357</a>
        </li>
        
        <li>
          GitHub Pull Request: <a href="https://github.com/apache/nifi/pull/2134" target="_blank">2134</a>
        </li>
        
      </ul>
    </li>
  </ul>

  <p class="vulnerability-description">
    

Any authenticated user (valid client certificate but without ACL permissions) could upload a template which contained
malicious code and cause a denial of service via Java deserialization. NiFi 1.4.0 properly handles Java deserialization.
Users running a prior release should upgrade to 1.4.0.


  </p>
</div>
<div class="vulnerability-container">
  <h3 id="CVE-2017-7665">CVE-2017-7665</h3>

  <ul>
    <li>Title: Potential Cross-Site Scripting in User Interface Components</li>
    <li>Published: 2017-05-08</li>
    <li>Severity: Medium</li>
    <li>Products: Apache NiFi</li>
    <li>Affected Versions: 0.0.1 to 0.7.3 and 1.0.0 to 1.2.0</li>
    <li>Fixed Versions: 0.7.4 and 1.3.0</li>
    <li>Reporter: Matt Gilman</li>
    <li>References
      <ul>
        <li>
          CVE Record: <a href="https://www.cve.org/CVERecord?id=CVE-2017-7665" target="_blank">CVE-2017-7665</a>
        </li>
        <li>
          NVD Record: <a href="https://nvd.nist.gov/vuln/detail/CVE-2017-7665" target="_blank">CVE-2017-7665</a>
        </li>
        <li>
          Apache Jira Issue: <a href="https://issues.apache.org/jira/browse/NIFI-3906" target="_blank">NIFI-3906</a>
        </li>
        
        <li>
          GitHub Pull Request: <a href="https://github.com/apache/nifi/pull/1818" target="_blank">1818</a>
        </li>
        
      </ul>
    </li>
  </ul>

  <p class="vulnerability-description">
    

There are certain user input components in the Apache NiFi UI which had been guarding for some forms of cross-site
scripting issues but were insufficient. NiFi 0.7.4 and 1.3.0 add more complete user input sanitization. Users running a
prior release should upgrade to 0.7.4 or 1.3.0.


  </p>
</div>
<div class="vulnerability-container">
  <h3 id="CVE-2017-7667">CVE-2017-7667</h3>

  <ul>
    <li>Title: Potential Cross-Frame Scripting from Improper Frame Access Restrictions</li>
    <li>Published: 2017-05-08</li>
    <li>Severity: Medium</li>
    <li>Products: Apache NiFi</li>
    <li>Affected Versions: 0.0.1 to 0.7.3 and 1.0.0 to 1.2.0</li>
    <li>Fixed Versions: 0.7.4 and 1.3.0</li>
    <li>Reporter: Matt Gilman</li>
    <li>References
      <ul>
        <li>
          CVE Record: <a href="https://www.cve.org/CVERecord?id=CVE-2017-7667" target="_blank">CVE-2017-7667</a>
        </li>
        <li>
          NVD Record: <a href="https://nvd.nist.gov/vuln/detail/CVE-2017-7667" target="_blank">CVE-2017-7667</a>
        </li>
        <li>
          Apache Jira Issue: <a href="https://issues.apache.org/jira/browse/NIFI-3907" target="_blank">NIFI-3907</a>
        </li>
        
      </ul>
    </li>
  </ul>

  <p class="vulnerability-description">
    

Apache NiFi needs to establish the response header telling browsers to only allow framing with the same origin. NiFi
0.7.4 and 1.3.0 set the response header. Users running a prior release should upgrade to 0.7.4 or 1.3.0.


  </p>
</div>
<div class="vulnerability-container">
  <h3 id="CVE-2017-5635">CVE-2017-5635</h3>

  <ul>
    <li>Title: Improper Authentication of Replicated Cluster HTTP Requests</li>
    <li>Published: 2017-02-20</li>
    <li>Severity: Medium</li>
    <li>Products: Apache NiFi</li>
    <li>Affected Versions: 0.7.0 to 0.7.1 and 1.1.0 to 1.1.1</li>
    <li>Fixed Versions: 0.7.2 and 1.1.2</li>
    <li>Reporter: Leonardo Dias and Matt Gilman</li>
    <li>References
      <ul>
        <li>
          CVE Record: <a href="https://www.cve.org/CVERecord?id=CVE-2017-5635" target="_blank">CVE-2017-5635</a>
        </li>
        <li>
          NVD Record: <a href="https://nvd.nist.gov/vuln/detail/CVE-2017-5635" target="_blank">CVE-2017-5635</a>
        </li>
        <li>
          Apache Jira Issue: <a href="https://issues.apache.org/jira/browse/NIFI-3487" target="_blank">NIFI-3487</a>
        </li>
        
      </ul>
    </li>
  </ul>

  <p class="vulnerability-description">
    

In a cluster environment, if an anonymous user request is replicated to another node, the originating node identity is
used rather than the anonymous user. NiFi 0.7.2 and 1.1.2 remove the negative check for anonymous user before building
the proxy chain and throwing an exception, and evaluating each user in the proxy chain iteration and comparing against a
static constant anonymous user. Users running a prior release should upgrade to 0.7.2 or 1.1.2.


  </p>
</div>
<div class="vulnerability-container">
  <h3 id="CVE-2017-5636">CVE-2017-5636</h3>

  <ul>
    <li>Title: Improper Authentication of Replicated Cluster HTTP Requests</li>
    <li>Published: 2017-02-20</li>
    <li>Severity: Medium</li>
    <li>Products: Apache NiFi</li>
    <li>Affected Versions: 0.7.0 to 0.7.1 and 1.1.0 to 1.1.1</li>
    <li>Fixed Versions: 0.7.2 and 1.1.2</li>
    <li>Reporter: Andy LoPresto</li>
    <li>References
      <ul>
        <li>
          CVE Record: <a href="https://www.cve.org/CVERecord?id=CVE-2017-5636" target="_blank">CVE-2017-5636</a>
        </li>
        <li>
          NVD Record: <a href="https://nvd.nist.gov/vuln/detail/CVE-2017-5636" target="_blank">CVE-2017-5636</a>
        </li>
        <li>
          Apache Jira Issue: <a href="https://issues.apache.org/jira/browse/NIFI-3487" target="_blank">NIFI-3487</a>
        </li>
        
      </ul>
    </li>
  </ul>

  <p class="vulnerability-description">
    

In a cluster environment, the proxy chain serialization and deserialization is vulnerable to an injection attack where a
carefully crafted username could impersonate another user and gain their permissions on a replicated request to another
node. NiFi 0.7.2 and 1.1.2 modify the tokenization code and sanitization of user-provided input. Users running a prior
release should upgrade to 0.7.2 or 1.1.2.


  </p>
</div>
<div class="vulnerability-container">
  <h3 id="CVE-2016-8748">CVE-2016-8748</h3>

  <ul>
    <li>Title: Potential Cross-Site Scripting in Connection Details Dialog</li>
    <li>Published: 2016-12-19</li>
    <li>Severity: Medium</li>
    <li>Products: Apache NiFi</li>
    <li>Affected Versions: 1.0.0 and 1.1.0</li>
    <li>Fixed Versions: 1.0.1 and 1.1.1</li>
    <li>Reporter: Matt Gilman</li>
    <li>References
      <ul>
        <li>
          CVE Record: <a href="https://www.cve.org/CVERecord?id=CVE-2016-8748" target="_blank">CVE-2016-8748</a>
        </li>
        <li>
          NVD Record: <a href="https://nvd.nist.gov/vuln/detail/CVE-2016-8748" target="_blank">CVE-2016-8748</a>
        </li>
        <li>
          Apache Jira Issue: <a href="https://issues.apache.org/jira/browse/NIFI-3154" target="_blank">NIFI-3154</a>
        </li>
        
        <li>
          GitHub Pull Request: <a href="https://github.com/apache/nifi/pull/1305" target="_blank">1305</a>
        </li>
        
      </ul>
    </li>
  </ul>

  <p class="vulnerability-description">
    

There is a cross-site scripting vulnerability in connection details dialog when accessed by an authorized user. The user
supplied text was not being properly handled when added to the DOM. The vulnerability was resolved after reviewing the
pull request when merging changes. Users running a prior release should upgrade to 1.0.1 or 1.1.1.


  </p>
</div>

</div>
          </div>
        <div class="row">
    <div class="large-12 columns footer">
        <a href="https://www.apache.org">
            <img id="asf-logo" alt="Apache Software Foundation" src="/assets/images/asf_logo.png" width="200" style="margin:0px 10px" />
        </a>
        <a  href="https://www.apache.org/events/current-event.html">
            <img src="https://www.apache.org/events/current-event-234x60.png" style="margin:0px 10px" />
        </a>
        <div id="copyright">
            <p>Copyright &#169; 2023 The Apache Software Foundation, Licensed under the <a
                    href="https://www.apache.org/licenses/">Apache License, Version 2.0</a>.<br/>Apache, the
                Apache feather logo, NiFi, Apache NiFi and the project logo are trademarks of The Apache Software
                Foundation.</p>
        </div>
    </div>
</div>
        <script src="/assets/js/jquery.min.js"></script>
        <script src="/assets/js/foundation.js"></script>
        <script src="/assets/js/app.js"></script>
    </body>
</html>