<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License.  You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied.  See the License for the
specific language governing permissions and limitations
under the License.

-->
<document xmlns="http://maven.apache.org/XDOC/2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/XDOC/2.0 http://maven.apache.org/xsd/xdoc-2.0.xsd">

  <properties>
    <title>Security Advisories</title>
    <author email="dev@syncope.apache.org">Apache Syncope Documentation Team</author>
  </properties>

  <body>

    <section name="Security Advisories">
      <p>This page lists all security vulnerabilities fixed in released versions of Apache Syncope.</p>
      <p>Please note that binary patches are never provided. If you need to apply a source code patch, use the
        <a href="building.html">building instructions</a> or 
        <a href="docs/getting-started.html#create-project">re-generate your Maven project</a> from published archetype.</p>

      <p>If you want to report a vulnerability, please follow <a href="https://www.apache.org/security/">the procedure</a>.</p>

      <subsection name="CVE-2026-23795: Apache Syncope: Console XXE on Keymaster parameters">
        <p>Improper Restriction of XML External Entity Reference vulnerability in Apache Syncope Console.</p>
        <p>An administrator with adequate entitlements to create or edit Keymaster parameters via Console can construct malicious XML text to launch an XXE attack, thereby causing sensitive data leakage occurs.</p>

        <p>
          <b>Severity</b>
        </p>
        <p>Important</p>

        <p>
          <b>Affects</b>
        </p>
        <p>
          <ul>
            <li>4.0 through 4.0.3</li>
            <li>3.0 through 3.0.15</li>
          </ul>
        </p>

        <p>
          <b>Solution</b>
        </p>
        <p>
          <ul>
            <li>Users are recommended to upgrade to version 4.0.4 / 3.0.16 which fix this issue.</li>
          </ul>
        </p>

        <p>
          <b>Fixed in</b>
        </p>
        <p>
          <ul>
            <li>Release 4.0.4</li>
            <li>Release 3.0.16</li>
          </ul>
        </p>

        <p>Read the <a href="https://www.cve.org/CVERecord?id=CVE-2026-23795">full CVE advisory</a>.</p>
      </subsection>

      <subsection name="CVE-2026-23794: Apache Syncope: Reflected XSS on Enduser Login">
        <p>Reflected XSS in Apache Syncope's Enduser Login page.</p>
        <p>An attacker that tricks a legitimate user into clicking a malicious link and logging in to Syncope Enduser could steal that user's credentials.</p>

        <p>
          <b>Severity</b>
        </p>
        <p>Important</p>

        <p>
          <b>Affects</b>
        </p>
        <p>
          <ul>
            <li>4.0 through 4.0.3</li>
            <li>3.0 through 3.0.15</li>
          </ul>
        </p>

        <p>
          <b>Solution</b>
        </p>
        <p>
          <ul>
            <li>Users are recommended to upgrade to version 4.0.4 / 3.0.16 which fix this issue.</li>
          </ul>
        </p>

        <p>
          <b>Fixed in</b>
        </p>
        <p>
          <ul>
            <li>Release 4.0.4</li>
            <li>Release 3.0.16</li>
          </ul>
        </p>

        <p>Read the <a href="https://www.cve.org/CVERecord?id=CVE-2026-23794">full CVE advisory</a>.</p>
      </subsection>

      <subsection name="CVE-2025-65998: Apache Syncope: Default AES key used for internal password encryption">
        <p>Apache Syncope can be configured to store the user password values in the internal database with AES encryption, though this is not the default option.</p>

        <p>When AES is configured, the default key value, hard-coded in the source code, is always used.
          This allows a malicious attacker, once obtained access to the internal database content, to reconstruct the original cleartext password values.<br/>
          This is not affecting encrypted plain attributes, whose values are also stored using AES encryption.</p>

        <p>Users are recommended to upgrade to version 4.0.3 / 3.0.15, which fix this issue.</p>
        <p>
          <b>Severity</b>
        </p>
        <p>Important</p>

        <p>
          <b>Affects</b>
        </p>
        <p>
          <ul>
            <li>4.0 through 4.0.2</li>
            <li>3.0 through 3.0.14</li>
            <li>2.1 through 2.1.14</li>
          </ul>
        </p>

        <p>
          <b>Solution</b>
        </p>
        <p>
          <ul>
            <li>Users are recommended to upgrade to version 4.0.3 / 3.0.15 which fix this issue.</li>
          </ul>
        </p>

        <p>
          <b>Fixed in</b>
        </p>
        <p>
          <ul>
            <li>Release 4.0.3</li>
            <li>Release 3.0.15</li>
          </ul>
        </p>

        <p>Read the <a href="https://www.cve.org/CVERecord?id=CVE-2025-65998">full CVE advisory</a>.</p>
      </subsection>

      <subsection name="CVE-2025-57738: Apache Syncope: Remote Code Execution by delegated administrators">
        <p>Apache Syncope offers the ability to extend / customize the base behavior on every deployment by allowing to provide custom implementations of a few Java interfaces; such implementations can be provided either as Java or Groovy classes, with the latter being particularly attractive as the machinery is set for runtime reload.
          Such a feature has been available for a while, but recently it was discovered that a malicious administrator can inject Groovy code that can be executed remotely by a running Apache Syncope Core instance.
          Users are recommended to upgrade to version 3.0.14 / 4.0.2, which fix this issue by forcing the Groovy code to run in a sandbox.</p>

        <p>
          <b>Severity</b>
        </p>
        <p>Moderate</p>

        <p>
          <b>Affects</b>
        </p>
        <p>
          <ul>
            <li>4.0 through 4.0.1</li>
            <li>3.0 through 3.0.13</li>
            <li>2.1 through 2.1.14</li>
          </ul>
        </p>

        <p>
          <b>Solution</b>
        </p>
        <p>
          <ul>
            <li>Users are recommended to upgrade to version 4.0.2 / 3.0.14 which fix this issue.</li>
          </ul>
        </p>

        <p>
          <b>Fixed in</b>
        </p>
        <p>
          <ul>
            <li>Release 4.0.2</li>
            <li>Release 3.0.14</li>
          </ul>
        </p>

        <p>Read the <a href="https://www.cve.org/CVERecord?id=CVE-2025-57738">full CVE advisory</a>.</p>
      </subsection>

      <subsection name="CVE-2024-45031: Apache Syncope: Stored XSS in Console and Enduser">
        <p>When editing objects in the Syncope Console, incomplete HTML tags could be used to bypass HTML sanitization. This made it possible to inject stored XSS payloads which would trigger for other users during ordinary usage of the application.<br/>
          XSS payloads could also be injected in Syncope Enduser when editing “Personal Information” or “User Requests”: such payloads would trigger for administrators in Syncope Console, thus enabling session hijacking.</p>

        <p>
          <b>Severity</b>
        </p>
        <p>Moderate</p>

        <p>
          <b>Affects</b>
        </p>
        <p>
          <ul>
            <li>3.0 through 3.0.8</li>
            <li>2.1 through 2.1.14</li>
          </ul>
        </p>

        <p>
          <b>Solution</b>
        </p>
        <p>
          <ul>
            <li>Users are recommended to upgrade to version 3.0.9, which fixes this issue.</li>
          </ul>
        </p>

        <p>
          <b>Fixed in</b>
        </p>
        <p>
          <ul>
            <li>Release 3.0.9</li>
          </ul>
        </p>

        <p>Read the <a href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2024-45031">full CVE advisory</a>.</p>
      </subsection>

      <subsection name="CVE-2024-38503: HTML tags can be injected into Console or Enduser text fields">
        <p>When editing a user, group or any object in the Syncope Console, HTML tags could be added to any text field and could lead to potential exploits.
          The same vulnerability was found in the Syncope Enduser, when editing “Personal Information” or “User Requests”.</p>

        <p>
          <b>Severity</b>
        </p>
        <p>Moderate</p>

        <p>
          <b>Affects</b>
        </p>
        <p>
          <ul>
            <li>3.0 through 3.0.7</li>
            <li>2.1 through 2.1.14</li>
          </ul>
        </p>

        <p>
          <b>Solution</b>
        </p>
        <p>
          <ul>
            <li>Users are recommended to upgrade to version 3.0.8, which fixes this issue.</li>
          </ul>
        </p>

        <p>
          <b>Fixed in</b>
        </p>
        <p>
          <ul>
            <li>Release 3.0.8</li>
          </ul>
        </p>

        <p>Read the <a href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2024-38503">full CVE advisory</a>.</p>
      </subsection>

      <subsection name="CVE-2020-11977: Remote Code Execution via Flowable workflow definition">
        <p>When the Flowable extension is enabled, an administrator with workflow entitlements can use Shell Service Tasks to perform malicious operations, including but not limited
          to file read, file write, and code execution.</p>

        <p>
          <b>Severity</b>
        </p>
        <p>Low</p>

        <p>
          <b>Affects</b>
        </p>
        <p>
          <ul>
            <li>2.1.X releases prior to 2.1.7</li>
          </ul>
        </p>

        <p>
          <b>Solution</b>
        </p>
        <p>
          <ul>
            <li>2.1.X users should upgrade to 2.1.7</li>
          </ul>
        </p>

        <p>
          <b>Fixed in</b>
        </p>
        <p>
          <ul>
            <li>Release 2.1.7</li>
          </ul>
        </p>

        <p>Read the <a href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-11977">full CVE advisory</a>.</p>
      </subsection>

      <subsection name="CVE-2020-1961: Server-Side Template Injection on mail templates">
        <p>Vulnerability to Server-Side Template Injection on Mail templates enabling attackers to inject arbitrary JEXL
          expressions, leading to Remote Code Execution (RCE) was discovered.</p>

        <p>
          <b>Severity</b>
        </p>
        <p>Important</p>

        <p>
          <b>Affects</b>
        </p>
        <p>
          <ul>
            <li>2.0.X releases prior to 2.0.15</li>
            <li>2.1.X releases prior to 2.1.6</li>
          </ul>
        </p>

        <p>
          <b>Solution</b>
        </p>
        <p>
          <ul>
            <li>2.0.X users should upgrade to 2.0.15</li>
            <li>2.1.X users should upgrade to 2.1.6</li>
          </ul>
        </p>

        <p>
          <b>Fixed in</b>
        </p>
        <p>
          <ul>
            <li>Release 2.0.15</li>
            <li>Release 2.1.6</li>
          </ul>
        </p>

        <p>Read the <a href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-1961">full CVE advisory</a>.</p>
      </subsection>

      <subsection name="CVE-2020-1959: Multiple Remote Code Execution Vulnerabilities">	
        <p>A Server-Side Template Injection was identified in Syncope enabling attackers to inject arbitrary Java EL
          expressions, leading to an unauthenticated Remote Code Execution (RCE) vulnerability.
          Apache Syncope uses Java Bean Validation (JSR 380) custom constraint validators. When building custom
          constraint violation error messages, they support different types of interpolation, including Java EL
          expressions.
          Therefore, if an attacker can inject arbitrary data in the error message template being passed, they will be
          able to run arbitrary Java code.</p>

        <p>
          <b>Severity</b>
        </p>
        <p>Important</p>

        <p>
          <b>Affects</b>
        </p>
        <p>
          <ul>
            <li>2.1.X releases prior to 2.1.6</li>
          </ul>
        </p>

        <p>
          <b>Solution</b>
        </p>
        <p>
          <ul>
            <li>2.1.X users should upgrade to 2.1.6</li>
          </ul>
        </p>

        <p>
          <b>Fixed in</b>
        </p>
        <p>
          <ul>
            <li>Release 2.1.6</li>
          </ul>
        </p>

        <p>Read the <a href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-1959">full CVE advisory</a>.</p>
      </subsection>

      <subsection name="CVE-2019-17557: Enduser UI XSS">
        <p>It was found that the EndUser UI login page reflects the successMessage parameters.
          By this mean, a user accessing the Enduser UI could execute javascript code from URL query string.</p>

        <p>
          <b>Severity</b>
        </p>
        <p>Medium</p>

        <p>
          <b>Affects</b>
        </p>
        <p>
          <ul>
            <li>2.0.X releases prior to 2.0.15</li>
            <li>2.1.X releases prior to 2.1.6</li>
          </ul>
        </p>

        <p>
          <b>Solution</b>
        </p>
        <p>
          <ul>
            <li>2.0.X users should upgrade to 2.0.15</li>
            <li>2.1.X users should upgrade to 2.1.6</li>
          </ul>
        </p>

        <p>
          <b>Fixed in</b>
        </p>
        <p>
          <ul>
            <li>Release 2.0.15</li>
            <li>Release 2.1.6</li>
          </ul>
        </p>

        <p>Read the <a href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-17557">full CVE advisory</a>.</p>
      </subsection>

      <subsection name="CVE-2018-17186: XXE on BPMN definitions">
        <p>An administrator with workflow definition entitlements can use DTD to perform malicious operations, including
          but not limited to file read, file write, and code execution.</p>

        <p>
          <b>Severity</b>
        </p>
        <p>Medium</p>

        <p>
          <b>Affects</b>
        </p>
        <p>
          <ul>
            <li>Releases prior to 2.0.11</li>
            <li>Releases prior to 2.1.2</li>
          </ul>
        </p>
        <p>The unsupported Releases 1.2.x may be also affected.</p>

        <p>
          <b>Solution</b>
        </p>
        <p>
          <ul>
            <li>2.0.X users should upgrade to 2.0.11</li>
            <li>2.1.X users should upgrade to 2.1.2</li>
          </ul>
        </p>

        <p>
          <b>Mitigation</b>
        </p>
        <p>Do not assign workflow definition entitlements to any administrator.</p>

        <p>
          <b>Fixed in</b>
        </p>
        <p>
          <ul>
            <li>Release 2.0.11</li>
            <li>Release 2.1.2</li>
          </ul>
        </p>

        <p>Read the <a href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-17186">full CVE advisory</a>.</p>
      </subsection>

      <subsection name="CVE-2018-17184: Stored XSS">
        <p>A malicious user with enough administration entitlements can inject html-like elements containing JavaScript
          statements into Connector names, Report names, AnyTypeClass keys and Policy descriptions.<br/>
          When another user with enough administration entitlements edits one of the Entities above via Admin Console,
          the injected JavaScript code is executed.</p>

        <p>
          <b>Severity</b>
        </p>
        <p>Important</p>

        <p>
          <b>Affects</b>
        </p>
        <p>
          <ul>
            <li>Releases prior to 2.0.11</li>
            <li>Releases prior to 2.1.2</li>
          </ul>
        </p>

        <p>
          <b>Solution</b>
        </p>
        <p>
          <ul>
            <li>2.0.X users should upgrade to 2.0.11</li>
            <li>2.1.X users should upgrade to 2.1.2</li>
          </ul>
        </p>
        
        <p>
          <b>Fixed in</b>
        </p>
        <p>
          <ul>
            <li>Release 2.0.11</li>
            <li>Release 2.1.2</li>
          </ul>
        </p>

        <p>Read the <a href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-17184">full CVE advisory</a>.</p>
      </subsection>

      <subsection name="CVE-2018-1322: Information disclosure via FIQL and ORDER BY sorting">
        <p>An administrator with user search entitlements can recover sensitive security values using the
          <code>fiql</code> and <code>orderby</code> parameters.</p>

        <p>
          <b>Severity</b>
        </p>
        <p>Medium</p>

        <p>
          <b>Affects</b>
        </p>
        <p>
          <ul>
            <li>Releases prior to 1.2.11</li>
            <li>Releases prior to 2.0.8</li>
          </ul>
        </p>
        <p>The unsupported Releases 1.0.x, 1.1.x may be also affected.</p>

        <p>
          <b>Solution</b>
        </p>
        <p>
          <ul>
            <li>Syncope 1.2.x users should upgrade to 1.2.11</li>
            <li>Syncope 2.0.x users should upgrade to 2.0.8</li>
          </ul>
        </p>
        
        <p>
          <b>Mitigation</b>
        </p>
        <p>Do not assign user search entitlements to any administrator.</p>

        <p>
          <b>Fixed in</b>
        </p>
        <p>
          <ul>
            <li>Release 1.2.11</li>
            <li>Release 2.0.8</li>
          </ul>
        </p>

        <p>Read the <a href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-1322">full CVE advisory</a>.</p>
      </subsection>

      <subsection name="CVE-2018-1321: Remote code execution by administrators with report and template entitlements">
        <p>An administrator with report and template entitlements can use XSL Transformations (XSLT) to perform
          malicious operations, including but not limited to file read, file write, and code execution.</p>

        <p>
          <b>Severity</b>
        </p>
        <p>Medium</p>

        <p>
          <b>Affects</b>
        </p>
        <p>
          <ul>
            <li>Releases prior to 1.2.11</li>
            <li>Releases prior to 2.0.8</li>
          </ul>
        </p>
        <p>The unsupported Releases 1.0.x, 1.1.x may be also affected.</p>

        <p>
          <b>Solution</b>
        </p>
        <p>
          <ul>
            <li>Syncope 1.2.x users should upgrade to 1.2.11</li>
            <li>Syncope 2.0.x users should upgrade to 2.0.8</li>
          </ul>
        </p>
        
        <p>
          <b>Mitigation</b>
        </p>
        <p>Do not assign report and template entitlements to any administrator.</p>

        <p>
          <b>Fixed in</b>
        </p>
        <p>
          <ul>
            <li>Release 1.2.11</li>
            <li>Release 2.0.8</li>
          </ul>
        </p>

        <p>Read the <a href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-1321">full CVE advisory</a>.</p>
      </subsection>

      <subsection name="CVE-2014-3503: Insecure Random implementations used to generate passwords">
        <p>A password is generated for a user in Apache Syncope under certain  circumstances, when no existing password 
          is found. However, the password generation code is relying on insecure Random implementations, which means 
          that an attacker could attempt to guess a generated password.</p>

        <p>
          <b>Affects</b>
        </p>
        <p>
          <ul>
            <li>Releases 1.1.0 to 1.1.7</li>
          </ul>
        </p>

        <p>
          <b>Fixed in</b>
        </p>
        <p>
          <ul>
            <li>Revision <a href="http://svn.apache.org/viewvc?view=revision&amp;revision=r1596537">1596537</a></li>
            <li>Release 1.1.8</li>
          </ul>
        </p>

        <p>Read the <a href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-3503">full CVE advisory</a>.</p>
      </subsection>

      <subsection name="CVE-2014-0111: Remote code execution by an authenticated administrator">	
        <p>In the various places in which Apache Commons JEXL expressions are allowed (derived schema definition, 
          user / group templates, connObjectLinks of resource mappings) a malicious administrator can inject Java code 
          that can be executed remotely by the Java EE container running the Apache Syncope core.</p>

        <p>
          <b>Affects</b>
        </p>
        <p>
          <ul>
            <li>Releases 1.0.0 to 1.0.8</li>
            <li>Releases 1.1.0 to 1.1.6</li>
          </ul>
        </p>

        <p>
          <b>Fixed in</b>
        </p>
        <p>
          <ul>
            <li>Revisions <a href="http://svn.apache.org/viewvc?view=revision&amp;revision=r1586349">1586349</a> / <a href="http://svn.apache.org/viewvc?view=revision&amp;revision=r1586317">1586317</a></li>
            <li>Releases 1.0.9 / 1.1.7</li>
          </ul>
        </p>

        <p>Read the <a href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-0111">full CVE advisory</a>.</p>
      </subsection>
    </section>

  </body>
</document>
