Release Notes FirstSpirit™ 2023.10

Release Notes

FirstSpirit™ 2023.10

1 Administration

1.1 Update of internally used software

As of the release 2023.10, the following internally used software has been updated.

1.2 Configurable metric to detect blocked threads

With the help of a new parameter schedule.maxInactivityTimeout in fs-server.conf, it can be defined within which period of time a schedule task action is considered blocked and aborted if no CPU time has been consumed.

This metric makes it possible to identify threads or schedule task actions that are not using CPU resources within a specified period of time and to cancel them if necessary to optimise efficiency and resource use.

By default, this time frame is set to 10 minutes. A check for the termination condition is made every five minutes.

In exceptional cases, a thread in the standard configuration can therefore remain without CPU consumption for up to 15 minutes before it is recognised as blocked and terminated.

1.3 Critical security vulnerability: "Heap Buffer Overflow" in WebP

Due to CVE-2023-4863, the WebP library used by FirstSpirit has been updated to a version based on libwebp version 1.3.2.

A “heap buffer overflow” in WebP allowed a remote attacker to perform an out-of-bounds memory-write, and thus possibly inject malicious code. A manipulated WebP image can therefor lead to code injection.

FirstSpirit versions since 2019.11 are affected.

How can the vulnerability be exploited?

  • An editor adds a manipulated WebP image to a project.

What do you have to do?

  • (Server) Update to 5.2.230813 (Non-Jakarta) or 5.2.231008 (Jakarta)
  • (Client) Disable the integrated preview in SA (JxBrowser)
  • (Client) Update the local browsers

Mitigation without FS Update

  • (Server) Prevent uploading of WebP (set appropriate restrictions in the project) or
  • (Server) Configure WebP as media type file
  • (Client) Disable the integrated preview in SA (JxBrowser)
  • (Client) Update the local browsers

1.4 Security: External authentication of internal admins

For security reasons, it is no longer possible for server administrators for whom the “external user” option is not set to log in via external authentication (e.g. SAML or LDAP). An attempt to do so will now result in the login dialog being displayed.

This restriction does not apply to normal users and also not to project administrators.

2 Administration / Modules

2.1 SAML Login: Match Modes for External Groups

Two new match modes for external groups have been introduced in the FirstSpirit SAML login module.

The new parameters can be defined in fs-saml.conf (see Installation and Setup of the Module).

group.match.mode

Possible values:

  • contains (default value)
  • equals

With this parameter, the assignment to external groups can be changed from “SAML group must contain the external designation of the group” (contains) to “SAML group must be identical to the external designation” (equals).

group.name

group.name=${saml:groupName}

With this parameter it is possible to extend the SAML group name by any prefix and/or suffix.

Example:

group.name=SAML-${saml:groupName}-GROUP

This configuration would result in a “users” group obtained via SAML login being used in FirstSpirit as a “SAML-users-GROUP”.

2.2 Migration to Jakarta Servlet 6.0

The migration to Jakarta Servlet 6.0 is an essential step to ensure the security of web applications.

With the FirstSpirit version 2023.9, the changeover to Jakarta Servlet 6.0 with support for automatic migration took place.

Support for automatic migration will be removed with FirstSpirit 2024.9.

In contrast to the phased rollout for cloud customers, on-premises customers are able to test and migrate their FirstSpirit servers once version 2023.9 or 2023.10 has been released.

However, we strongly recommend to wait with the update of productive servers at least until release 2023.11 since we aim to guarantee the compatibility for modules provided by Crownpeak with that release.

Important:

  • If FirstSpirit is run in an on-premises scenario, the Tomcat version must be updated when migrating to the FirstSpirit JakartaEE edition. Since the servlet version will be updated to 6.0, a 10.1.x version of Tomcat is required.
  • The use of FirstSpirit version 2023.9 or newer requires that Java version 17 is used.

The FirstSpirit installation may be affected if any of the following conditions apply:

  • The FirstSpirit installation is not maintained in the Crownpeak Cloud and deploys web-applications to an application server like Apache Tomcat.
  • A custom module is used that contains a WebApp component with code that uses the legacy Java Servlet API.
  • A custom module is used that contains a WebApp component with dependencies that use the old JavaEE API, e.g., Spring Boot 2.x.

More information and updates can be found in the Crownpeak Community and the detailed Jakarta FAQ.

Contact Customer Support Team if you have questions or feedback regarding the migration.

3 General

Information on the servlet version used

In the ServerManager, the list of web applications now also provides information on the servlet version used. This can be used to determine whether components are still installed on a server with Jakarta EE support that are to be migrated to the Jakarta EE API in the near future.

Servlet Version
Servlet Version

4 External Synchronization / Content Transport

ContentTransport: Improved feature cleanup

When creating features, these are now no longer always saved in the project local storage, but only if this has been explicitly selected.

Note: When creating features using the FirstSpirit API, the project local storage is automatically used.

5 FirstSpirit Content Experience Tools (CXT)

Latest module versions

FirstSpirit 2023.10 supports the following module versions for FirstSpirit Content Experience Tools.

Module / file nameVersion number
FirstSpirit CXT Plattform
platform-[version].fsm
5.0.2
FirstSpirit CXT DAP Bridge
dataservice-[version].fsm
1.44.15
FirstSpirit CXT FragmentCreator
fragment-creator-[version].fsm
5.0.1
FirstSpirit Fragment DAP
fragmentdap-[version].fsm
1.40.23
FirstSpirit Media DAP
mediadap-[version].fsm
1.31.14
FirstSpirit PageRef DAP
pageref-[version].fsm
1.9.14
FirstSpirit Markdown Editor
markdown-editor-[version].fsm
1.29.13
FirstSpirit Tagging Editor
tagging-editor-[version].fsm
1.29.13
FirstSpirit CXT FragmentCreator - CaaS Integration
caas-integration-[version].fsm
1.31.13

6 Module Development, Scripts, API

6.1 Specification of a minimum supported FS version for modules

With the current FirstSpirit release it is now possible to optionally specify a minimum required FirstSpirit version during module development (module.xml).

The corresponding FirstSpirit version can be defined within the <module> block.

Example:

<module>
<name>FirstSpirit Beispiel-Modul</name>
<version>5.2</version>
<min-fs-version>5.2.230909</min-fs-version>

<components>
...
</components>
<module>

This syntax can be used, for example, to ensure that a module can only be installed on a FirstSpirit server with version 5.2.230909 or newer.

The syntax is <FSMajorVersion>.<FSMinorVersion>.<FSBuildNumber>, where

  • <FSMajorVersion>: 5
  • <FSMinorVersion>: 2
  • <FSBuildNumber>: 6-digit number consisting of two digits each for <year>, <version in year>, <build number>

6.2 New method for getting the path to a web application directory of the web server

The interface WebServer (FirstSpirit Developer API, package de.espirit.firstspirit.module) was extended by a new method getWebAppDir(String targetPath), which returns the path to a specific web application directory of this web server. Since the method has a default implementation, no modification is necessary for most derivations of the class.

In addition, the error that led to the results of generation jobs not being visible for the embedded Tomcat provided with FirstSpirit 2023.9 was fixed.

Overview

ID Description Categories
CORE-8226

The interfaces in the API package de.espirit.common.function are now classified as deprecated and can be replaced by their respective counterparts from the JDK. Please mention the respective ApiDoc for details.

FirstSpirit API
CORE-11447

Installing and uninstalling web application components using the API methods installWebApp and uninstallWebapp (FirstSpirit Developer API, interface ModuleAdminAgent, package de.espirit.firstspirit.agency) will now only redeploy the affected web application, and no longer all web applications containing the web application component.

FirstSpirit API
CORE-13304

During module development it is now possible to specify a minimum supported FirstSpirit version.

Further information can be found in chapter “Module Development, Scripts, API: Specification of a minimum supported FS version for modules”.

Module development
CORE-14442

With the help of a new parameter schedule.maxInactivityTimeout in fs-server.conf, it can be defined within which period of time a schedule task action is considered blocked and aborted if no CPU time has been consumed.

Further information can be found in chapter “Administration: Configurable metric to detect blocked threads”.

Server Administrator
CORE-15037

Update of internally used software

Further information can be found in chapter “Administration: Update of internally used software”.

Integrated software
CORE-15129

Fixed a problem when selecting section templates with a FS_CATALOG input component. When too many section templates were present, the template selection could be cut off at the edge of the display in rare cases.

SiteArchitect
CORE-15476

A problem has been fixed that caused an incorrect configuration of the web application of “FirstSpirit Dynamic Database Access” Module (fs-integration.fsm).

Server Administrator
CORE-15501

Two new match modes for external groups have been introduced in the FirstSpirit SAML login module. This provides the flexibility to define the matching strategy for external groups according to requirements.

Further information can be found in chapter “Administration / Modules: SAML Login: Match Modes for External Groups”.

Server Administrator
CORE-15530

When creating features, only explicitly selected features are stored in the “Project-Local-Storage”.

Further information can be found in chapter “External Synchronization / Content Transport: ContentTransport: Improved feature cleanup”.

Content Transport
CORE-15544

The robustness of revision generation in FirstSpirit has been improved so that the probability of TIMEOUT status is even lower.

FirstSpirit Administrator
CORE-15565

Fixed a possible deadlock when updating the search index.

Server Administrator
CORE-15569

New method getWebAppDir(String targetPath) in the interface WebServer (package de.espirit.firstspirit.module, FirstSpirit Developer API)

Further information can be found in chapter “Module Development, Scripts, API: New method for getting the path to a web application directory of the web server”.

FirstSpirit API, Server Administrator
CORE-15597

For security reasons, it is no longer possible for server administrators for whom the “external user” option is not set to log in via external authentication (e.g. SAML or LDAP).

Further information can be found in chapter “Administration: Security: External authentication of internal admins”.

Security, Server Administrator
CORE-15604

Fixed an error that could lead to the preview image not being calculated based on the original image when importing images incl. corresponding resolutions.

Media
CORE-15610

In the ServerManager, the list of web applications now also provides information on the servlet version used.

Further information can be found in chapter “General: Information on the servlet version used”.

ServerManager
CORE-15613

The “FirstSpirit BasicSearch” module now no longer uses legacy components.

Modules
CORE-15634

In the course of the changeover to the new Jakarta servlet version, web applications are now deployed with XML schema version 6.0.

Server Administrator, Web applications
CORE-15652

FirstSpirit Content Experience Tools: Latest module versions

Further information can be found in chapter “FirstSpirit Content Experience Tools (CXT): Latest module versions”.

FirstSpirit Content Experience Tools (CXT)
CORE-15662

When installing modules that contain FirstSpirit artefacts, an error message is now issued. In addition, these artefacts are ignored during operation.

Server Administrator
CORE-15671

Migration to Jakarta Servlet 6.0

Further information can be found in chapter “Administration / Modules: Migration to Jakarta Servlet 6.0”.

FirstSpirit Administrator, Java, Module development, Modules, Server Administrator
CORE-15682

A WebP library libwebp vulnerability has been discovered (CVE-2023-4863). The vulnerability is classified as critical. Crownpeak therefore recommends a prompt update to a secured FirstSpirit version (latest 2023.8 build or 2023.10). Due to CVE-2023-4863, the WebP library used by FirstSpirit has been updated to a version based on libwebp version 1.3.2.

Further information can be found in chapter “Administration: Critical security vulnerability: "Heap Buffer Overflow" in WebP”.

Security
CXT-2941

The order of allowed format templates in the input components CMS_INPUT_DOM and CMS_INPUT_DOMTABLE is now considered for the display in the editor.

ContentCreator
CXT-2968

If an external preview URL has been defined for the ContentCreator, this is now also called up if there is no start page in the Site Structure of the project.

ContentCreator

Deprecations

Functionality Deprecated as of Will be removed / Was removed as of
Input component CMS_INPUT_CONTENTAREALIST 5.2R3
Input component CMS_INPUT_CONTENTLIST 5.2R3
Input component CMS_INPUT_FILE 5.2R3
Input component CMS_INPUT_LINKLIST 5.2R3
Input component CMS_INPUT_OBJECTCHOOSER 5.2R3
Input component CMS_INPUT_PAGEREF 5.2R3
Input component CMS_INPUT_PICTURE 5.2R3
Input component CMS_INPUT_TABLIST 5.2R3
FirstSpirit Access API: de.espirit.firstspirit.agency.GroupsAgent 5.2R15
FirstSpirit Access API: delete (de.espirit.firstspirit.access.AccessUtil) 5.2R18
FirstSpirit Access API: release (de.espirit.firstspirit.access.AccessUtil) 2018-06
FirstSpirit Access API: getLastLoginAsDate (de.espirit.firstspirit.agency.UserStatisticsAgent) 2018-07
FirstSpirit Access API: remainingDurationOfCurrentStageInMillis (de.espirit.firstspirit.server.MaintenanceModeInfo) 2018-07 2025-13
FirstSpirit Access API: getStartingTimeOfStageAsDate (de.espirit.firstspirit.server.MaintenanceModeInfo) 2018-07 2025-13
FirstSpirit Access API: getSelectedWebserverConfiguration (de.espirit.firstspirit.access.serverConfiguration) 2018-10 2025-13
FirstSpirit Access API: setSelectedWebserverConfiguration (de.espirit.firstspirit.access.serverConfiguration) 2018-10 2025-13
FirstSpirit Access API: getSelectedWebServer (de.espirit.firstspirit.access.project.Project) 2018-10 2025-13
FirstSpirit Access API: setSelectedWebServer (de.espirit.firstspirit.access.project.Project) 2018-10 2025-13
FirstSpirit Access API: getLostAndFoundStoreNodes(); (de.espirit.firstspirit.feature.FeatureInstallResult) 2018-10
FirstSpirit Access API: getDeletedStoreNodes(); (de.espirit.firstspirit.feature.FeatureInstallResult) 2018-10
FirstSpirit Access API: de.espirit.firstspirit.access.store.Previewable 2019-01
WebSphere Application Server support for FirstSpirit 2019-05
Database layer for Oracle Database 11g/12c 2020-12 2025-05
FirstSpirit Access API: redirectTemplateLogToDefaultLog() (Interface RenderingAgent.Renderer) 2021-05
Support for Log4j 1 2022-05 2024-06