---
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><a id="1.7.0" href="#1.7.0">Fixed in Apache NiFi 1.7.0</a></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><a id="1.6.0" href="#1.6.0">Fixed in Apache NiFi 1.6.0</a></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><a id="1.5.0" href="#1.5.0">Fixed in Apache NiFi 1.5.0</a></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><a id="1.4.0" href="#1.4.0">Fixed in Apache NiFi 1.4.0</a></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 <a id="0.7.4" href="#0.7.4">0.7.4</a> and <a id="1.3.0" href="#1.3.0">1.3.0</a></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 <a id="0.7.2" href="#0.7.2">0.7.2</a> and <a id="1.1.2" href="#1.1.2">1.1.2</a></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 <a id="1.0.1" href="#1.0.1">1.0.1</a> and <a id="1.1.1" href="#1.1.1">1.1.1</a></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>
