---
title: Apache NiFi Security Reports
---

<div class="large-space"></div>
</div>
<div class="medium-space"></div>
<div class="row">
    <div class="large-12 columns features">
        <h2>Security Vulnerability Disclosure</h2>
    </div>
</div>
<div class="row">
    <div class="large-12 columns">
        <p>Apache NiFi welcomes the responsible reporting of security vulnerabilities. The NiFi team believes that working with skilled security researchers across the globe is crucial in identifying
            weaknesses in any technology. If you believe you've found a security issue in our product or service, we encourage you to notify us. We will work with you to resolve the issue
            promptly.</p>
        <h3>Disclosure Policy</h3>
        <ul>
            <li>Let us know as soon as possible upon discovery of a potential security issue, and we'll make every effort to quickly resolve the issue.</li>
            <li>Provide us a reasonable amount of time to resolve the issue before any disclosure to the public or a third-party.</li>
            <li>Make a good faith effort to avoid privacy violations, destruction of data, and interruption or degradation of our service. Only interact with accounts you own or with explicit
                permission of the account holder.
            </li>
        </ul>
        <h3>Exclusions</h3>
        <p>While researching, we'd like to ask you to refrain from:</p>
        <ul>
            <li>Denial of service</li>
            <li>Spamming</li>
            <li>Social engineering (including phishing) of Apache NiFi staff or contractors</li>
            <li>Any physical attempts against Apache NiFi property or data centers</li>
        </ul>
        <h3>Reporting Methods</h3>
        <p>NiFi accepts reports in multiple ways:</p>
        <ul>
            <li>Send an email to <a href="mailto:security@nifi.apache.org">security@nifi.apache.org</a>. This is a private list monitored by the <a href="people.html">PMC</a>. For sensitive
                disclosures, the GPG key fingerprint is <strong>1230 3BB8 1F22 E11C 8725 926A AFF2 B368 23B9 44E9</strong>.
            </li>
            <li>NiFi has a <a href="https://hackerone.com/apache_nifi" target="_blank">HackerOne</a> project page. HackerOne provides a triaged process for researchers and organizations to
                collaboratively report and resolve security vulnerabilities.
            </li>
        </ul>
        <p>Thank you for helping keep Apache NiFi and our users safe!</p>
    </div>
</div>
<div class="medium-space"></div>
<div class="row">
    <div class="large-12 columns features">
        <h2>Fixed in Apache NiFi 1.7.0</h2>
    </div>
</div>
<div class="row" style="background-color: aliceblue">
    <div class="large-12 columns">
        <p><a id="CVE-2018-1324" href="#CVE-2018-1324"><strong>CVE-2018-1324</strong></a>: Apache NiFi Denial of service issue because of commons-compress vulnerability</p>
        <p>Severity: <strong>Low</strong></p>
        <p>Versions Affected:</p>
        <ul>
            <li>Apache NiFi 0.1.0 - 1.6.0</li>
        </ul>
        </p>
        <p>Description: A vulnerability in the commons-compress library could cause denial of service. See <a href="https://commons.apache.org/proper/commons-compress/security-reports.html" target="_blank">commons-compress CVE-2018-1324 announcement</a> for more information. </p>
        <p>Mitigation: The fix to upgrade the commons-compress library to 1.16.1 was applied on the Apache NiFi 1.7.0 release. Users running a prior 1.x release should upgrade to the appropriate release. <strong>This was <a href="#CVE-2018-1324-160">previously incorrectly reported</a> as being fixed in Apache NiFi 1.6.0</strong></p>
        <p>Credit: This issue was discovered by Joe Witt. </p>
        <p>CVE Link: <a href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-1324" target="_blank">Mitre Database: CVE-2018-1324</a></p>
        <p>NiFi Jira: <a href="https://issues.apache.org/jira/browse/NIFI-5108" target="_blank">NIFI-5108</a></p>
        <p>NiFi PR: <a href="https://github.com/apache/nifi/pull/2651" target="_blank">PR 2651</a></p>
        <p>Released: June 25, 2018</p>
    </div>
</div>
<div class="row">
    <div class="large-12 columns">
        <p><a id="CVE-2016-1000031" href="#CVE-2016-1000031"><strong>CVE-2016-1000031</strong></a>: Apache NiFi dependency vulnerability in commons-fileupload</p>
        <p>Severity: <strong>Moderate</strong></p>
        <p>Versions Affected:</p>
        <ul>
            <li>Apache NiFi 0.1.0 - 1.6.0</li>
        </ul>
        </p>
        <p>Description: A vulnerability in the commons-fileupload library could cause remote code execution (RCE). See <a href="https://www.tenable.com/security/research/tra-2016-30" target="_blank">Tenable Research Advisory TRA-2016-30</a> for more information. </p>
        <p>Mitigation: The fix to upgrade the commons-fileupload library to 1.3.3 was applied on the Apache NiFi 1.7.0 release. Users running a prior 1.x release should upgrade to the appropriate release. <em>Apache Commons project <a href="https://nvd.nist.gov/vuln/detail/CVE-2016-1000031" target="_blank">contests validity of this vulnerability</a> and proposes this is the responsibility of the consuming application. </em></p>
        <p>Credit: This issue was discovered by Matt Gilman. </p>
        <p>CVE Link: <a href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-1000031" target="_blank">Mitre Database: CVE-2016-1000031</a></p>
        <p>NiFi Jira: <a href="https://issues.apache.org/jira/browse/NIFI-5124" target="_blank">NIFI-5124</a></p>
        <p>NiFi PR: <a href="https://github.com/apache/nifi/pull/2662" target="_blank">PR 2662</a></p>
        <p>Released: June 25, 2018</p>
    </div>
</div>
<div class="row" style="background-color: aliceblue">
    <div class="large-12 columns">
        <p><a id="CVE-2018-7489" href="#CVE-2018-7489"><strong>CVE-2018-7489</strong></a>, <a id="CVE-2017-7525" href="#CVE-2017-7525"><strong>CVE-2017-7525</strong></a>, and <a id="CVE-2017-15095" href="#CVE-2017-15095"><strong>CVE-2017-15095</strong></a>: Apache NiFi dependency vulnerability in FasterXML Jackson</p>
        <p>Severity: <strong>Severe</strong></p>
        <p>Versions Affected:</p>
        <ul>
            <li>Apache NiFi 0.1.0 - 1.6.0</li>
        </ul>
        </p>
        <p>Description: A vulnerability in the FasterXML Jackson XML parsing library could allow unauthenticated remote code execution (RCE). See <a href="https://nvd.nist.gov/vuln/detail/CVE-2018-7489" target="_blank">NVD CVE-2018-7489</a> for more information. </p>
        <p>Mitigation: The fix to upgrade the jackson-databind library to 2.9.5 was applied on the Apache NiFi 1.7.0 release. Users running a prior 1.x release should upgrade to the appropriate release. </p>
        <p>Credit: This issue was discovered by Sivaprasanna Sethuraman. </p>
        <p>CVE Link: <a href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-7489" target="_blank">Mitre Database: CVE-2018-7489</a>, <a href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-7525" target="_blank">Mitre Database: CVE-2017-7525</a>, <a href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-15095" target="_blank">Mitre Database: CVE-2017-15095</a></p>
        <p>NiFi Jira: <a href="https://issues.apache.org/jira/browse/NIFI-5286" target="_blank">NIFI-5286</a></p>
        <p>NiFi PR: <a href="https://github.com/apache/nifi/pull/2775" target="_blank">PR 2775</a></p>
        <p>Released: June 25, 2018</p>
    </div>
</div>
<div class="row">
    <div class="large-12 columns">
        <p><a id="angular:20171018" href="#angular:20171018"><strong>angular:20171018</strong></a> and <a id="angular:20180202" href="#angular:20180202"><strong>angular:20180202</strong></a>: Apache NiFi dependency XSS vulnerability in AngularJS</p>
        <p>Severity: <strong>Moderate</strong></p>
        <p>Versions Affected:</p>
        <ul>
            <li>Apache NiFi 0.1.0 - 1.6.0</li>
        </ul>
        </p>
        <p>Description: A vulnerability in the AngularJS library could allow XSS. See <a href="https://snyk.io/vuln/npm:angular:20171018" target="_blank">Snyk npm:angular:20171018</a> and <a href="https://snyk.io/vuln/npm:angular:20180202" target="_blank">Snyk npm:angular:20180202</a> for more information. </p>
        <p>Mitigation: The fix to upgrade the commons-compress library to 1.7.0 was applied on the Apache NiFi 1.7.0 release. Users running a prior 1.x release should upgrade to the appropriate release. </p>
        <p>Credit: This issue was discovered by Prashanth V. </p>
        <p>CVE Link: N/A</p>
        <p>NiFi Jira: <a href="https://issues.apache.org/jira/browse/NIFI-5215" target="_blank">NIFI-5215</a></p>
        <p>NiFi PR: <a href="https://github.com/apache/nifi/pull/2721" target="_blank">PR 2721</a></p>
        <p>Released: June 25, 2018</p>
    </div>
</div>
<div class="row" style="background-color: aliceblue">
    <div class="large-12 columns">
        <p><a id="NIFI-2018-009" href="#NIFI-2018-009"><strong>NIFI-2018-009</strong></a>: Apache NiFi proactive escaping of batch ingest JSON to Elasticsearch to prevent injection attack</p>
        <p>Severity: <strong>Low</strong></p>
        <p>Versions Affected:</p>
        <ul>
            <li>Apache NiFi 0.1.0 - 1.6.0</li>
        </ul>
        </p>
        <p>Description: While no published attack exists, NiFi strengthened the security around the batch processing Elasticsearch ingest feature to prevent injection attacks. </p>
        <p>Mitigation: The improved content escaping was applied on the Apache NiFi 1.7.0 release. Users running a prior 1.x release should upgrade to the appropriate release. </p>
        <p>Credit: This issue was discovered by Jonathan Logan. </p>
        <p>CVE Link: N/A</p>
        <p>NiFi Jira: <a href="https://issues.apache.org/jira/browse/NIFI-5266" target="_blank">NIFI-5266</a></p>
        <p>NiFi PR: <a href="https://github.com/apache/nifi/pull/2760" target="_blank">PR 2760</a></p>
        <p>Released: June 25, 2018</p>
    </div>
</div>
<div class="row">
    <div class="large-12 columns features">
        <h2>Fixed in Apache NiFi 1.6.0</h2>
    </div>
</div>
<div class="row">
    <div class="large-12 columns">
        <p><a id="CVE-2018-1309" href="#CVE-2018-1309"><strong>CVE-2018-1309</strong></a>: Apache NiFi XML External Entity issue in SplitXML processor</p>
        <p>Severity: <strong>Moderate</strong></p>
        <p>Versions Affected:</p>
        <ul>
            <li>Apache NiFi 0.1.0 - 1.5.0</li>
        </ul>
        </p>
        <p>Description: Malicious XML content could cause information disclosure or remote code execution. </p>
        <p>Mitigation: The fix to disable external general entity parsing and disallow doctype declarations was applied on the Apache NiFi 1.6.0 release. Users running a prior 1.x release should upgrade to the appropriate release. </p>
        <p>Credit: This issue was discovered by 圆珠笔. </p>
        <p>CVE Link: <a href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-1309" target="_blank">Mitre Database: CVE-2018-1309</a></p>
        <p>Released: April 8, 2018</p>
    </div>
</div>
<div class="row" style="background-color: aliceblue">
    <div class="large-12 columns">
        <p><a id="CVE-2018-1310" href="#CVE-2018-1310"><strong>CVE-2018-1310</strong></a>: Apache NiFi JMS Deserialization issue because of ActiveMQ client vulnerability</p>
        <p>Severity: <strong>Moderate</strong></p>
        <p>Versions Affected:</p>
        <ul>
            <li>Apache NiFi 0.1.0 - 1.5.0</li>
        </ul>
        </p>
        <p>Description: Malicious JMS content could cause denial of service. See <a href="http://activemq.apache.org/security-advisories.data/CVE-2015-5254-announcement.txt" target="_blank">ActiveMQ CVE-2015-5254 announcement</a> for more information. </p>
        <p>Mitigation: The fix to upgrade the activemq-client library to 5.15.3 was applied on the Apache NiFi 1.6.0 release. Users running a prior 1.x release should upgrade to the appropriate release. </p>
        <p>Credit: This issue was discovered by 圆珠笔. </p>
        <p>CVE Link: <a href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-1310" target="_blank">Mitre Database: CVE-2018-1310</a></p>
        <p>Released: April 8, 2018</p>
    </div>
</div>
<div class="row">
    <div class="large-12 columns">
        <p><a id="CVE-2017-8028" href="#CVE-2017-8028"><strong>CVE-2017-8028</strong></a>: Apache NiFi LDAP TLS issue because of Spring Security LDAP vulnerability</p>
        <p>Severity: <strong>Severe</strong></p>
        <p>Versions Affected:</p>
        <ul>
            <li>Apache NiFi 0.1.0 - 1.5.0</li>
        </ul>
        </p>
        <p>Description: Spring Security LDAP library was not enforcing credential authentication after TLS handshake negotiation. See <a href="https://nvd.nist.gov/vuln/detail/CVE-2017-8028" target="_blank">NVD CVE-2017-8028 disclosure</a> for more information. </p>
        <p>Mitigation: The fix to upgrade the spring-ldap library to 2.3.2.RELEASE+ was applied on the Apache NiFi 1.6.0 release. Users running a prior 1.x release should upgrade to the appropriate release. </p>
        <p>Credit: This issue was discovered by Matthew Elder. </p>
        <p>CVE Link: <a href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-8028" target="_blank">Mitre Database: CVE-2017-8028</a></p>
        <p>Released: April 8, 2018</p>
    </div>
</div>
<div class="row" style="background-color: aliceblue">
    <div class="large-12 columns">
        <p><a id="CVE-2018-1324-160" href="#CVE-2018-1324-160"><strong><strike>CVE-2018-1324</strike></strong></a>: <strike>Apache NiFi Denial of service issue because of commons-compress vulnerability</strike> -- <em>This issue was <a href="#CVE-2018-1324">resolved in Apache NiFi 1.7.0</a></em></p>
        <p>Severity: <strong>Low</strong></p>
        <p>Versions Affected:</p>
        <ul>
            <li><strike>Apache NiFi 0.1.0 - 1.5.0</strike></li>
        </ul>
        </p>
        <p>Description: A vulnerability in the commons-compress library could cause denial of service. See <a href="https://commons.apache.org/proper/commons-compress/security-reports.html" target="_blank">commons-compress CVE-2018-1324 announcement</a> for more information. </p>
        <p>Mitigation: The fix to upgrade the commons-compress library to 1.16.1 was applied on the Apache NiFi 1.6.0 release. Users running a prior 1.x release should upgrade to the appropriate release. </p>
        <p>Credit: This issue was discovered by Joe Witt. </p>
        <p>CVE Link: <a href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-1324" target="_blank">Mitre Database: CVE-2018-1324</a></p>
        <p><strike>Released: April 8, 2018</strike></p>
    </div>
</div>
<div class="medium-space"></div>
<div class="row">
    <div class="large-12 columns features">
        <h2>Fixed in Apache NiFi 1.5.0</h2>
    </div>
</div>
<div class="row">
    <div class="large-12 columns">
        <p><a id="CVE-2017-12632" href="#CVE-2017-12632"><strong>CVE-2017-12632</strong></a>: Apache NiFi host header poisoning issue</p>
        <p>Severity: <strong>Moderate</strong></p>
        <p>Versions Affected:</p>
        <ul>
            <li>Apache NiFi 0.1.0 - 1.4.0</li>
        </ul>
        </p>
        <p>Description: A malicious host header in an incoming HTTP request could cause NiFi to load resources from an external server. </p>
        <p>Mitigation: The fix to sanitize host headers and compare to a controlled whitelist was applied on the Apache NiFi 1.5.0 release. Users running a prior 1.x release should upgrade to the appropriate release. </p>
        <p>Credit: This issue was discovered by Mike Cole. </p>
        <p>CVE Link: <a href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-12632" target="_blank">Mitre Database: CVE-2017-12632</a></p>
        <p>Released: January 12, 2018</p>
    </div>
</div>
<div class="row" style="background-color: aliceblue">
    <div class="large-12 columns">
        <p><a id="CVE-2017-15697" href="#CVE-2017-15697"><strong>CVE-2017-15697</strong></a>: Apache NiFi XSS issue in context path handling</p>
        <p>Severity: <strong>Moderate</strong></p>
        <p>Versions Affected:</p>
        <ul>
            <li>Apache NiFi 1.0.0 - 1.4.0</li>
        </ul>
        </p>
        <p>Description: A malicious <code>X-ProxyContextPath</code> or <code>X-Forwarded-Context</code> header containing external resources or embedded code could cause remote code execution. </p>
        <p>Mitigation: The fix to properly handle these headers was applied on the Apache NiFi 1.5.0 release. Users running a prior 1.x release should upgrade to the appropriate release. </p>
        <p>Credit: This issue was discovered by Andy LoPresto. </p>
        <p>CVE Link: <a href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-15697" target="_blank">Mitre Database: CVE-2017-15697</a></p>
        <p>Released: January 12, 2018</p>
    </div>
</div>
<div class="medium-space"></div>
<div class="row">
    <div class="large-12 columns features">
        <h2>Fixed in Apache NiFi 1.4.0</h2>
    </div>
</div>
<div class="row">
    <div class="large-12 columns">
        <p><a id="CVE-2017-12623" href="#CVE-2017-12623"><b>CVE-2017-12623</b></a>: Apache NiFi XXE issue in template XML upload</p>
        <p>Severity: <del><b>Moderate</b></del> <strong>Important</strong></p>
        <p>Versions Affected:</p>
        <ul>
            <li>Apache NiFi 1.0.0 - 1.3.0</li>
        </ul>
        </p>
        <p>Description: <del>An authorized user</del> 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. </p>
        <p>Mitigation: The fix to properly handle XML External Entities was applied on the Apache NiFi 1.4.0 release. Users running a prior 1.x release should upgrade to the appropriate release. </p>
        <p>Credit: This issue was discovered by Paweł Gocyla and further information was provided by Mike Cole. </p>
        <p>CVE Link: <a href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-12623" target="_blank">Mitre Database: CVE-2017-12623</a></p>
        <p>Released: October 2, 2017 (Updated January 23, 2018)</p>
    </div>
</div>
<div class="row" style="background-color: aliceblue">
    <div class="large-12 columns">
        <p><a id="CVE-2017-15703" href="#CVE-2017-15703"><b>CVE-2017-15703</b></a>: Apache NiFi Java deserialization issue in template XML upload</p>
        <p>Severity: <strong>Moderate</strong></p>
        <p>Versions Affected:</p>
        <ul>
            <li>Apache NiFi 1.0.0 - 1.3.0</li>
        </ul>
        </p>
        <p>Description: Any authenticated user (valid client certificate but without ACL permissions) could upload a template which contained malicious code and caused a denial of service via Java deserialization attack. </p>
        <p>Mitigation: The fix to properly handle Java deserialization was applied on the Apache NiFi 1.4.0 release. Users running a prior 1.x release should upgrade to the appropriate release. </p>
        <p>Credit: This issue was discovered by Mike Cole. </p>
        <p>CVE Link: <a href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-15703" target="_blank">Mitre Database: CVE-2017-15703</a></p>
        <p>Released: October 2, 2017 (Updated January 25, 2018)</p>
    </div>
</div>
<div class="medium-space"></div>
<div class="row">
    <div class="large-12 columns features">
        <h2>Fixed in Apache NiFi 0.7.4 and 1.3.0</h2>
    </div>
</div>
<div class="row">
    <div class="large-12 columns">
        <p><a id="CVE-2017-7665" href="#CVE-2017-7665"><b>CVE-2017-7665</b></a>: Apache NiFi XSS issue on certain user input components</p>
        <p>Severity: <b>Important</b></p>
        <p>Versions Affected:</p>
        <ul>
            <li>Apache NiFi 0.0.1 - 0.7.3</li>
            <li>Apache NiFi 1.0.0 - 1.2.0</li>
        </ul>
        </p>
        <p>Description: There are certain user input components in the Apache NiFi UI which had been guarding for some forms of XSS issues but were insufficient. </p>
        <p>Mitigation: The fix for more complete user input sanitization will be applied on Apache NiFi 0.7.4 and Apache NiFi 1.3.0 releases. Users running a prior 0.x or 1.x release should upgrade to
            the appropriate release. </p>
        <p>Credit: This issue was discovered by Matt Gilman.</p>
        <p>Released: May 8, 2017 (1.2.0); May 17, 2017 (0.7.3)</p>
    </div>
</div>
<div class="row" style="background-color: aliceblue">
    <div class="large-12 columns">
        <p><a id="CVE-2017-7667" href="#CVE-2017-7667"><b>CVE-2017-7667</b></a>: Apache NiFi XFS issue due to insufficient response headers</p>
        <p>Severity: <b>Important</b></p>
        <p>Versions Affected:</p>
        <ul>
            <li>Apache NiFi 0.0.1 - 0.7.3</li>
            <li>Apache NiFi 1.0.0 - 1.2.0</li>
        </ul>
        </p>
        <p>Description: Apache NiFi needs to establish the response header telling browsers to only allow framing with the same origin. </p>
        <p>Mitigation: The fix to set this response header will be applied on Apache NiFi 0.7.4 and Apache NiFi 1.3.0 releases. Users running a prior 0.x or 1.x release should upgrade to the
            appropriate release. </p>
        <p>Credit: This issue was discovered by Matt Gilman.</p>
        <p>Released: May 8, 2017 (1.2.0); May 17, 2017 (0.7.3)</p>
    </div>
</div>
<div class="medium-space"></div>
<div class="row">
    <div class="large-12 columns features">
        <h2>Fixed in Apache NiFi 0.7.2 and 1.1.2</h2>
    </div>
</div>
<div class="row">
    <div class="large-12 columns">
        <p><a id="CVE-2017-5635" href="#CVE-2017-5635"><b>CVE-2017-5635</b></a>: Apache NiFi Unauthorized Data Access In Cluster Environment</p>
        <p>Severity: <b>Important</b></p>
        <p>Versions Affected:</p>
        <ul>
            <li>Apache NiFi 0.7.0</li>
            <li>Apache NiFi 0.7.1</li>
            <li>Apache NiFi 1.1.0</li>
            <li>Apache NiFi 1.1.1</li>
        </ul>
        </p>
        <p>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. </p>
        <p>Mitigation: A fix has been provided (removing 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). This fix was applied in NIFI-3487 and released in Apache NiFi 0.7.2 and 1.1.2. 1.x users running a clustered environment
            should upgrade to 1.1.2. 0.x users running a clustered environment should upgrade to 0.7.2. Additional migration guidance can be found <a
                    href="https://cwiki.apache.org/confluence/display/NIFI/Migration+Guidance">here</a>. </p>
        <p>Credit: This issue was discovered by Leonardo Dias in conjunction with Matt Gilman.</p>
        <p>Released: February 20, 2017</p>
    </div>
</div>
<div class="row" style="background-color: aliceblue">
    <div class="large-12 columns">
        <p><a id="CVE-2017-5636" href="#CVE-2017-5636"><b>CVE-2017-5636</b></a>: Apache NiFi User Impersonation In Cluster Environment</p>
        <p>Severity: <b>Moderate</b></p>
        <p>Versions Affected:</p>
        <ul>
            <li>Apache NiFi 0.7.0</li>
            <li>Apache NiFi 0.7.1</li>
            <li>Apache NiFi 1.1.0</li>
            <li>Apache NiFi 1.1.1</li>
        </ul>
        </p>
        <p>Description: In a cluster environment, the proxy chain serialization/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. </p>
        <p>Mitigation: A fix has been provided (modification of the tokenization code and sanitization of user-provided input). This fix was applied in NIFI-3487 and released in Apache NiFi 0.7.2 and
            1.1.2. 1.x users running a clustered environment should upgrade to 1.1.2. 0.x users running a clustered environment should upgrade to 0.7.2. Additional migration guidance can be found <a
                    href="https://cwiki.apache.org/confluence/display/NIFI/Migration+Guidance">here</a>. </p>
        <p>Credit: This issue was discovered by Andy LoPresto.</p>
        <p>Released: February 20, 2017</p>
    </div>
</div>
<div class="medium-space"></div>
<div class="row">
    <div class="large-12 columns features">
        <h2>Fixed in Apache NiFi 1.0.1 and 1.1.1</h2>
    </div>
</div>
<div class="row">
    <div class="large-12 columns">
        <p><a id="CVE-2016-8748" href="#CVE-2016-8748"><b>CVE-2016-8748</b></a>: Apache NiFi XSS vulnerability in connection details dialogue</p>
        <p>Severity: <b>Moderate</b></p>
        <p>Versions Affected:</p>
        <ul>
            <li>Apache NiFi 1.0.0</li>
            <li>Apache NiFi 1.1.0</li>
        </ul>
        </p>
        <p>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.</p>
        <p>Mitigation: 1.0.0 users should upgrade to 1.0.1 or 1.1.1. 1.1.0 users should upgrade to 1.1.1. Additional migration guidance can be found <a
                href="https://cwiki.apache.org/confluence/display/NIFI/Migration+Guidance">here</a>. </p>
        <p>Credit: This issue was discovered by Matt Gilman of the Apache NiFi PMC during a code review.</p>
        <p>Released: December 19, 2016 (1.0.1); December 22, 2016 (1.1.1)</p>
    </div>
</div>
<div class="medium-space"></div>
<div class="row">
    <div class="large-12 columns features">
        <h2>Severity Levels</h2>
    </div>
</div>
<div class="row">
    <p class="description">The following lists the severity levels and criteria followed. It closely aligns to and borrows from Apache HTTP Server Project <a
            href="https://httpd.apache.org/security/impact_levels.html">guidance.</a></p>
    <div class="large-12 columns">
        <table>
            <tr>
                <td>Critical</td>
                <td>A vulnerability rated with a critical impact is one which could be potentially exploited by a remote attacker to get NiFi to execute arbitrary code either as the user the server is
                    running as or root. These are the sorts of vulnerabilities that could be exploited automatically by worms.
                </td>
            </tr>
            <tr>
                <td>Important</td>
                <td>A vulnerability rated as Important impact is one which could result in the compromise of data or availability of the server. For Apache NiFi this includes issues that allow an easy
                    remote denial of service or access to files that should be otherwise prevented by limits or authentication.
                </td>
            </tr>
            <tr>
                <td>Moderate</td>
                <td>A vulnerability is likely to be rated as Moderate if there is significant mitigation to make the issue less of an impact. This might be done because the flaw does not affect likely
                    configurations, or it is a configuration that isn't widely used, or where a remote user must be authenticated in order to exploit the issue.
                </td>
            </tr>
            <tr>
                <td>Low</td>
                <td>All other security flaws are classed as a Low impact. This rating is used for issues that are believed to be extremely hard to exploit, or where an exploit gives minimal
                    consequences.
                </td>
            </tr>
        </table>
    </div>
</div>
