<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://en.wiki.bluespice.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Rvogel1</id>
	<title>BlueSpice Helpdesk - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://en.wiki.bluespice.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Rvogel1"/>
	<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/wiki/Special:Contributions/Rvogel1"/>
	<updated>2026-11-12T20:39:50Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.11</generator>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Security:Security_Advisories/BSSA-2026-09&amp;diff=15013</id>
		<title>Security:Security Advisories/BSSA-2026-09</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Security:Security_Advisories/BSSA-2026-09&amp;diff=15013"/>
		<updated>2026-11-06T07:02:58Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Textbox|boxtype=important|icon=yes|header=Update 2026-11-06|text=This advisory was corrected and extended:&lt;br /&gt;
* Not all containers were rebuilt for BlueSpice 5.1.11.2 and 5.2.7.2 on 2026-10-30. The rebuilt images of &amp;lt;code&amp;gt;wire&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;formula&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;pdf&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;diagram&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;frontendcache&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;kerberosproxy&amp;lt;/code&amp;gt; were published on 2026-11-04. &amp;lt;code&amp;gt;collabpads&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;proxy&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;database&amp;lt;/code&amp;gt; have not been rebuilt yet. Their risk stays &#039;&#039;&#039;low&#039;&#039;&#039;. See &amp;quot;Fixed in&amp;quot; and &amp;quot;Solution&amp;quot;.&lt;br /&gt;
* New section on Ghostscript (container &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt;, all editions): Ghostscript contains its own copy of the Brotli library. According to our analysis, this copy already contains the fix. Security scanners may still report it. As a precaution, we recommend disabling the extension PdfHandler. Risk: &#039;&#039;&#039;low&#039;&#039;&#039;. See [[#Precaution: disable PdfHandler (all editions)|below]].&lt;br /&gt;
* CVE-2026-115557: the container &amp;lt;code&amp;gt;bluespice/ai&amp;lt;/code&amp;gt; is now also fixed in BlueSpice 5.2.7.2 (published on 2026-11-06), earlier than announced (5.2.8). After the update, the AI service no longer needs to be disabled.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|Date&lt;br /&gt;
|2026-10-29 (updated 2026-11-06)&lt;br /&gt;
|-&lt;br /&gt;
|Severity&lt;br /&gt;
|reported &amp;quot;critical&amp;quot; (CVSS 3.1: 9.8), BlueSpice assessment: &#039;&#039;&#039;critical&#039;&#039;&#039; (container &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; in BlueSpice pro and farm, publicly readable wikis), &#039;&#039;&#039;high&#039;&#039;&#039; (same, wikis that require a login), &#039;&#039;&#039;medium&#039;&#039;&#039; (container &amp;lt;code&amp;gt;bluespice/chat&amp;lt;/code&amp;gt;), &#039;&#039;&#039;low&#039;&#039;&#039; (all other containers, and Ghostscript in container &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; in all editions)&amp;lt;br /&amp;gt;​&lt;br /&gt;
CVE-2026-115557: reported &amp;quot;critical&amp;quot; (CVSS 4.0: 9.4), BlueSpice assessment: &#039;&#039;&#039;medium&#039;&#039;&#039; (containers &amp;lt;code&amp;gt;bluespice/ai&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;bluespice/chat&amp;lt;/code&amp;gt;), not affected (all other containers)&lt;br /&gt;
|-&lt;br /&gt;
|Affected&lt;br /&gt;
|&lt;br /&gt;
* Container &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; in BlueSpice pro and farm 5.1 up to 5.1.11.1 and 5.2 up to 5.2.7.1&lt;br /&gt;
* Container &amp;lt;code&amp;gt;bluespice/chat&amp;lt;/code&amp;gt; in BlueSpice 5.2 up to 5.2.7.1, if the MS Teams integration is used&lt;br /&gt;
* All other containers, including &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; in BlueSpice free, contain the affected library, but are not exploitable in default configuration&lt;br /&gt;
* Ghostscript in container &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; (all editions, all versions up to 5.1.11.2 and 5.2.7.2): own copy of the Brotli library, which most likely already contains the fix (precaution)&lt;br /&gt;
* CVE-2026-115557: Container &amp;lt;code&amp;gt;bluespice/ai&amp;lt;/code&amp;gt; in BlueSpice 5.2 up to 5.2.7.1, if the AI service is used&lt;br /&gt;
* CVE-2026-115557 (same issue in Node.js, no own CVE): Container &amp;lt;code&amp;gt;bluespice/chat&amp;lt;/code&amp;gt; in BlueSpice 5.2 up to 5.2.7.1, if the chat service is used&lt;br /&gt;
|-&lt;br /&gt;
|Fixed in&lt;br /&gt;
|&lt;br /&gt;
* BlueSpice 5.1.11.2 and BlueSpice 5.2.7.2:&lt;br /&gt;
** containers &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; (all editions) and &amp;lt;code&amp;gt;chat&amp;lt;/code&amp;gt; (5.2 only): published on 2026-10-30&lt;br /&gt;
** containers &amp;lt;code&amp;gt;wire&amp;lt;/code&amp;gt; (5.2 only), &amp;lt;code&amp;gt;formula&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;pdf&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;diagram&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;kerberosproxy&amp;lt;/code&amp;gt; (5.1 and 5.2) and &amp;lt;code&amp;gt;frontendcache&amp;lt;/code&amp;gt; (5.2): published on 2026-11-04&lt;br /&gt;
** &amp;lt;!-- TODO: update when rebuilt --&amp;gt; containers &amp;lt;code&amp;gt;collabpads&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;proxy&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;database&amp;lt;/code&amp;gt;: not rebuilt yet (risk: low)&lt;br /&gt;
** Ghostscript in container &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt;: no update available; precaution see below&lt;br /&gt;
* CVE-2026-115557: BlueSpice 5.2.7.2 (container &amp;lt;code&amp;gt;bluespice/chat&amp;lt;/code&amp;gt;: published on 2026-10-30; container &amp;lt;code&amp;gt;bluespice/ai&amp;lt;/code&amp;gt;: published on 2026-11-06)&lt;br /&gt;
|-&lt;br /&gt;
|CVE&lt;br /&gt;
|&lt;br /&gt;
* [https://nvd.nist.gov/vuln/detail/CVE-2026-111497 CVE-2026-111497]&lt;br /&gt;
* [https://www.cve.org/CVERecord?id=CVE-2026-115557 CVE-2026-115557]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Problem==&lt;br /&gt;
&#039;&#039;&#039;CVE-2026-111497:&#039;&#039;&#039; A vulnerability in the Brotli decompression library (publicly known as &amp;quot;Node2Shell&amp;quot;) allows an attacker to write beyond a memory buffer by sending specially crafted compressed data. This can crash the program, reveal memory contents and allow the attacker to run code. The library is used by Node.js and by many Linux programs, e.g. the &amp;lt;code&amp;gt;curl&amp;lt;/code&amp;gt; library that PHP uses for outgoing HTTP requests. Public exploit code exists for Node.js applications and for PHP applications that download data from web addresses. The US authority CISA lists the vulnerability as actively exploited.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CVE-2026-115557:&#039;&#039;&#039; The private keys of several intermediate certificates of the certificate authority eMudhra were generated incorrectly and are publicly known. Anyone can create certificates for any website with them. Browsers already block these certificates, but many programs that check certificates only against a list of trusted root certificates still accept them. Python and Node.js, which the AI service and the chat service use, were updated to block them. Older Python versions are safe if their list of trusted root certificates is up to date.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!&#039;&#039;&#039;CVE&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Component&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Type of vulnerability&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;BlueSpice 5&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2026-111497&lt;br /&gt;
|Brotli library (container &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; in BlueSpice pro and farm)&lt;br /&gt;
|Out-of-bounds write when decompressing data, remote code execution&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-purple-bg&amp;quot; |affected&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2026-111497&lt;br /&gt;
|Node.js (container &amp;lt;code&amp;gt;bluespice/chat&amp;lt;/code&amp;gt;)&lt;br /&gt;
|Out-of-bounds write when decompressing data, possibly remote code execution&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |affected, if MS Teams integration is used&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2026-111497&lt;br /&gt;
|Brotli library / Node.js (other containers)&lt;br /&gt;
|Out-of-bounds write when decompressing data&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |not exploitable&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2026-111497&lt;br /&gt;
|Ghostscript (container &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt;, all editions)&lt;br /&gt;
|Out-of-bounds write when decompressing data&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |most likely fixed, precaution recommended&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2026-115557&lt;br /&gt;
|Python (container &amp;lt;code&amp;gt;bluespice/ai&amp;lt;/code&amp;gt;)&lt;br /&gt;
|Forged server certificates are accepted for outgoing connections&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |affected, if the AI service is used&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2026-115557 (same issue in Node.js)&lt;br /&gt;
|Node.js (container &amp;lt;code&amp;gt;bluespice/chat&amp;lt;/code&amp;gt;)&lt;br /&gt;
|Forged server certificates are accepted for outgoing connections&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |affected, if the chat service is used&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2026-115557&lt;br /&gt;
|Python / Node.js / Java (other containers)&lt;br /&gt;
|Forged server certificates are accepted for outgoing connections&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |not affected&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Impact assessment==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
!Component&lt;br /&gt;
!Assessment&lt;br /&gt;
!Mitigation without update&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |Container &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; (BlueSpice pro and farm)&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; class=&amp;quot;col-purple-bg&amp;quot; |&#039;&#039;&#039;Critical&#039;&#039;&#039; on publicly readable wikis, high on wikis that require a login. The extensions ExternalData (BlueSpice 5.1 and 5.2) and ExternalContent (BlueSpice 5.2) let users load data from any web address into a page. The wiki decompresses this data with the affected library. An attacker who controls a web server can use this to run commands in the wiki container. Public exploit code shows this for a comparable PHP application.&lt;br /&gt;
&lt;br /&gt;
Unlike the PHP vulnerabilities in [[Security:Security Advisories/BSSA-2026-08|BSSA-2026-08]], network access to the wiki is not enough. The attacker needs &#039;&#039;&#039;read access to the wiki&#039;&#039;&#039; itself. On wikis that require a login, only logged-in users can exploit the vulnerability. The main risk is on publicly readable wikis, where no login is needed. Such wikis are rare among BlueSpice installations. In addition, the wiki must be able to connect to the attacker&#039;s server on the internet.&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |Disable the extensions ExternalData and ExternalContent (see below).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |Container &amp;lt;code&amp;gt;bluespice/chat&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |&#039;&#039;&#039;Medium&#039;&#039;&#039;. The chat service is not part of standard installations. Its MS Teams connector decompresses incoming requests before it checks whether they come from Microsoft. This connector is not reachable from outside in the default configuration of &amp;lt;code&amp;gt;bluespice-deploy&amp;lt;/code&amp;gt;. If you have made it reachable for MS Teams, the risk is high: an attacker without login could possibly run code in the chat container.&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |Do not expose the MS Teams connector, or reject requests with the header &amp;lt;code&amp;gt;Content-Encoding: br&amp;lt;/code&amp;gt; in the reverse proxy in front of it.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |All other containers, including &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; in BlueSpice free&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |&#039;&#039;&#039;Low&#039;&#039;&#039;. These services contain the affected library, but do not decompress data that users can control. Other features of the wiki that download data (e.g. RSS feeds, PageForms, EmbedVideo, Semantic MediaWiki, search) only use addresses set by administrators or internal services. An attack through them is very unlikely, as it would require a compromised service or a rarely used configuration. The same applies to the third-party image &amp;lt;code&amp;gt;mongo:8.2&amp;lt;/code&amp;gt;, which &amp;lt;code&amp;gt;bluespice-deploy&amp;lt;/code&amp;gt; uses for the database of the &amp;lt;code&amp;gt;collabpads&amp;lt;/code&amp;gt; service.&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |None required. Update with the next maintenance.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |Ghostscript in container &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; (all editions)&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |&#039;&#039;&#039;Low&#039;&#039;&#039;. The wiki uses Ghostscript to create preview images of uploaded PDF files. Ghostscript contains its own copy of the Brotli library. According to our analysis of the source code, this copy already contains the fix, but it still reports the old version number. Security scanners may therefore report it as affected. We could not fully verify the compiled program and know of no exploit code for Ghostscript. An attack would require a user who is allowed to upload files. Usually only logged-in users with edit rights can do this, also on publicly readable wikis.&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |As a precaution, disable the extension PdfHandler (see below).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |Container &amp;lt;code&amp;gt;bluespice/ai&amp;lt;/code&amp;gt; (CVE-2026-115557)&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |&#039;&#039;&#039;Medium&#039;&#039;&#039;. The AI service is not part of standard installations. It sends questions, wiki content and the API key of the AI provider (e.g. Azure OpenAI, OpenAI, Google, IONOS) over encrypted connections. It still accepts the forged certificates. An attacker who can intercept and redirect the network traffic between your server and the AI provider can read the API key and the wiki content and change the answers. Access to the wiki is not required. However, the attacker must control the network path, e.g. a router, DNS or proxy server between your server and the AI provider. This makes an attack difficult. We do not know of any attacks.&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |Update to BlueSpice 5.2.7.2. If you cannot update, disable the AI service: set &amp;lt;code&amp;gt;AI=false&amp;lt;/code&amp;gt; in the &amp;lt;code&amp;gt;.env&amp;lt;/code&amp;gt; file and run &amp;lt;code&amp;gt;./bluespice-deploy up -d --remove-orphans&amp;lt;/code&amp;gt;. The AI features of the wiki and the chat are not available until then.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |Container &amp;lt;code&amp;gt;bluespice/chat&amp;lt;/code&amp;gt; (CVE-2026-115557, same issue in Node.js)&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |&#039;&#039;&#039;Medium&#039;&#039;&#039;. Same issue as for the AI service. The chat service accepts the forged certificates on its connections to MS Teams or Slack. An attacker who controls the network path can read and change chat messages and read the access credentials of the connector.&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |None. Update to BlueSpice 5.2.7.2, or disable the chat service.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |All other containers (CVE-2026-115557)&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |&#039;&#039;&#039;Not affected&#039;&#039;&#039;. &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;bluespice/search&amp;lt;/code&amp;gt; contain Python, but either already reject the forged certificates or make no outgoing connections. The same applies to Node.js and Java in the other containers.&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |None required.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Solution ==&lt;br /&gt;
Update to &#039;&#039;&#039;BlueSpice 5.2.7.2&#039;&#039;&#039; or &#039;&#039;&#039;BlueSpice 5.1.11.2&#039;&#039;&#039;. As with [[Security:Security Advisories/BSSA-2026-08|BSSA-2026-08]], these are nano releases without functional changes. We recommend the update for &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; in all editions (free, pro and farm). The containers listed under &amp;quot;Fixed in&amp;quot; were rebuilt with the fixed Brotli library (&amp;lt;code&amp;gt;brotli-libs 1.2.1&amp;lt;/code&amp;gt;) and fixed Node.js versions. For these containers, the image tags &amp;lt;code&amp;gt;5&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;5.2&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;5.1&amp;lt;/code&amp;gt; point to the fixed images. &amp;lt;code&amp;gt;collabpads&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;proxy&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;database&amp;lt;/code&amp;gt; will follow (risk: low). If you have already updated to 5.2.7.2 or 5.1.11.2 before 2026-11-04, run the update commands again to get the rebuilt service containers.&lt;br /&gt;
&lt;br /&gt;
In the &amp;lt;code&amp;gt;.env&amp;lt;/code&amp;gt; file of &amp;lt;code&amp;gt;bluespice-deploy&amp;lt;/code&amp;gt;, set &amp;lt;code&amp;gt;VERSION&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;5.2&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;5.1&amp;lt;/code&amp;gt;. Then run these commands in the &amp;lt;code&amp;gt;compose&amp;lt;/code&amp;gt; directory of &amp;lt;code&amp;gt;bluespice-deploy&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;./bluespice-deploy pull &amp;amp;&amp;amp; ./bluespice-deploy up -d&amp;lt;/code&amp;gt;. Use the &amp;lt;code&amp;gt;bluespice-deploy&amp;lt;/code&amp;gt; script instead of plain &amp;lt;code&amp;gt;docker compose&amp;lt;/code&amp;gt;, because only the script loads all required &amp;lt;code&amp;gt;docker-compose.*.yml&amp;lt;/code&amp;gt; files.&lt;br /&gt;
&lt;br /&gt;
To check whether your installation is fixed, run:&lt;br /&gt;
* &amp;lt;code&amp;gt;./bluespice-deploy exec wiki-web apk info -v brotli-libs&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;./bluespice-deploy exec wiki-task apk info -v brotli-libs&amp;lt;/code&amp;gt;: must show &amp;lt;code&amp;gt;brotli-libs-1.2.1-r0&amp;lt;/code&amp;gt; or higher&lt;br /&gt;
* &amp;lt;code&amp;gt;./bluespice-deploy exec chat node -v&amp;lt;/code&amp;gt; (BlueSpice 5.2, only if the chat service is used): must show &amp;lt;code&amp;gt;v24.22.1&amp;lt;/code&amp;gt; or higher&lt;br /&gt;
* &amp;lt;code&amp;gt;./bluespice-deploy exec ai python3 -V&amp;lt;/code&amp;gt; (BlueSpice 5.2, only if the AI service is used): must show &amp;lt;code&amp;gt;Python 3.12.16&amp;lt;/code&amp;gt; or higher&lt;br /&gt;
&lt;br /&gt;
The fixed image of &amp;lt;code&amp;gt;bluespice/ai&amp;lt;/code&amp;gt; was published on 2026-11-06. If you have already updated to 5.2.7.2 before that date and use the AI service, run the update commands again. If you disabled the AI service because of this advisory, you can enable it again after the update (&amp;lt;code&amp;gt;AI=true&amp;lt;/code&amp;gt; in the &amp;lt;code&amp;gt;.env&amp;lt;/code&amp;gt; file, then &amp;lt;code&amp;gt;./bluespice-deploy up -d&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
=== Mitigation without update: disable ExternalData and ExternalContent (BlueSpice pro and farm) ===&lt;br /&gt;
Use the same method as in [[Security:Security Advisories/BSSA-2026-06#Mitigation:_disable_Extension:ExternalData|BSSA-2026-06]]: mount a copy of the settings file in which the extensions are not loaded. In BlueSpice 5.1, the command only finds ExternalData, as ExternalContent is not part of 5.1.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./bluespice-deploy cp wiki-web:/app/bluespice/w/settings.d/040-BlueSpiceProDistribution.php ./&lt;br /&gt;
sed -i -E &amp;quot;s/^(wfLoadExtension\( &#039;External(Data|Content)&#039; \);)/#\1/&amp;quot; 040-BlueSpiceProDistribution.php&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Add the file to &amp;lt;code&amp;gt;docker-compose.override.yml&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
services:&lt;br /&gt;
  wiki-web:&lt;br /&gt;
    volumes:&lt;br /&gt;
      - ./040-BlueSpiceProDistribution.php:/app/bluespice/w/settings.d/040-BlueSpiceProDistribution.php:ro&lt;br /&gt;
  # same for wiki-task and wiki-installer&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Then re-create the containers with &amp;lt;code&amp;gt;./bluespice-deploy up -d&amp;lt;/code&amp;gt;. The copied file belongs to the current version.&lt;br /&gt;
{{Textbox|boxtype=warning|icon=yes|header=Remove the mount when you update|text=Remove the mount before or together with the update. Otherwise the copied file of the old version replaces the file of the new version.}}&lt;br /&gt;
&lt;br /&gt;
While the extensions are disabled, pages that use them show the parser functions as plain text or no data. No content is lost.&lt;br /&gt;
&lt;br /&gt;
=== Precaution: disable PdfHandler (all editions) ===&lt;br /&gt;
The extension PdfHandler creates preview images of uploaded PDF files with Ghostscript. Ghostscript contains its own copy of the Brotli library and does not use the system library &amp;lt;code&amp;gt;brotli-libs&amp;lt;/code&amp;gt;. The update to 5.2.7.2 or 5.1.11.2 therefore does not change it. According to our analysis, this copy already contains the fix (see &amp;quot;Impact assessment&amp;quot;). Because we cannot fully verify this, we recommend disabling PdfHandler as a precaution until an updated Ghostscript is available.&lt;br /&gt;
&lt;br /&gt;
Use the same method as above with the file &amp;lt;code&amp;gt;030-BlueSpiceFreeDistribution.php&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./bluespice-deploy cp wiki-web:/app/bluespice/w/settings.d/030-BlueSpiceFreeDistribution.php ./&lt;br /&gt;
sed -i -E &amp;quot;s/^(wfLoadExtension\( &#039;PdfHandler&#039; \);)/#\1/&amp;quot; 030-BlueSpiceFreeDistribution.php&lt;br /&gt;
grep -n &amp;quot;PdfHandler&amp;quot; 030-BlueSpiceFreeDistribution.php&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
The last command must show &amp;lt;code&amp;gt;#wfLoadExtension( &#039;PdfHandler&#039; );&amp;lt;/code&amp;gt;. Add the file to &amp;lt;code&amp;gt;docker-compose.override.yml&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
services:&lt;br /&gt;
  wiki-web:&lt;br /&gt;
    volumes:&lt;br /&gt;
      - ./030-BlueSpiceFreeDistribution.php:/app/bluespice/w/settings.d/030-BlueSpiceFreeDistribution.php:ro&lt;br /&gt;
  # same for wiki-task and wiki-installer&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
If you also disable ExternalData and ExternalContent, add both files to the &amp;lt;code&amp;gt;volumes&amp;lt;/code&amp;gt; list. Then re-create the containers with &amp;lt;code&amp;gt;./bluespice-deploy up -d&amp;lt;/code&amp;gt;. The copied file belongs to the current version. We will announce here when an updated Ghostscript is available.&lt;br /&gt;
{{Textbox|boxtype=warning|icon=yes|header=Remove the mount when you update|text=Remove the mount before or together with the next update. Otherwise the copied file of the old version replaces the file of the new version.}}&lt;br /&gt;
&lt;br /&gt;
While PdfHandler is disabled, PDF files can still be uploaded and downloaded. The wiki does not create new preview images for them and shows a file icon instead. No content is lost.&lt;br /&gt;
&lt;br /&gt;
=== Was my installation compromised? ===&lt;br /&gt;
We do not know of any attacks on BlueSpice installations. The vulnerability has been public since 2026-10-21. Public exploit code for a comparable PHP application exists since 2026-10-28.&lt;br /&gt;
&lt;br /&gt;
Installing the update or disabling the extensions stops further exploitation. It does not remove anything an attacker may have left behind. If your wiki uses BlueSpice pro or farm and could connect to servers on the internet, check:&lt;br /&gt;
# &#039;&#039;&#039;Pages, templates and modules&#039;&#039;&#039; with &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#get_web_data}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#get_external_data}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#embed}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; that point to servers you do not know, and modules that use &amp;lt;code&amp;gt;mw.ext.externalData&amp;lt;/code&amp;gt;.&lt;br /&gt;
# &#039;&#039;&#039;The access log of the reverse proxy&#039;&#039;&#039; for requests to &amp;lt;code&amp;gt;api.php&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;index.php&amp;lt;/code&amp;gt; with these functions. They can also be used without saving a page, e.g. in a preview. See the notes on log analysis in [[Security:Security Advisories/BSSA-2026-06|BSSA-2026-06]].&lt;br /&gt;
# &#039;&#039;&#039;The logs of &amp;lt;code&amp;gt;wiki-web&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;wiki-task&amp;lt;/code&amp;gt;&#039;&#039;&#039; for processes that ended with a segmentation fault (e.g. &amp;lt;code&amp;gt;exited on signal 11&amp;lt;/code&amp;gt;), and, if available, your firewall logs for connections from the wiki to unknown servers.&lt;br /&gt;
&lt;br /&gt;
If you find signs of an attack, follow the procedure in [[Security:Security Advisories/BSSA-2026-08|BSSA-2026-08]] (section &amp;quot;Was my installation compromised?&amp;quot;) and contact the Hallo Welt! GmbH support.&lt;br /&gt;
&lt;br /&gt;
=== BlueSpice cloud ===&lt;br /&gt;
&amp;lt;!-- TODO: Operations to confirm status of the cloud instances before publishing --&amp;gt;&lt;br /&gt;
&amp;lt;!-- TODO (2026-11-05): Operations to confirm whether PdfHandler is disabled in the cloud as a precaution --&amp;gt;&lt;br /&gt;
BlueSpice cloud uses the same containers and will be updated by Hallo Welt! GmbH, including the AI service. No action is required from cloud customers.&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Security:Security_Advisories/BSSA-2026-09&amp;diff=15003</id>
		<title>Security:Security Advisories/BSSA-2026-09</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Security:Security_Advisories/BSSA-2026-09&amp;diff=15003"/>
		<updated>2026-11-05T15:12:23Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Update 2026-11-05:&#039;&#039;&#039; This advisory was corrected:&lt;br /&gt;
* Not all containers were rebuilt for BlueSpice 5.1.11.2 and 5.2.7.2 on 2026-10-30. The rebuilt images of &amp;lt;code&amp;gt;chat&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;wire&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;formula&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;pdf&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;diagram&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;frontendcache&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;kerberosproxy&amp;lt;/code&amp;gt; were published on 2026-11-04. &amp;lt;code&amp;gt;collabpads&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;proxy&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;database&amp;lt;/code&amp;gt; have not been rebuilt yet. Their risk stays &#039;&#039;&#039;low&#039;&#039;&#039;. See &amp;quot;Fixed in&amp;quot; and &amp;quot;Solution&amp;quot;.&lt;br /&gt;
* New section on Ghostscript (container &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt;, all editions): Ghostscript contains its own copy of the Brotli library. According to our analysis, this copy already contains the fix. Security scanners may still report it. As a precaution, we recommend disabling the extension PdfHandler. Risk: &#039;&#039;&#039;low&#039;&#039;&#039;. See [[#Precaution: disable PdfHandler (all editions)|below]].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|Date&lt;br /&gt;
|2026-10-29 (updated 2026-11-05)&lt;br /&gt;
|-&lt;br /&gt;
|Severity&lt;br /&gt;
|reported &amp;quot;critical&amp;quot; (CVSS 3.1: 9.8), BlueSpice assessment: &#039;&#039;&#039;critical&#039;&#039;&#039; (container &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; in BlueSpice pro and farm, publicly readable wikis), &#039;&#039;&#039;high&#039;&#039;&#039; (same, wikis that require a login), &#039;&#039;&#039;medium&#039;&#039;&#039; (container &amp;lt;code&amp;gt;bluespice/chat&amp;lt;/code&amp;gt;), &#039;&#039;&#039;low&#039;&#039;&#039; (all other containers, and Ghostscript in container &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; in all editions)&amp;lt;br /&amp;gt;​&lt;br /&gt;
CVE-2026-115557: reported &amp;quot;critical&amp;quot; (CVSS 4.0: 9.4), BlueSpice assessment: &#039;&#039;&#039;medium&#039;&#039;&#039; (containers &amp;lt;code&amp;gt;bluespice/ai&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;bluespice/chat&amp;lt;/code&amp;gt;), not affected (all other containers)&lt;br /&gt;
|-&lt;br /&gt;
|Affected&lt;br /&gt;
|&lt;br /&gt;
* Container &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; in BlueSpice pro and farm 5.1 up to 5.1.11.1 and 5.2 up to 5.2.7.1&lt;br /&gt;
* Container &amp;lt;code&amp;gt;bluespice/chat&amp;lt;/code&amp;gt; in BlueSpice 5.2 up to 5.2.7.1, if the MS Teams integration is used&lt;br /&gt;
* All other containers, including &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; in BlueSpice free, contain the affected library, but are not exploitable in default configuration&lt;br /&gt;
* Ghostscript in container &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; (all editions, all versions up to 5.1.11.2 and 5.2.7.2): own copy of the Brotli library, which most likely already contains the fix (precaution)&lt;br /&gt;
* CVE-2026-115557: Container &amp;lt;code&amp;gt;bluespice/ai&amp;lt;/code&amp;gt; in BlueSpice 5.2 before 5.2.8, if the AI service is used&lt;br /&gt;
* CVE-2026-115557 (same issue in Node.js, no own CVE): Container &amp;lt;code&amp;gt;bluespice/chat&amp;lt;/code&amp;gt; in BlueSpice 5.2 up to 5.2.7.1, if the chat service is used&lt;br /&gt;
|-&lt;br /&gt;
|Fixed in&lt;br /&gt;
|&lt;br /&gt;
* BlueSpice 5.1.11.2 and BlueSpice 5.2.7.2:&lt;br /&gt;
** container &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; (all editions): published on 2026-10-30&lt;br /&gt;
** containers &amp;lt;code&amp;gt;chat&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;wire&amp;lt;/code&amp;gt; (5.2 only), &amp;lt;code&amp;gt;formula&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;pdf&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;diagram&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;kerberosproxy&amp;lt;/code&amp;gt; (5.1 and 5.2) and &amp;lt;code&amp;gt;frontendcache&amp;lt;/code&amp;gt; (5.2): published on 2026-11-04&lt;br /&gt;
** &amp;lt;!-- TODO: update when rebuilt --&amp;gt; containers &amp;lt;code&amp;gt;collabpads&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;proxy&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;database&amp;lt;/code&amp;gt;: not rebuilt yet (risk: low)&lt;br /&gt;
** Ghostscript in container &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt;: no update available; precaution see below&lt;br /&gt;
* CVE-2026-115557: BlueSpice 5.2.7.2 (container &amp;lt;code&amp;gt;bluespice/chat&amp;lt;/code&amp;gt;); BlueSpice 5.2.8 (container &amp;lt;code&amp;gt;bluespice/ai&amp;lt;/code&amp;gt;, next regular release)&lt;br /&gt;
|-&lt;br /&gt;
|CVE&lt;br /&gt;
|&lt;br /&gt;
* [https://nvd.nist.gov/vuln/detail/CVE-2026-111497 CVE-2026-111497]&lt;br /&gt;
* [https://www.cve.org/CVERecord?id=CVE-2026-115557 CVE-2026-115557]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Problem==&lt;br /&gt;
&#039;&#039;&#039;CVE-2026-111497:&#039;&#039;&#039; A vulnerability in the Brotli decompression library (publicly known as &amp;quot;Node2Shell&amp;quot;) allows an attacker to write beyond a memory buffer by sending specially crafted compressed data. This can crash the program, reveal memory contents and allow the attacker to run code. The library is used by Node.js and by many Linux programs, e.g. the &amp;lt;code&amp;gt;curl&amp;lt;/code&amp;gt; library that PHP uses for outgoing HTTP requests. Public exploit code exists for Node.js applications and for PHP applications that download data from web addresses. The US authority CISA lists the vulnerability as actively exploited.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CVE-2026-115557:&#039;&#039;&#039; The private keys of several intermediate certificates of the certificate authority eMudhra were generated incorrectly and are publicly known. Anyone can create certificates for any website with them. Browsers already block these certificates, but many programs that check certificates only against a list of trusted root certificates still accept them. Python and Node.js, which the AI service and the chat service use, were updated to block them. Older Python versions are safe if their list of trusted root certificates is up to date.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!&#039;&#039;&#039;CVE&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Component&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Type of vulnerability&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;BlueSpice 5&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2026-111497&lt;br /&gt;
|Brotli library (container &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; in BlueSpice pro and farm)&lt;br /&gt;
|Out-of-bounds write when decompressing data, remote code execution&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-purple-bg&amp;quot; |affected&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2026-111497&lt;br /&gt;
|Node.js (container &amp;lt;code&amp;gt;bluespice/chat&amp;lt;/code&amp;gt;)&lt;br /&gt;
|Out-of-bounds write when decompressing data, possibly remote code execution&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |affected, if MS Teams integration is used&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2026-111497&lt;br /&gt;
|Brotli library / Node.js (other containers)&lt;br /&gt;
|Out-of-bounds write when decompressing data&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |not exploitable&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2026-111497&lt;br /&gt;
|Ghostscript (container &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt;, all editions)&lt;br /&gt;
|Out-of-bounds write when decompressing data&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |most likely fixed, precaution recommended&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2026-115557&lt;br /&gt;
|Python (container &amp;lt;code&amp;gt;bluespice/ai&amp;lt;/code&amp;gt;)&lt;br /&gt;
|Forged server certificates are accepted for outgoing connections&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |affected, if the AI service is used&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2026-115557 (same issue in Node.js)&lt;br /&gt;
|Node.js (container &amp;lt;code&amp;gt;bluespice/chat&amp;lt;/code&amp;gt;)&lt;br /&gt;
|Forged server certificates are accepted for outgoing connections&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |affected, if the chat service is used&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2026-115557&lt;br /&gt;
|Python / Node.js / Java (other containers)&lt;br /&gt;
|Forged server certificates are accepted for outgoing connections&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |not affected&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Impact assessment==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
!Component&lt;br /&gt;
!Assessment&lt;br /&gt;
!Mitigation without update&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |Container &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; (BlueSpice pro and farm)&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; class=&amp;quot;col-purple-bg&amp;quot; |&#039;&#039;&#039;Critical&#039;&#039;&#039; on publicly readable wikis, high on wikis that require a login. The extensions ExternalData (BlueSpice 5.1 and 5.2) and ExternalContent (BlueSpice 5.2) let users load data from any web address into a page. The wiki decompresses this data with the affected library. An attacker who controls a web server can use this to run commands in the wiki container. Public exploit code shows this for a comparable PHP application.&lt;br /&gt;
&lt;br /&gt;
Unlike the PHP vulnerabilities in [[Security:Security Advisories/BSSA-2026-08|BSSA-2026-08]], network access to the wiki is not enough. The attacker needs &#039;&#039;&#039;read access to the wiki&#039;&#039;&#039; itself. On wikis that require a login, only logged-in users can exploit the vulnerability. The main risk is on publicly readable wikis, where no login is needed. Such wikis are rare among BlueSpice installations. In addition, the wiki must be able to connect to the attacker&#039;s server on the internet.&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |Disable the extensions ExternalData and ExternalContent (see below).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |Container &amp;lt;code&amp;gt;bluespice/chat&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |&#039;&#039;&#039;Medium&#039;&#039;&#039;. The chat service is not part of standard installations. Its MS Teams connector decompresses incoming requests before it checks whether they come from Microsoft. This connector is not reachable from outside in the default configuration of &amp;lt;code&amp;gt;bluespice-deploy&amp;lt;/code&amp;gt;. If you have made it reachable for MS Teams, the risk is high: an attacker without login could possibly run code in the chat container.&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |Do not expose the MS Teams connector, or reject requests with the header &amp;lt;code&amp;gt;Content-Encoding: br&amp;lt;/code&amp;gt; in the reverse proxy in front of it.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |All other containers, including &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; in BlueSpice free&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |&#039;&#039;&#039;Low&#039;&#039;&#039;. These services contain the affected library, but do not decompress data that users can control. Other features of the wiki that download data (e.g. RSS feeds, PageForms, EmbedVideo, Semantic MediaWiki, search) only use addresses set by administrators or internal services. An attack through them is very unlikely, as it would require a compromised service or a rarely used configuration. The same applies to the third-party image &amp;lt;code&amp;gt;mongo:8.2&amp;lt;/code&amp;gt;, which &amp;lt;code&amp;gt;bluespice-deploy&amp;lt;/code&amp;gt; uses for the database of the &amp;lt;code&amp;gt;collabpads&amp;lt;/code&amp;gt; service.&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |None required. Update with the next maintenance.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |Ghostscript in container &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; (all editions)&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |&#039;&#039;&#039;Low&#039;&#039;&#039;. The wiki uses Ghostscript to create preview images of uploaded PDF files. Ghostscript contains its own copy of the Brotli library. According to our analysis of the source code, this copy already contains the fix, but it still reports the old version number. Security scanners may therefore report it as affected. We could not fully verify the compiled program and know of no exploit code for Ghostscript. An attack would require a user who is allowed to upload files. Usually only logged-in users with edit rights can do this, also on publicly readable wikis.&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |As a precaution, disable the extension PdfHandler (see below).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |Container &amp;lt;code&amp;gt;bluespice/ai&amp;lt;/code&amp;gt; (CVE-2026-115557)&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |&#039;&#039;&#039;Medium&#039;&#039;&#039;. The AI service is not part of standard installations. It sends questions, wiki content and the API key of the AI provider (e.g. Azure OpenAI, OpenAI, Google, IONOS) over encrypted connections. It still accepts the forged certificates. An attacker who can intercept and redirect the network traffic between your server and the AI provider can read the API key and the wiki content and change the answers. Access to the wiki is not required. However, the attacker must control the network path, e.g. a router, DNS or proxy server between your server and the AI provider. This makes an attack difficult. We do not know of any attacks.&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |Disable the AI service until BlueSpice 5.2.8: set &amp;lt;code&amp;gt;AI=false&amp;lt;/code&amp;gt; in the &amp;lt;code&amp;gt;.env&amp;lt;/code&amp;gt; file and run &amp;lt;code&amp;gt;./bluespice-deploy up -d --remove-orphans&amp;lt;/code&amp;gt;. The AI features of the wiki and the chat are not available until then.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |Container &amp;lt;code&amp;gt;bluespice/chat&amp;lt;/code&amp;gt; (CVE-2026-115557, same issue in Node.js)&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |&#039;&#039;&#039;Medium&#039;&#039;&#039;. Same issue as for the AI service. The chat service accepts the forged certificates on its connections to MS Teams or Slack. An attacker who controls the network path can read and change chat messages and read the access credentials of the connector.&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |None. Update to BlueSpice 5.2.7.2, or disable the chat service.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |All other containers (CVE-2026-115557)&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |&#039;&#039;&#039;Not affected&#039;&#039;&#039;. &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;bluespice/search&amp;lt;/code&amp;gt; contain Python, but either already reject the forged certificates or make no outgoing connections. The same applies to Node.js and Java in the other containers.&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |None required.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Solution ==&lt;br /&gt;
Update to &#039;&#039;&#039;BlueSpice 5.2.7.2&#039;&#039;&#039; or &#039;&#039;&#039;BlueSpice 5.1.11.2&#039;&#039;&#039;. As with [[Security:Security Advisories/BSSA-2026-08|BSSA-2026-08]], these are nano releases without functional changes. We recommend the update for &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; in all editions (free, pro and farm). The containers listed under &amp;quot;Fixed in&amp;quot; were rebuilt with the fixed Brotli library (&amp;lt;code&amp;gt;brotli-libs 1.2.1&amp;lt;/code&amp;gt;) and fixed Node.js versions. For these containers, the image tags &amp;lt;code&amp;gt;5&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;5.2&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;5.1&amp;lt;/code&amp;gt; point to the fixed images. &amp;lt;code&amp;gt;collabpads&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;proxy&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;database&amp;lt;/code&amp;gt; will follow (risk: low). If you have already updated to 5.2.7.2 or 5.1.11.2 before 2026-11-04, run the update commands again to get the rebuilt service containers.&lt;br /&gt;
&lt;br /&gt;
In the &amp;lt;code&amp;gt;.env&amp;lt;/code&amp;gt; file of &amp;lt;code&amp;gt;bluespice-deploy&amp;lt;/code&amp;gt;, set &amp;lt;code&amp;gt;VERSION&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;5.2&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;5.1&amp;lt;/code&amp;gt;. Then run these commands in the &amp;lt;code&amp;gt;compose&amp;lt;/code&amp;gt; directory of &amp;lt;code&amp;gt;bluespice-deploy&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;./bluespice-deploy pull &amp;amp;&amp;amp; ./bluespice-deploy up -d&amp;lt;/code&amp;gt;. Use the &amp;lt;code&amp;gt;bluespice-deploy&amp;lt;/code&amp;gt; script instead of plain &amp;lt;code&amp;gt;docker compose&amp;lt;/code&amp;gt;, because only the script loads all required &amp;lt;code&amp;gt;docker-compose.*.yml&amp;lt;/code&amp;gt; files.&lt;br /&gt;
&lt;br /&gt;
To check whether your installation is fixed, run:&lt;br /&gt;
* &amp;lt;code&amp;gt;./bluespice-deploy exec wiki-web apk info -v brotli-libs&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;./bluespice-deploy exec wiki-task apk info -v brotli-libs&amp;lt;/code&amp;gt;: must show &amp;lt;code&amp;gt;brotli-libs-1.2.1-r0&amp;lt;/code&amp;gt; or higher&lt;br /&gt;
* &amp;lt;code&amp;gt;./bluespice-deploy exec chat node -v&amp;lt;/code&amp;gt; (BlueSpice 5.2, only if the chat service is used): must show &amp;lt;code&amp;gt;v24.22.1&amp;lt;/code&amp;gt; or higher&lt;br /&gt;
&lt;br /&gt;
The container &amp;lt;code&amp;gt;bluespice/ai&amp;lt;/code&amp;gt; was &#039;&#039;&#039;not&#039;&#039;&#039; rebuilt for BlueSpice 5.2.7.2. It will be fixed in BlueSpice 5.2.8. Until then, disable the AI service as described in the table above, if you use it.&lt;br /&gt;
&lt;br /&gt;
=== Mitigation without update: disable ExternalData and ExternalContent (BlueSpice pro and farm) ===&lt;br /&gt;
Use the same method as in [[Security:Security Advisories/BSSA-2026-06#Mitigation:_disable_Extension:ExternalData|BSSA-2026-06]]: mount a copy of the settings file in which the extensions are not loaded. In BlueSpice 5.1, the command only finds ExternalData, as ExternalContent is not part of 5.1.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./bluespice-deploy cp wiki-web:/app/bluespice/w/settings.d/040-BlueSpiceProDistribution.php ./&lt;br /&gt;
sed -i -E &amp;quot;s/^(wfLoadExtension\( &#039;External(Data|Content)&#039; \);)/#\1/&amp;quot; 040-BlueSpiceProDistribution.php&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Add the file to &amp;lt;code&amp;gt;docker-compose.override.yml&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
services:&lt;br /&gt;
  wiki-web:&lt;br /&gt;
    volumes:&lt;br /&gt;
      - ./040-BlueSpiceProDistribution.php:/app/bluespice/w/settings.d/040-BlueSpiceProDistribution.php:ro&lt;br /&gt;
  # same for wiki-task and wiki-installer&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Then re-create the containers with &amp;lt;code&amp;gt;./bluespice-deploy up -d&amp;lt;/code&amp;gt;. The copied file belongs to the current version. &#039;&#039;&#039;Remove the mount before or together with the update.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
While the extensions are disabled, pages that use them show the parser functions as plain text or no data. No content is lost.&lt;br /&gt;
&lt;br /&gt;
=== Precaution: disable PdfHandler (all editions) ===&lt;br /&gt;
The extension PdfHandler creates preview images of uploaded PDF files with Ghostscript. Ghostscript contains its own copy of the Brotli library and does not use the system library &amp;lt;code&amp;gt;brotli-libs&amp;lt;/code&amp;gt;. The update to 5.2.7.2 or 5.1.11.2 therefore does not change it. According to our analysis, this copy already contains the fix (see &amp;quot;Impact assessment&amp;quot;). Because we cannot fully verify this, we recommend disabling PdfHandler as a precaution until an updated Ghostscript is available.&lt;br /&gt;
&lt;br /&gt;
Use the same method as above with the file &amp;lt;code&amp;gt;030-BlueSpiceFreeDistribution.php&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./bluespice-deploy cp wiki-web:/app/bluespice/w/settings.d/030-BlueSpiceFreeDistribution.php ./&lt;br /&gt;
sed -i -E &amp;quot;s/^(wfLoadExtension\( &#039;PdfHandler&#039; \);)/#\1/&amp;quot; 030-BlueSpiceFreeDistribution.php&lt;br /&gt;
grep -n &amp;quot;PdfHandler&amp;quot; 030-BlueSpiceFreeDistribution.php&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
The last command must show &amp;lt;code&amp;gt;#wfLoadExtension( &#039;PdfHandler&#039; );&amp;lt;/code&amp;gt;. Add the file to &amp;lt;code&amp;gt;docker-compose.override.yml&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
services:&lt;br /&gt;
  wiki-web:&lt;br /&gt;
    volumes:&lt;br /&gt;
      - ./030-BlueSpiceFreeDistribution.php:/app/bluespice/w/settings.d/030-BlueSpiceFreeDistribution.php:ro&lt;br /&gt;
  # same for wiki-task and wiki-installer&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
If you also disable ExternalData and ExternalContent, add both files to the &amp;lt;code&amp;gt;volumes&amp;lt;/code&amp;gt; list. Then re-create the containers with &amp;lt;code&amp;gt;./bluespice-deploy up -d&amp;lt;/code&amp;gt;. The copied file belongs to the current version. &#039;&#039;&#039;Remove the mount before or together with the next update.&#039;&#039;&#039; We will announce here when an updated Ghostscript is available.&lt;br /&gt;
&lt;br /&gt;
While PdfHandler is disabled, PDF files can still be uploaded and downloaded. The wiki does not create new preview images for them and shows a file icon instead. No content is lost.&lt;br /&gt;
&lt;br /&gt;
=== Was my installation compromised? ===&lt;br /&gt;
We do not know of any attacks on BlueSpice installations. The vulnerability has been public since 2026-10-21. Public exploit code for a comparable PHP application exists since 2026-10-28.&lt;br /&gt;
&lt;br /&gt;
Installing the update or disabling the extensions stops further exploitation. It does not remove anything an attacker may have left behind. If your wiki uses BlueSpice pro or farm and could connect to servers on the internet, check:&lt;br /&gt;
# &#039;&#039;&#039;Pages, templates and modules&#039;&#039;&#039; with &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#get_web_data}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#get_external_data}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#embed}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; that point to servers you do not know, and modules that use &amp;lt;code&amp;gt;mw.ext.externalData&amp;lt;/code&amp;gt;.&lt;br /&gt;
# &#039;&#039;&#039;The access log of the reverse proxy&#039;&#039;&#039; for requests to &amp;lt;code&amp;gt;api.php&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;index.php&amp;lt;/code&amp;gt; with these functions. They can also be used without saving a page, e.g. in a preview. See the notes on log analysis in [[Security:Security Advisories/BSSA-2026-06|BSSA-2026-06]].&lt;br /&gt;
# &#039;&#039;&#039;The logs of &amp;lt;code&amp;gt;wiki-web&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;wiki-task&amp;lt;/code&amp;gt;&#039;&#039;&#039; for processes that ended with a segmentation fault (e.g. &amp;lt;code&amp;gt;exited on signal 11&amp;lt;/code&amp;gt;), and, if available, your firewall logs for connections from the wiki to unknown servers.&lt;br /&gt;
&lt;br /&gt;
If you find signs of an attack, follow the procedure in [[Security:Security Advisories/BSSA-2026-08|BSSA-2026-08]] (section &amp;quot;Was my installation compromised?&amp;quot;) and contact the Hallo Welt! GmbH support.&lt;br /&gt;
&lt;br /&gt;
=== BlueSpice cloud ===&lt;br /&gt;
&amp;lt;!-- TODO: Operations to confirm status of the cloud instances before publishing --&amp;gt;&lt;br /&gt;
&amp;lt;!-- TODO (2026-11-05): Operations to confirm whether PdfHandler is disabled in the cloud as a precaution --&amp;gt;&lt;br /&gt;
BlueSpice cloud uses the same containers and will be updated by Hallo Welt! GmbH, including the AI service. No action is required from cloud customers.⏎&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Security:Security_Advisories/BSSA-2026-09&amp;diff=15001</id>
		<title>Security:Security Advisories/BSSA-2026-09</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Security:Security_Advisories/BSSA-2026-09&amp;diff=15001"/>
		<updated>2026-10-30T12:57:06Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|Date&lt;br /&gt;
|2026-10-29&lt;br /&gt;
|-&lt;br /&gt;
|Severity&lt;br /&gt;
|reported &amp;quot;critical&amp;quot; (CVSS 3.1: 9.8), BlueSpice assessment: &#039;&#039;&#039;critical&#039;&#039;&#039; (container &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; in BlueSpice pro and farm, publicly readable wikis), &#039;&#039;&#039;high&#039;&#039;&#039; (same, wikis that require a login), &#039;&#039;&#039;medium&#039;&#039;&#039; (container &amp;lt;code&amp;gt;bluespice/chat&amp;lt;/code&amp;gt;), &#039;&#039;&#039;low&#039;&#039;&#039; (all other containers)&amp;lt;br /&amp;gt;&lt;br /&gt;
CVE-2026-115557: reported &amp;quot;critical&amp;quot; (CVSS 4.0: 9.4), BlueSpice assessment: &#039;&#039;&#039;medium&#039;&#039;&#039; (containers &amp;lt;code&amp;gt;bluespice/ai&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;bluespice/chat&amp;lt;/code&amp;gt;), not affected (all other containers)&lt;br /&gt;
|-&lt;br /&gt;
|Affected&lt;br /&gt;
|&lt;br /&gt;
* Container &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; in BlueSpice pro and farm 5.1 up to 5.1.11.1 and 5.2 up to 5.2.7.1&lt;br /&gt;
* Container &amp;lt;code&amp;gt;bluespice/chat&amp;lt;/code&amp;gt; in BlueSpice 5.2 up to 5.2.7.1, if the MS Teams integration is used&lt;br /&gt;
* All other containers, including &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; in BlueSpice free, contain the affected library, but are not exploitable in default configuration&lt;br /&gt;
* CVE-2026-115557: Container &amp;lt;code&amp;gt;bluespice/ai&amp;lt;/code&amp;gt; in BlueSpice 5.2 before 5.2.8, if the AI service is used&lt;br /&gt;
* CVE-2026-115557 (same issue in Node.js, no own CVE): Container &amp;lt;code&amp;gt;bluespice/chat&amp;lt;/code&amp;gt; in BlueSpice 5.2 up to 5.2.7.1, if the chat service is used&lt;br /&gt;
|-&lt;br /&gt;
|Fixed in&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;!-- TODO before publishing: confirm release date and the list of rebuilt containers --&amp;gt;&lt;br /&gt;
* BlueSpice 5.1.11.2 and BlueSpice 5.2.7.2 (all containers rebuilt with the fixed Brotli library and Node.js versions, published on &amp;lt;date&amp;gt;)&lt;br /&gt;
* CVE-2026-115557: BlueSpice 5.2.7.2 (container &amp;lt;code&amp;gt;bluespice/chat&amp;lt;/code&amp;gt;); BlueSpice 5.2.8 (container &amp;lt;code&amp;gt;bluespice/ai&amp;lt;/code&amp;gt;, next regular release)&lt;br /&gt;
|-&lt;br /&gt;
|CVE&lt;br /&gt;
|&lt;br /&gt;
* [https://nvd.nist.gov/vuln/detail/CVE-2026-111497 CVE-2026-111497]&lt;br /&gt;
* [https://www.cve.org/CVERecord?id=CVE-2026-115557 CVE-2026-115557]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Problem==&lt;br /&gt;
A vulnerability in the Brotli decompression library (publicly known as &amp;quot;Node2Shell&amp;quot;) allows an attacker to write beyond a memory buffer by sending specially crafted compressed data. This can crash the program, reveal memory contents and allow the attacker to run code. The library is used by Node.js and by many Linux programs, e.g. the &amp;lt;code&amp;gt;curl&amp;lt;/code&amp;gt; library that PHP uses for outgoing HTTP requests. Public exploit code exists for Node.js applications and for PHP applications that download data from web addresses. The US authority CISA lists the vulnerability as actively exploited.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CVE-2026-115557:&#039;&#039;&#039; The private keys of several intermediate certificates of the certificate authority eMudhra were generated incorrectly and are publicly known. Anyone can create certificates for any website with them. Browsers already block these certificates, but many programs that check certificates only against a list of trusted root certificates still accept them. Python and Node.js, which the AI service and the chat service use, were updated to block them. Older Python versions are safe if their list of trusted root certificates is up to date.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!&#039;&#039;&#039;CVE&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Component&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Type of vulnerability&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;BlueSpice 5&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2026-111497&lt;br /&gt;
|Brotli library (container &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; in BlueSpice pro and farm)&lt;br /&gt;
|Out-of-bounds write when decompressing data, remote code execution&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-purple-bg&amp;quot; |affected&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2026-111497&lt;br /&gt;
|Node.js (container &amp;lt;code&amp;gt;bluespice/chat&amp;lt;/code&amp;gt;)&lt;br /&gt;
|Out-of-bounds write when decompressing data, possibly remote code execution&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |affected, if MS Teams integration is used&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2026-111497&lt;br /&gt;
|Brotli library / Node.js (other containers)&lt;br /&gt;
|Out-of-bounds write when decompressing data&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |not exploitable&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2026-115557&lt;br /&gt;
|Python (container &amp;lt;code&amp;gt;bluespice/ai&amp;lt;/code&amp;gt;)&lt;br /&gt;
|Forged server certificates are accepted for outgoing connections&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |affected, if the AI service is used&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2026-115557 (same issue in Node.js)&lt;br /&gt;
|Node.js (container &amp;lt;code&amp;gt;bluespice/chat&amp;lt;/code&amp;gt;)&lt;br /&gt;
|Forged server certificates are accepted for outgoing connections&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |affected, if the chat service is used&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2026-115557&lt;br /&gt;
|Python / Node.js / Java (other containers)&lt;br /&gt;
|Forged server certificates are accepted for outgoing connections&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |not affected&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Impact assessment==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
!Component&lt;br /&gt;
!Assessment&lt;br /&gt;
!Mitigation without update&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |Container &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; (BlueSpice pro and farm)&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; class=&amp;quot;col-purple-bg&amp;quot; |Critical on publicly readable wikis, high on wikis that require a login. The extensions ExternalData (BlueSpice 5.1 and 5.2) and ExternalContent (BlueSpice 5.2) let users load data from any web address into a page. The wiki decompresses this data with the affected library. An attacker who controls a web server can use this to run commands in the wiki container. Public exploit code shows this for a comparable PHP application.&lt;br /&gt;
&lt;br /&gt;
Unlike the PHP vulnerabilities in [[Security:Security Advisories/BSSA-2026-08|BSSA-2026-08]], network access to the wiki is not enough. The attacker needs &#039;&#039;&#039;read access to the wiki&#039;&#039;&#039; itself. On wikis that require a login, only logged-in users can exploit the vulnerability. The main risk is on publicly readable wikis, where no login is needed. Such wikis are rare among BlueSpice installations. In addition, the wiki must be able to connect to the attacker&#039;s server on the internet.&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |Disable the extensions ExternalData and ExternalContent (see below).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |Container &amp;lt;code&amp;gt;bluespice/chat&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium. The chat service is not part of standard installations. Its MS Teams connector decompresses incoming requests before it checks whether they come from Microsoft. This connector is not reachable from outside in the default configuration of &amp;lt;code&amp;gt;bluespice-deploy&amp;lt;/code&amp;gt;. If you have made it reachable for MS Teams, the risk is high: an attacker without login could possibly run code in the chat container.&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |Do not expose the MS Teams connector, or reject requests with the header &amp;lt;code&amp;gt;Content-Encoding: br&amp;lt;/code&amp;gt; in the reverse proxy in front of it.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |All other containers, including &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; in BlueSpice free&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low. These services contain the affected library, but do not decompress data that users can control. Other features of the wiki that download data (e.g. RSS feeds, PageForms, EmbedVideo, Semantic MediaWiki, search) only use addresses set by administrators or internal services. An attack through them is very unlikely, as it would require a compromised service or a rarely used configuration.&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |None required. Update with the next maintenance.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |Container &amp;lt;code&amp;gt;bluespice/ai&amp;lt;/code&amp;gt; (CVE-2026-115557)&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium. The AI service is not part of standard installations. It sends questions, wiki content and the API key of the AI provider (e.g. Azure OpenAI, OpenAI, Google, IONOS) over encrypted connections. It still accepts the forged certificates. An attacker who can intercept and redirect the network traffic between your server and the AI provider can read the API key and the wiki content and change the answers. Access to the wiki is not required. However, the attacker must control the network path, e.g. a router, DNS or proxy server between your server and the AI provider. This makes an attack difficult. We do not know of any attacks.&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |Disable the AI service until BlueSpice 5.2.8: set &amp;lt;code&amp;gt;AI=false&amp;lt;/code&amp;gt; in the &amp;lt;code&amp;gt;.env&amp;lt;/code&amp;gt; file and run &amp;lt;code&amp;gt;./bluespice-deploy up -d --remove-orphans&amp;lt;/code&amp;gt;. The AI features of the wiki and the chat are not available until then.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |Container &amp;lt;code&amp;gt;bluespice/chat&amp;lt;/code&amp;gt; (CVE-2026-115557, same issue in Node.js)&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium. Same issue as for the AI service. The chat service accepts the forged certificates on its connections to MS Teams or Slack. An attacker who controls the network path can read and change chat messages and read the access credentials of the connector.&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |None. Update to BlueSpice 5.2.7.2, or disable the chat service.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |All other containers (CVE-2026-115557)&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Not affected. &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;bluespice/search&amp;lt;/code&amp;gt; contain Python, but either already reject the forged certificates or make no outgoing connections. The same applies to Node.js and Java in the other containers.&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |None required.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Solution ==&lt;br /&gt;
Update to &#039;&#039;&#039;BlueSpice 5.2.7.2&#039;&#039;&#039; or &#039;&#039;&#039;BlueSpice 5.1.11.2&#039;&#039;&#039;. As with [[Security:Security Advisories/BSSA-2026-08|BSSA-2026-08]], these are nano releases without functional changes. We recommend the update for &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; in all editions (free, pro and farm). All containers except &amp;lt;code&amp;gt;bluespice/ai&amp;lt;/code&amp;gt; were rebuilt with the fixed Brotli library (&amp;lt;code&amp;gt;brotli-libs 1.2.1&amp;lt;/code&amp;gt;) and fixed Node.js versions. The image tags &amp;lt;code&amp;gt;5&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;5.2&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;5.1&amp;lt;/code&amp;gt; point to the fixed images.&lt;br /&gt;
&lt;br /&gt;
In the &amp;lt;code&amp;gt;.env&amp;lt;/code&amp;gt; file of &amp;lt;code&amp;gt;bluespice-deploy&amp;lt;/code&amp;gt;, set &amp;lt;code&amp;gt;VERSION&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;5.2&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;5.1&amp;lt;/code&amp;gt;. Then run these commands in the &amp;lt;code&amp;gt;compose&amp;lt;/code&amp;gt; directory of &amp;lt;code&amp;gt;bluespice-deploy&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;./bluespice-deploy pull &amp;amp;&amp;amp; ./bluespice-deploy up -d&amp;lt;/code&amp;gt;. Use the &amp;lt;code&amp;gt;bluespice-deploy&amp;lt;/code&amp;gt; script instead of plain &amp;lt;code&amp;gt;docker compose&amp;lt;/code&amp;gt;, because only the script loads all required &amp;lt;code&amp;gt;docker-compose.*.yml&amp;lt;/code&amp;gt; files.&lt;br /&gt;
&lt;br /&gt;
To check whether your installation is fixed, run:&lt;br /&gt;
* &amp;lt;code&amp;gt;./bluespice-deploy exec wiki-web apk info -v brotli-libs&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;./bluespice-deploy exec wiki-task apk info -v brotli-libs&amp;lt;/code&amp;gt;: must show &amp;lt;code&amp;gt;brotli-libs-1.2.1-r0&amp;lt;/code&amp;gt; or higher&lt;br /&gt;
* &amp;lt;code&amp;gt;./bluespice-deploy exec chat node -v&amp;lt;/code&amp;gt; (BlueSpice 5.2, only if the chat service is used): must show &amp;lt;code&amp;gt;v24.22.1&amp;lt;/code&amp;gt; or higher&lt;br /&gt;
&lt;br /&gt;
The container &amp;lt;code&amp;gt;bluespice/ai&amp;lt;/code&amp;gt; was &#039;&#039;&#039;not&#039;&#039;&#039; rebuilt for BlueSpice 5.2.7.2. It will be fixed in BlueSpice 5.2.8. Until then, disable the AI service as described in the table above, if you use it.&lt;br /&gt;
&lt;br /&gt;
=== Mitigation without update: disable ExternalData and ExternalContent (BlueSpice pro and farm) ===&lt;br /&gt;
Use the same method as in [[Security:Security Advisories/BSSA-2026-06#Mitigation:_disable_Extension:ExternalData|BSSA-2026-06]]: mount a copy of the settings file in which the extensions are not loaded. In BlueSpice 5.1, the command only finds ExternalData, as ExternalContent is not part of 5.1.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./bluespice-deploy cp wiki-web:/app/bluespice/w/settings.d/040-BlueSpiceProDistribution.php ./&lt;br /&gt;
sed -i -E &amp;quot;s/^(wfLoadExtension\( &#039;External(Data|Content)&#039; \);)/#\1/&amp;quot; 040-BlueSpiceProDistribution.php&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Add the file to &amp;lt;code&amp;gt;docker-compose.override.yml&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
services:&lt;br /&gt;
  wiki-web:&lt;br /&gt;
    volumes:&lt;br /&gt;
      - ./040-BlueSpiceProDistribution.php:/app/bluespice/w/settings.d/040-BlueSpiceProDistribution.php:ro&lt;br /&gt;
  # same for wiki-task and wiki-installer&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Then re-create the containers with &amp;lt;code&amp;gt;./bluespice-deploy up -d&amp;lt;/code&amp;gt;. The copied file belongs to the current version. &#039;&#039;&#039;Remove the mount before or together with the update.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
While the extensions are disabled, pages that use them show the parser functions as plain text or no data. No content is lost.&lt;br /&gt;
&lt;br /&gt;
=== Was my installation compromised? ===&lt;br /&gt;
We do not know of any attacks on BlueSpice installations. The vulnerability has been public since 2026-10-21. Public exploit code for a comparable PHP application exists since 2026-10-28.&lt;br /&gt;
&lt;br /&gt;
Installing the update or disabling the extensions stops further exploitation. It does not remove anything an attacker may have left behind. If your wiki uses BlueSpice pro or farm and could connect to servers on the internet, check:&lt;br /&gt;
# &#039;&#039;&#039;Pages, templates and modules&#039;&#039;&#039; with &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#get_web_data}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#get_external_data}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#embed}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; that point to servers you do not know, and modules that use &amp;lt;code&amp;gt;mw.ext.externalData&amp;lt;/code&amp;gt;.&lt;br /&gt;
# &#039;&#039;&#039;The access log of the reverse proxy&#039;&#039;&#039; for requests to &amp;lt;code&amp;gt;api.php&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;index.php&amp;lt;/code&amp;gt; with these functions. They can also be used without saving a page, e.g. in a preview. See the notes on log analysis in [[Security:Security Advisories/BSSA-2026-06|BSSA-2026-06]].&lt;br /&gt;
# &#039;&#039;&#039;The logs of &amp;lt;code&amp;gt;wiki-web&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;wiki-task&amp;lt;/code&amp;gt;&#039;&#039;&#039; for processes that ended with a segmentation fault (e.g. &amp;lt;code&amp;gt;exited on signal 11&amp;lt;/code&amp;gt;), and, if available, your firewall logs for connections from the wiki to unknown servers.&lt;br /&gt;
&lt;br /&gt;
If you find signs of an attack, follow the procedure in [[Security:Security Advisories/BSSA-2026-08|BSSA-2026-08]] (section &amp;quot;Was my installation compromised?&amp;quot;) and contact the Hallo Welt! GmbH support.&lt;br /&gt;
&lt;br /&gt;
=== BlueSpice cloud ===&lt;br /&gt;
&amp;lt;!-- TODO: Operations to confirm status of the cloud instances before publishing --&amp;gt;&lt;br /&gt;
BlueSpice cloud uses the same containers and will be updated by Hallo Welt! GmbH, including the AI service. No action is required from cloud customers.&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Security:Security_Advisories&amp;diff=15000</id>
		<title>Security:Security Advisories</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Security:Security_Advisories&amp;diff=15000"/>
		<updated>2026-10-30T12:54:52Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
! style=&amp;quot;&amp;quot; |Release name&lt;br /&gt;
! style=&amp;quot;&amp;quot; |Release date&lt;br /&gt;
! style=&amp;quot;&amp;quot; |Title&lt;br /&gt;
! style=&amp;quot;&amp;quot; |References&lt;br /&gt;
! style=&amp;quot;&amp;quot; |Summary&lt;br /&gt;
!Severity&lt;br /&gt;
|-&lt;br /&gt;
| [[Security:Security Advisories/BSSA-2026-09|BSSA-2026-09]]&lt;br /&gt;
| 2026-10-29&lt;br /&gt;
| Out-of-bounds write in Brotli decompression (&amp;quot;Node2Shell&amp;quot;) affecting wiki (pro/farm) and chat containers; forged eMudhra certificates accepted by the AI and chat services&lt;br /&gt;
| [https://www.cve.org/CVERecord?id=CVE-2026-111497 CVE-2026-111497], [https://www.cve.org/CVERecord?id=CVE-2026-115557 CVE-2026-115557]&lt;br /&gt;
| Out-of-bounds write, Remote Code Execution; Improper certificate validation&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-purple-bg&amp;quot; | Critical&lt;br /&gt;
|-&lt;br /&gt;
| [[Security:Security Advisories/BSSA-2026-08|BSSA-2026-08]]&lt;br /&gt;
| 2026-10-23&lt;br /&gt;
| Remote code execution in PHP (&amp;quot;PHP2Shell&amp;quot;) affecting wiki and collabpads containers&lt;br /&gt;
| [https://www.cve.org/CVERecord?id=CVE-2026-109618 CVE-2026-109618], [https://www.cve.org/CVERecord?id=CVE-2026-109619 CVE-2026-109619]&lt;br /&gt;
| Remote Code Execution, Memory corruption, Use after free&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-purple-bg&amp;quot; | Critical&lt;br /&gt;
|-&lt;br /&gt;
| [[Security:Security Advisories/BSSA-2026-07|BSSA-2026-07]]&lt;br /&gt;
| 2026-10-23&lt;br /&gt;
| Privilege escalation in wiki container; missing authorization in BlueSpiceUserManager; library vulnerabilities in formula and search containers&lt;br /&gt;
| [https://www.cve.org/CVERecord?id=CVE-2026-25784 CVE-2026-25784], [https://www.cve.org/CVERecord?id=CVE-2026-25716 CVE-2026-25716], [https://www.cve.org/CVERecord?id=CVE-2026-90711 CVE-2026-90711], [https://www.cve.org/CVERecord?id=CVE-2026-75595 CVE-2026-75595], [https://www.cve.org/CVERecord?id=CVE-2026-8763 CVE-2026-8763]&lt;br /&gt;
| Privilege escalation, Missing authorization, IP address spoofing, Authentication bypass, Improper certificate validation&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-purple-bg&amp;quot; | Critical&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2026-06|BSSA-2026-06]]&lt;br /&gt;
|2026-09-28&lt;br /&gt;
|Security vulnerability in ExternalData extension&lt;br /&gt;
|[https://www.strix.ai/cve/CVE-2026-100382 CVE-2026-100382]&lt;br /&gt;
|Remote code execution&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-purple-bg&amp;quot; |Critical&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2026-05|BSSA-2026-05]]&lt;br /&gt;
|2026-07-27&lt;br /&gt;
|Security vulnerabilities in containers and extensions&lt;br /&gt;
|[https://nvd.nist.gov/vuln/detail/CVE-2026-59933 CVE-2026-59933], [https://nvd.nist.gov/vuln/detail/CVE-2025-14813 CVE-2025-14813], [https://nvd.nist.gov/vuln/detail/CVE-2025-65896 CVE-2025-65896], [https://nvd.nist.gov/vuln/detail/CVE-2026-59873 CVE-2026-59873]&lt;br /&gt;
|Uncontrolled ressource consumption, infinite loop&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2026-04|BSSA-2026-04]]&lt;br /&gt;
|2026-06-22&lt;br /&gt;
|Security vulnerabilities in Confluence Migration Tool container image&lt;br /&gt;
|[https://nvd.nist.gov/vuln/detail/CVE-2026-8376 CVE-2026-8376]&lt;br /&gt;
|Heap buffer overflow vulnerability in Perl Regexes&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2026-03|BSSA-2026-03]]&lt;br /&gt;
|2026-06-08&lt;br /&gt;
|Security vulnerabilities in containers of the Cloudogu  stack&lt;br /&gt;
|[https://nvd.nist.gov/vuln/detail/CVE-2026-31789 CVE-2026-31789], [https://nvd.nist.gov/vuln/detail/CVE-2026-43512 CVE-2026-43512], [https://nvd.nist.gov/vuln/detail/CVE-2026-7261 CVE-2026-7261]&lt;br /&gt;
|Heap buffer overflow in OpenSSL, Apache Tomcat DIGEST authentication bypass and  PHP SOAP server session persistence vulnerability&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2026-02|BSSA-2026-02]]&lt;br /&gt;
|2026-03-04&lt;br /&gt;
|Security vulnerability in BlueSpice Database container and NSFileRepo extension.&lt;br /&gt;
|[https://avd.aquasec.com/nvd/2025/cve-2025-15467 CVE-2025-15467],&lt;br /&gt;
[https://avd.aquasec.com/nvd/2026/cve-2026-24732 CVE-2026-24732]&lt;br /&gt;
|Buffer Overflow; Information disclosure&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2026-01|BSSA-2026-01]]&lt;br /&gt;
|2026-01-28&lt;br /&gt;
|Security vulnerability in BlueSpice Collabpads database container.&lt;br /&gt;
|[https://avd.aquasec.com/nvd/2025/cve-2025-14847 CVE-2025-14847]&lt;br /&gt;
|Read of uninitialized heap memory&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2025-07|BSSA-2025-07]]&lt;br /&gt;
|2025-12-10&lt;br /&gt;
|Security vulnerability in BlueSpice Search container.&lt;br /&gt;
|[https://avd.aquasec.com/nvd/2025/cve-2025-66516 CVE-2025-66516]&lt;br /&gt;
|XML Entity Injection&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2025-06|BSSA-2025-06]]&lt;br /&gt;
|2025-10-28&lt;br /&gt;
|Security vulnerabilities in various MediaWiki extensions that are actually part of the BlueSpice distribution&lt;br /&gt;
|[https://www.cve.org/CVERecord?id=CVE-2024-56171 CVE-2024-56171], [https://www.cve.org/CVERecord?id=CVE-2025-3277 CVE-2025-3277], [https://www.cve.org/CVERecord?id=CVE-2025-6965 CVE-2025-6965], [https://www.cve.org/CVERecord?id=CVE-2025-11173 CVE-2025-11173], [https://www.cve.org/CVERecord?id=CVE-2025-11175 CVE-2025-11175],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-53625 CVE-2025-53625],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-54370 CVE-2025-54370],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-54874 CVE-2025-54874],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-59839 CVE-2025-59839],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61634 CVE-2025-61634],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61635 CVE-2025-61635],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61636 CVE-2025-61636],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61637 CVE-2025-61637],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61638 CVE-2025-61638],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61639 CVE-2025-61639],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61640 CVE-2025-61640],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61641 CVE-2025-61641],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61642 CVE-2025-61642],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61643 CVE-2025-61643],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61646 CVE-2025-61646],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61652 CVE-2025-61652],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61653 CVE-2025-61653],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61655 CVE-2025-61655],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61655 CVE-2025-61655],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61656 CVE-2025-61656],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61656 CVE-2025-61656],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61657 CVE-2025-61657],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-7458 CVE-2025-7458]&lt;br /&gt;
|Denial Of Service,&lt;br /&gt;
Cross-Site Scripting (XSS),&lt;br /&gt;
Information Disclosure,&lt;br /&gt;
Bypass authn at content check,&lt;br /&gt;
Server-side Request Forgery,&lt;br /&gt;
Arbitrary Code Execution,&lt;br /&gt;
Memory Corruption,&lt;br /&gt;
Use-After-Free,&lt;br /&gt;
Arbitrary SQL Execution&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-red-bg&amp;quot; |High&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2025-05|BSSA-2025-05]]&lt;br /&gt;
|2025-09-19&lt;br /&gt;
|XSS in Extension:AtMentions, Extension:BlueSpiceAvatars, Extension:BlueSpiceWhoIsOnline and Extension:CognitiveProcessDesigner&lt;br /&gt;
|[https://www.cve.org/CVERecord?id=CVE-2025-46703 CVE-2025-46703], [https://www.cve.org/CVERecord?id=CVE-2025-48007 CVE-2025-48007], [https://www.cve.org/CVERecord?id=CVE-2025-57880 CVE-2025-57880], [https://www.cve.org/CVERecord?id=CVE-2025-58114 CVE-2025-58114]&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2025-04|BSSA-2025-04]]&lt;br /&gt;
|2025-09-18&lt;br /&gt;
|Security vulnerabilities in services &amp;lt;code&amp;gt;bluespice/search&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;bluespice/formular&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; &lt;br /&gt;
|[https://nvd.nist.gov/vuln/detail/CVE-2025-54988 CVE-2025-54988], [https://avd.aquasec.com/nvd/2025/cve-2025-7783 CVE-2025-7783], [https://avd.aquasec.com/nvd/cve-2025-58050 CVE-2025-58050], [https://avd.aquasec.com/nvd/cve-2025-49794 CVE-2025-49794], [https://avd.aquasec.com/nvd/cve-2025-49796 CVE-2025-49796]&lt;br /&gt;
|Denial-of-Service, Information Disclosure&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2025-03|BSSA-2025-03]]&lt;br /&gt;
|2025-07-28&lt;br /&gt;
|Security vulnerabilities in Extension:Scribunto, Extension:TabberNeue, Extension:TwoColConflict and Extension:Quiz&lt;br /&gt;
|[https://www.cve.org/CVERecord?id=CVE-2025-53501 CVE-2025-53501], [https://www.cve.org/CVERecord?id=CVE-2025-53494 CVE-2025-53494], [https://www.cve.org/CVERecord?id=CVE-2025-53093 CVE-2025-53093], [https://www.cve.org/CVERecord?id=CVE-2025-7057 CVE-2025-7057]&lt;br /&gt;
|Information Disclosure, &lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2025-02|BSSA-2025-02]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2025-04-17&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Security vulnerabilities in Extension:OAuth&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2025-32068 CVE-2025-32068], [https://www.cve.org/CVERecord?id=CVE-2025-32074 CVE-2025-32074]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Allows unauthorized access to the wiki, Cross-Site Scripting (XSS)&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2025-01|BSSA-2025-01]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2025-01-20&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Security vulnerabilities in Extension:DataTransfer &lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2025-23081 CVE-2025-23081]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Allows Cross Site Request Forgery, Cross-Site Scripting (XSS)&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2023-02|BSSA-2023-02]]&lt;br /&gt;
|2023-10-30&lt;br /&gt;
|Security vulnerabilities in Extension:BlueSpiceAvatars&lt;br /&gt;
|[https://www.cve.org/cverecord?id=CVE-2023-42431 CVE-2023-42431]&lt;br /&gt;
|Allows Cross-Site Scripting (XSS)&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2023-01|BSSA-2023-01]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2023-07-25&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Ghostscript vulnerability&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2023-36664 CVE-2023-36664]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Code can be executed on the server via a manipulated PDF&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-08|BSSA-2022-08]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-11-15&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector on regular pages&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-3895 CVE-2022-3895]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Arbitrary HTML injection through use of interface elements&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-07|BSSA-2022-07]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-11-15&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector on regular pages&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-3958 CVE-2022-3958]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Arbitrary HTML injection through personal menu items&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-06|BSSA-2022-06]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-11-15&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector on regular pages&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-3893 CVE-2022-3893]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Arbitrary HTML injection through the custom menu&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-05|BSSA-2022-05]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-11-15&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector on regular pages&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-42001 CVE-2022-42001]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Arbitrary HTML injection through the book navigation&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-04|BSSA-2022-04]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-11-15&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector on regular pages&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-41789 CVE-2022-41789], [https://www.cve.org/CVERecord?id=CVE-2022-41814 CVE-2022-41814], [https://www.cve.org/CVERecord?id=CVE-2022-42000 CVE-2022-42000]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Arbitrary HTML injection through user preferences&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-03|BSSA-2022-03]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-11-15&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector on regular pages&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-41611 CVE-2022-41611]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Arbitrary HTML injection through main navigation&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-02|BSSA-2022-02]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-11-15&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector on regular pages&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-2511 CVE-2022-2511]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Arbitrary HTML injection through the &#039;title&#039; parameter&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-01|BSSA-2022-01]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-01-31&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector in Search Center&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-2510 CVE-2022-2510]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |JavaScript in search field is reflected back to the browser.&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Security:Security_Advisories&amp;diff=14999</id>
		<title>Security:Security Advisories</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Security:Security_Advisories&amp;diff=14999"/>
		<updated>2026-10-30T11:32:55Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
! style=&amp;quot;&amp;quot; |Release name&lt;br /&gt;
! style=&amp;quot;&amp;quot; |Release date&lt;br /&gt;
! style=&amp;quot;&amp;quot; |Title&lt;br /&gt;
! style=&amp;quot;&amp;quot; |References&lt;br /&gt;
! style=&amp;quot;&amp;quot; |Summary&lt;br /&gt;
!Severity&lt;br /&gt;
|-&lt;br /&gt;
| [[Security:Security Advisories/BSSA-2026-09|BSSA-2026-09]]&lt;br /&gt;
| 2026-10-29&lt;br /&gt;
| Out-of-bounds write in Brotli decompression (&amp;quot;Node2Shell&amp;quot;) affecting wiki (pro/farm) and chat containers&lt;br /&gt;
| [https://www.cve.org/CVERecord?id=CVE-2026-111497 CVE-2026-111497]&lt;br /&gt;
| Out-of-bounds write, Remote Code Execution&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-purple-bg&amp;quot; | Critical&lt;br /&gt;
|-&lt;br /&gt;
| [[Security:Security Advisories/BSSA-2026-08|BSSA-2026-08]]&lt;br /&gt;
| 2026-10-23&lt;br /&gt;
| Remote code execution in PHP (&amp;quot;PHP2Shell&amp;quot;) affecting wiki and collabpads containers&lt;br /&gt;
| [https://www.cve.org/CVERecord?id=CVE-2026-109618 CVE-2026-109618], [https://www.cve.org/CVERecord?id=CVE-2026-109619 CVE-2026-109619]&lt;br /&gt;
| Remote Code Execution, Memory corruption, Use after free&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-purple-bg&amp;quot; | Critical&lt;br /&gt;
|-&lt;br /&gt;
| [[Security:Security Advisories/BSSA-2026-07|BSSA-2026-07]]&lt;br /&gt;
| 2026-10-23&lt;br /&gt;
| Privilege escalation in wiki container; missing authorization in BlueSpiceUserManager; library vulnerabilities in formula and search containers&lt;br /&gt;
| [https://www.cve.org/CVERecord?id=CVE-2026-25784 CVE-2026-25784], [https://www.cve.org/CVERecord?id=CVE-2026-25716 CVE-2026-25716], [https://www.cve.org/CVERecord?id=CVE-2026-90711 CVE-2026-90711], [https://www.cve.org/CVERecord?id=CVE-2026-75595 CVE-2026-75595], [https://www.cve.org/CVERecord?id=CVE-2026-8763 CVE-2026-8763]&lt;br /&gt;
| Privilege escalation, Missing authorization, IP address spoofing, Authentication bypass, Improper certificate validation&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-purple-bg&amp;quot; | Critical&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2026-06|BSSA-2026-06]]&lt;br /&gt;
|2026-09-28&lt;br /&gt;
|Security vulnerability in ExternalData extension&lt;br /&gt;
|[https://www.strix.ai/cve/CVE-2026-100382 CVE-2026-100382]&lt;br /&gt;
|Remote code execution&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-purple-bg&amp;quot; |Critical&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2026-05|BSSA-2026-05]]&lt;br /&gt;
|2026-07-27&lt;br /&gt;
|Security vulnerabilities in containers and extensions&lt;br /&gt;
|[https://nvd.nist.gov/vuln/detail/CVE-2026-59933 CVE-2026-59933], [https://nvd.nist.gov/vuln/detail/CVE-2025-14813 CVE-2025-14813], [https://nvd.nist.gov/vuln/detail/CVE-2025-65896 CVE-2025-65896], [https://nvd.nist.gov/vuln/detail/CVE-2026-59873 CVE-2026-59873]&lt;br /&gt;
|Uncontrolled ressource consumption, infinite loop&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2026-04|BSSA-2026-04]]&lt;br /&gt;
|2026-06-22&lt;br /&gt;
|Security vulnerabilities in Confluence Migration Tool container image&lt;br /&gt;
|[https://nvd.nist.gov/vuln/detail/CVE-2026-8376 CVE-2026-8376]&lt;br /&gt;
|Heap buffer overflow vulnerability in Perl Regexes&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2026-03|BSSA-2026-03]]&lt;br /&gt;
|2026-06-08&lt;br /&gt;
|Security vulnerabilities in containers of the Cloudogu  stack&lt;br /&gt;
|[https://nvd.nist.gov/vuln/detail/CVE-2026-31789 CVE-2026-31789], [https://nvd.nist.gov/vuln/detail/CVE-2026-43512 CVE-2026-43512], [https://nvd.nist.gov/vuln/detail/CVE-2026-7261 CVE-2026-7261]&lt;br /&gt;
|Heap buffer overflow in OpenSSL, Apache Tomcat DIGEST authentication bypass and  PHP SOAP server session persistence vulnerability&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2026-02|BSSA-2026-02]]&lt;br /&gt;
|2026-03-04&lt;br /&gt;
|Security vulnerability in BlueSpice Database container and NSFileRepo extension.&lt;br /&gt;
|[https://avd.aquasec.com/nvd/2025/cve-2025-15467 CVE-2025-15467],&lt;br /&gt;
[https://avd.aquasec.com/nvd/2026/cve-2026-24732 CVE-2026-24732]&lt;br /&gt;
|Buffer Overflow; Information disclosure&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2026-01|BSSA-2026-01]]&lt;br /&gt;
|2026-01-28&lt;br /&gt;
|Security vulnerability in BlueSpice Collabpads database container.&lt;br /&gt;
|[https://avd.aquasec.com/nvd/2025/cve-2025-14847 CVE-2025-14847]&lt;br /&gt;
|Read of uninitialized heap memory&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2025-07|BSSA-2025-07]]&lt;br /&gt;
|2025-12-10&lt;br /&gt;
|Security vulnerability in BlueSpice Search container.&lt;br /&gt;
|[https://avd.aquasec.com/nvd/2025/cve-2025-66516 CVE-2025-66516]&lt;br /&gt;
|XML Entity Injection&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2025-06|BSSA-2025-06]]&lt;br /&gt;
|2025-10-28&lt;br /&gt;
|Security vulnerabilities in various MediaWiki extensions that are actually part of the BlueSpice distribution&lt;br /&gt;
|[https://www.cve.org/CVERecord?id=CVE-2024-56171 CVE-2024-56171], [https://www.cve.org/CVERecord?id=CVE-2025-3277 CVE-2025-3277], [https://www.cve.org/CVERecord?id=CVE-2025-6965 CVE-2025-6965], [https://www.cve.org/CVERecord?id=CVE-2025-11173 CVE-2025-11173], [https://www.cve.org/CVERecord?id=CVE-2025-11175 CVE-2025-11175],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-53625 CVE-2025-53625],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-54370 CVE-2025-54370],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-54874 CVE-2025-54874],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-59839 CVE-2025-59839],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61634 CVE-2025-61634],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61635 CVE-2025-61635],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61636 CVE-2025-61636],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61637 CVE-2025-61637],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61638 CVE-2025-61638],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61639 CVE-2025-61639],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61640 CVE-2025-61640],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61641 CVE-2025-61641],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61642 CVE-2025-61642],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61643 CVE-2025-61643],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61646 CVE-2025-61646],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61652 CVE-2025-61652],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61653 CVE-2025-61653],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61655 CVE-2025-61655],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61655 CVE-2025-61655],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61656 CVE-2025-61656],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61656 CVE-2025-61656],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61657 CVE-2025-61657],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-7458 CVE-2025-7458]&lt;br /&gt;
|Denial Of Service,&lt;br /&gt;
Cross-Site Scripting (XSS),&lt;br /&gt;
Information Disclosure,&lt;br /&gt;
Bypass authn at content check,&lt;br /&gt;
Server-side Request Forgery,&lt;br /&gt;
Arbitrary Code Execution,&lt;br /&gt;
Memory Corruption,&lt;br /&gt;
Use-After-Free,&lt;br /&gt;
Arbitrary SQL Execution&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-red-bg&amp;quot; |High&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2025-05|BSSA-2025-05]]&lt;br /&gt;
|2025-09-19&lt;br /&gt;
|XSS in Extension:AtMentions, Extension:BlueSpiceAvatars, Extension:BlueSpiceWhoIsOnline and Extension:CognitiveProcessDesigner&lt;br /&gt;
|[https://www.cve.org/CVERecord?id=CVE-2025-46703 CVE-2025-46703], [https://www.cve.org/CVERecord?id=CVE-2025-48007 CVE-2025-48007], [https://www.cve.org/CVERecord?id=CVE-2025-57880 CVE-2025-57880], [https://www.cve.org/CVERecord?id=CVE-2025-58114 CVE-2025-58114]&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2025-04|BSSA-2025-04]]&lt;br /&gt;
|2025-09-18&lt;br /&gt;
|Security vulnerabilities in services &amp;lt;code&amp;gt;bluespice/search&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;bluespice/formular&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; &lt;br /&gt;
|[https://nvd.nist.gov/vuln/detail/CVE-2025-54988 CVE-2025-54988], [https://avd.aquasec.com/nvd/2025/cve-2025-7783 CVE-2025-7783], [https://avd.aquasec.com/nvd/cve-2025-58050 CVE-2025-58050], [https://avd.aquasec.com/nvd/cve-2025-49794 CVE-2025-49794], [https://avd.aquasec.com/nvd/cve-2025-49796 CVE-2025-49796]&lt;br /&gt;
|Denial-of-Service, Information Disclosure&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2025-03|BSSA-2025-03]]&lt;br /&gt;
|2025-07-28&lt;br /&gt;
|Security vulnerabilities in Extension:Scribunto, Extension:TabberNeue, Extension:TwoColConflict and Extension:Quiz&lt;br /&gt;
|[https://www.cve.org/CVERecord?id=CVE-2025-53501 CVE-2025-53501], [https://www.cve.org/CVERecord?id=CVE-2025-53494 CVE-2025-53494], [https://www.cve.org/CVERecord?id=CVE-2025-53093 CVE-2025-53093], [https://www.cve.org/CVERecord?id=CVE-2025-7057 CVE-2025-7057]&lt;br /&gt;
|Information Disclosure, &lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2025-02|BSSA-2025-02]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2025-04-17&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Security vulnerabilities in Extension:OAuth&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2025-32068 CVE-2025-32068], [https://www.cve.org/CVERecord?id=CVE-2025-32074 CVE-2025-32074]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Allows unauthorized access to the wiki, Cross-Site Scripting (XSS)&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2025-01|BSSA-2025-01]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2025-01-20&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Security vulnerabilities in Extension:DataTransfer &lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2025-23081 CVE-2025-23081]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Allows Cross Site Request Forgery, Cross-Site Scripting (XSS)&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2023-02|BSSA-2023-02]]&lt;br /&gt;
|2023-10-30&lt;br /&gt;
|Security vulnerabilities in Extension:BlueSpiceAvatars&lt;br /&gt;
|[https://www.cve.org/cverecord?id=CVE-2023-42431 CVE-2023-42431]&lt;br /&gt;
|Allows Cross-Site Scripting (XSS)&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2023-01|BSSA-2023-01]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2023-07-25&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Ghostscript vulnerability&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2023-36664 CVE-2023-36664]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Code can be executed on the server via a manipulated PDF&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-08|BSSA-2022-08]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-11-15&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector on regular pages&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-3895 CVE-2022-3895]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Arbitrary HTML injection through use of interface elements&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-07|BSSA-2022-07]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-11-15&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector on regular pages&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-3958 CVE-2022-3958]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Arbitrary HTML injection through personal menu items&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-06|BSSA-2022-06]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-11-15&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector on regular pages&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-3893 CVE-2022-3893]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Arbitrary HTML injection through the custom menu&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-05|BSSA-2022-05]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-11-15&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector on regular pages&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-42001 CVE-2022-42001]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Arbitrary HTML injection through the book navigation&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-04|BSSA-2022-04]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-11-15&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector on regular pages&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-41789 CVE-2022-41789], [https://www.cve.org/CVERecord?id=CVE-2022-41814 CVE-2022-41814], [https://www.cve.org/CVERecord?id=CVE-2022-42000 CVE-2022-42000]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Arbitrary HTML injection through user preferences&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-03|BSSA-2022-03]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-11-15&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector on regular pages&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-41611 CVE-2022-41611]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Arbitrary HTML injection through main navigation&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-02|BSSA-2022-02]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-11-15&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector on regular pages&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-2511 CVE-2022-2511]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Arbitrary HTML injection through the &#039;title&#039; parameter&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-01|BSSA-2022-01]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-01-31&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector in Search Center&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-2510 CVE-2022-2510]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |JavaScript in search field is reflected back to the browser.&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Security:Security_Advisories/BSSA-2026-09&amp;diff=14998</id>
		<title>Security:Security Advisories/BSSA-2026-09</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Security:Security_Advisories/BSSA-2026-09&amp;diff=14998"/>
		<updated>2026-10-30T11:32:13Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: Created page with &amp;quot;{| class=&amp;quot;wikitable&amp;quot; |+ ! ! |- |Date |2026-10-29 |- |Severity |reported &amp;quot;critical&amp;quot; (CVSS 3.1: 9.8), BlueSpice assessment: &amp;#039;&amp;#039;&amp;#039;critical&amp;#039;&amp;#039;&amp;#039; (container &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; in BlueSpice pro and farm, publicly readable wikis), &amp;#039;&amp;#039;&amp;#039;high&amp;#039;&amp;#039;&amp;#039; (same, wikis that require a login), &amp;#039;&amp;#039;&amp;#039;medium&amp;#039;&amp;#039;&amp;#039; (container &amp;lt;code&amp;gt;bluespice/chat&amp;lt;/code&amp;gt;), &amp;#039;&amp;#039;&amp;#039;low&amp;#039;&amp;#039;&amp;#039; (all other containers) |- |Affected | * Container &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; in BlueSpice pro and farm 5.1 up to 5.1.11.1 and 5.2 up t...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|Date&lt;br /&gt;
|2026-10-29&lt;br /&gt;
|-&lt;br /&gt;
|Severity&lt;br /&gt;
|reported &amp;quot;critical&amp;quot; (CVSS 3.1: 9.8), BlueSpice assessment: &#039;&#039;&#039;critical&#039;&#039;&#039; (container &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; in BlueSpice pro and farm, publicly readable wikis), &#039;&#039;&#039;high&#039;&#039;&#039; (same, wikis that require a login), &#039;&#039;&#039;medium&#039;&#039;&#039; (container &amp;lt;code&amp;gt;bluespice/chat&amp;lt;/code&amp;gt;), &#039;&#039;&#039;low&#039;&#039;&#039; (all other containers)&lt;br /&gt;
|-&lt;br /&gt;
|Affected&lt;br /&gt;
|&lt;br /&gt;
* Container &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; in BlueSpice pro and farm 5.1 up to 5.1.11.1 and 5.2 up to 5.2.7.1&lt;br /&gt;
* Container &amp;lt;code&amp;gt;bluespice/chat&amp;lt;/code&amp;gt; in BlueSpice 5.2 up to 5.2.7.1, if the MS Teams integration is used&lt;br /&gt;
* All other containers, including &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; in BlueSpice free, contain the affected library, but are not exploitable in default configuration&lt;br /&gt;
|-&lt;br /&gt;
|Fixed in&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;!-- TODO before publishing: confirm release date and the list of rebuilt containers --&amp;gt;&lt;br /&gt;
* BlueSpice 5.1.11.2 and BlueSpice 5.2.7.2 (all containers rebuilt with the fixed Brotli library and Node.js versions, published on &amp;lt;date&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
|CVE&lt;br /&gt;
|&lt;br /&gt;
* [https://nvd.nist.gov/vuln/detail/CVE-2026-111497 CVE-2026-111497]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Problem==&lt;br /&gt;
A vulnerability in the Brotli decompression library (publicly known as &amp;quot;Node2Shell&amp;quot;) allows an attacker to write beyond a memory buffer by sending specially crafted compressed data. This can crash the program, reveal memory contents and allow the attacker to run code. The library is used by Node.js and by many Linux programs, e.g. the &amp;lt;code&amp;gt;curl&amp;lt;/code&amp;gt; library that PHP uses for outgoing HTTP requests. Public exploit code exists for Node.js applications and for PHP applications that download data from web addresses. The US authority CISA lists the vulnerability as actively exploited.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!&#039;&#039;&#039;CVE&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Component&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Type of vulnerability&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;BlueSpice 5&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2026-111497&lt;br /&gt;
|Brotli library (container &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; in BlueSpice pro and farm)&lt;br /&gt;
|Out-of-bounds write when decompressing data, remote code execution&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-purple-bg&amp;quot; |affected&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2026-111497&lt;br /&gt;
|Node.js (container &amp;lt;code&amp;gt;bluespice/chat&amp;lt;/code&amp;gt;)&lt;br /&gt;
|Out-of-bounds write when decompressing data, possibly remote code execution&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |affected, if MS Teams integration is used&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2026-111497&lt;br /&gt;
|Brotli library / Node.js (other containers)&lt;br /&gt;
|Out-of-bounds write when decompressing data&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |not exploitable&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Impact assessment==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
!Component&lt;br /&gt;
!Assessment&lt;br /&gt;
!Mitigation without update&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |Container &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; (BlueSpice pro and farm)&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; class=&amp;quot;col-purple-bg&amp;quot; |Critical on publicly readable wikis, high on wikis that require a login. The extensions ExternalData (BlueSpice 5.1 and 5.2) and ExternalContent (BlueSpice 5.2) let users load data from any web address into a page. The wiki decompresses this data with the affected library. An attacker who controls a web server can use this to run commands in the wiki container. Public exploit code shows this for a comparable PHP application.&lt;br /&gt;
&lt;br /&gt;
Unlike the PHP vulnerabilities in [[Security:Security Advisories/BSSA-2026-08|BSSA-2026-08]], network access to the wiki is not enough. The attacker needs &#039;&#039;&#039;read access to the wiki&#039;&#039;&#039; itself. On wikis that require a login, only logged-in users can exploit the vulnerability. The main risk is on publicly readable wikis, where no login is needed. Such wikis are rare among BlueSpice installations. In addition, the wiki must be able to connect to the attacker&#039;s server on the internet.&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |Disable the extensions ExternalData and ExternalContent (see below).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |Container &amp;lt;code&amp;gt;bluespice/chat&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium. The chat service is not part of standard installations. Its MS Teams connector decompresses incoming requests before it checks whether they come from Microsoft. This connector is not reachable from outside in the default configuration of &amp;lt;code&amp;gt;bluespice-deploy&amp;lt;/code&amp;gt;. If you have made it reachable for MS Teams, the risk is high: an attacker without login could possibly run code in the chat container.&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |Do not expose the MS Teams connector, or reject requests with the header &amp;lt;code&amp;gt;Content-Encoding: br&amp;lt;/code&amp;gt; in the reverse proxy in front of it.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |All other containers, including &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; in BlueSpice free&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low. These services contain the affected library, but do not decompress data that users can control. Other features of the wiki that download data (e.g. RSS feeds, PageForms, EmbedVideo, Semantic MediaWiki, search) only use addresses set by administrators or internal services. An attack through them is very unlikely, as it would require a compromised service or a rarely used configuration.&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |None required. Update with the next maintenance.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Solution ==&lt;br /&gt;
Update to &#039;&#039;&#039;BlueSpice 5.2.7.2&#039;&#039;&#039; or &#039;&#039;&#039;BlueSpice 5.1.11.2&#039;&#039;&#039;. As with [[Security:Security Advisories/BSSA-2026-08|BSSA-2026-08]], these are nano releases without functional changes. We recommend the update for &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; in all editions (free, pro and farm). All containers were rebuilt with the fixed Brotli library (&amp;lt;code&amp;gt;brotli-libs 1.2.1&amp;lt;/code&amp;gt;) and fixed Node.js versions. The image tags &amp;lt;code&amp;gt;5&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;5.2&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;5.1&amp;lt;/code&amp;gt; point to the fixed images.&lt;br /&gt;
&lt;br /&gt;
In the &amp;lt;code&amp;gt;.env&amp;lt;/code&amp;gt; file of &amp;lt;code&amp;gt;bluespice-deploy&amp;lt;/code&amp;gt;, set &amp;lt;code&amp;gt;VERSION&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;5.2&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;5.1&amp;lt;/code&amp;gt;. Then run these commands in the &amp;lt;code&amp;gt;compose&amp;lt;/code&amp;gt; directory of &amp;lt;code&amp;gt;bluespice-deploy&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;./bluespice-deploy pull &amp;amp;&amp;amp; ./bluespice-deploy up -d&amp;lt;/code&amp;gt;. Use the &amp;lt;code&amp;gt;bluespice-deploy&amp;lt;/code&amp;gt; script instead of plain &amp;lt;code&amp;gt;docker compose&amp;lt;/code&amp;gt;, because only the script loads all required &amp;lt;code&amp;gt;docker-compose.*.yml&amp;lt;/code&amp;gt; files.&lt;br /&gt;
&lt;br /&gt;
To check whether your installation is fixed, run:&lt;br /&gt;
* &amp;lt;code&amp;gt;./bluespice-deploy exec wiki-web apk info -v brotli-libs&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;./bluespice-deploy exec wiki-task apk info -v brotli-libs&amp;lt;/code&amp;gt;: must show &amp;lt;code&amp;gt;brotli-libs-1.2.1-r0&amp;lt;/code&amp;gt; or higher&lt;br /&gt;
* &amp;lt;code&amp;gt;./bluespice-deploy exec chat node -v&amp;lt;/code&amp;gt; (BlueSpice 5.2, only if the chat service is used): must show &amp;lt;code&amp;gt;v24.22.1&amp;lt;/code&amp;gt; or higher&lt;br /&gt;
&lt;br /&gt;
=== Mitigation without update: disable ExternalData and ExternalContent (BlueSpice pro and farm) ===&lt;br /&gt;
Use the same method as in [[Security:Security Advisories/BSSA-2026-06#Mitigation:_disable_Extension:ExternalData|BSSA-2026-06]]: mount a copy of the settings file in which the extensions are not loaded. In BlueSpice 5.1, the command only finds ExternalData, as ExternalContent is not part of 5.1.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./bluespice-deploy cp wiki-web:/app/bluespice/w/settings.d/040-BlueSpiceProDistribution.php ./&lt;br /&gt;
sed -i -E &amp;quot;s/^(wfLoadExtension\( &#039;External(Data|Content)&#039; \);)/#\1/&amp;quot; 040-BlueSpiceProDistribution.php&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Add the file to &amp;lt;code&amp;gt;docker-compose.override.yml&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
services:&lt;br /&gt;
  wiki-web:&lt;br /&gt;
    volumes:&lt;br /&gt;
      - ./040-BlueSpiceProDistribution.php:/app/bluespice/w/settings.d/040-BlueSpiceProDistribution.php:ro&lt;br /&gt;
  # same for wiki-task and wiki-installer&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Then re-create the containers with &amp;lt;code&amp;gt;./bluespice-deploy up -d&amp;lt;/code&amp;gt;. The copied file belongs to the current version. &#039;&#039;&#039;Remove the mount before or together with the update.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
While the extensions are disabled, pages that use them show the parser functions as plain text or no data. No content is lost.&lt;br /&gt;
&lt;br /&gt;
=== Was my installation compromised? ===&lt;br /&gt;
We do not know of any attacks on BlueSpice installations. The vulnerability has been public since 2026-10-21. Public exploit code for a comparable PHP application exists since 2026-10-28.&lt;br /&gt;
&lt;br /&gt;
Installing the update or disabling the extensions stops further exploitation. It does not remove anything an attacker may have left behind. If your wiki uses BlueSpice pro or farm and could connect to servers on the internet, check:&lt;br /&gt;
# &#039;&#039;&#039;Pages, templates and modules&#039;&#039;&#039; with &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#get_web_data}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#get_external_data}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#embed}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; that point to servers you do not know, and modules that use &amp;lt;code&amp;gt;mw.ext.externalData&amp;lt;/code&amp;gt;.&lt;br /&gt;
# &#039;&#039;&#039;The access log of the reverse proxy&#039;&#039;&#039; for requests to &amp;lt;code&amp;gt;api.php&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;index.php&amp;lt;/code&amp;gt; with these functions. They can also be used without saving a page, e.g. in a preview. See the notes on log analysis in [[Security:Security Advisories/BSSA-2026-06|BSSA-2026-06]].&lt;br /&gt;
# &#039;&#039;&#039;The logs of &amp;lt;code&amp;gt;wiki-web&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;wiki-task&amp;lt;/code&amp;gt;&#039;&#039;&#039; for processes that ended with a segmentation fault (e.g. &amp;lt;code&amp;gt;exited on signal 11&amp;lt;/code&amp;gt;), and, if available, your firewall logs for connections from the wiki to unknown servers.&lt;br /&gt;
&lt;br /&gt;
If you find signs of an attack, follow the procedure in [[Security:Security Advisories/BSSA-2026-08|BSSA-2026-08]] (section &amp;quot;Was my installation compromised?&amp;quot;) and contact the Hallo Welt! GmbH support.&lt;br /&gt;
&lt;br /&gt;
=== BlueSpice cloud ===&lt;br /&gt;
&amp;lt;!-- TODO: Operations to confirm status of the cloud instances before publishing --&amp;gt;&lt;br /&gt;
BlueSpice cloud uses the same containers and will be updated by Hallo Welt! GmbH. No action is required from cloud customers.&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Security:Security_Advisories&amp;diff=14968</id>
		<title>Security:Security Advisories</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Security:Security_Advisories&amp;diff=14968"/>
		<updated>2026-10-26T08:06:55Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
! style=&amp;quot;&amp;quot; |Release name&lt;br /&gt;
! style=&amp;quot;&amp;quot; |Release date&lt;br /&gt;
! style=&amp;quot;&amp;quot; |Title&lt;br /&gt;
! style=&amp;quot;&amp;quot; |References&lt;br /&gt;
! style=&amp;quot;&amp;quot; |Summary&lt;br /&gt;
!Severity&lt;br /&gt;
|-&lt;br /&gt;
| [[Security:Security Advisories/BSSA-2026-08|BSSA-2026-08]]&lt;br /&gt;
| 2026-10-23&lt;br /&gt;
| Remote code execution in PHP (&amp;quot;PHP2Shell&amp;quot;) affecting wiki and collabpads containers&lt;br /&gt;
| [https://www.cve.org/CVERecord?id=CVE-2026-109618 CVE-2026-109618], [https://www.cve.org/CVERecord?id=CVE-2026-109619 CVE-2026-109619]&lt;br /&gt;
| Remote Code Execution, Memory corruption, Use after free&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-purple-bg&amp;quot; | Critical&lt;br /&gt;
|-&lt;br /&gt;
| [[Security:Security Advisories/BSSA-2026-07|BSSA-2026-07]]&lt;br /&gt;
| 2026-10-23&lt;br /&gt;
| Privilege escalation in wiki container; missing authorization in BlueSpiceUserManager; library vulnerabilities in formula and search containers&lt;br /&gt;
| [https://www.cve.org/CVERecord?id=CVE-2026-25784 CVE-2026-25784], [https://www.cve.org/CVERecord?id=CVE-2026-25716 CVE-2026-25716], [https://www.cve.org/CVERecord?id=CVE-2026-90711 CVE-2026-90711], [https://www.cve.org/CVERecord?id=CVE-2026-75595 CVE-2026-75595], [https://www.cve.org/CVERecord?id=CVE-2026-8763 CVE-2026-8763]&lt;br /&gt;
| Privilege escalation, Missing authorization, IP address spoofing, Authentication bypass, Improper certificate validation&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-purple-bg&amp;quot; | Critical&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2026-06|BSSA-2026-06]]&lt;br /&gt;
|2026-09-28&lt;br /&gt;
|Security vulnerability in ExternalData extension&lt;br /&gt;
|[https://www.strix.ai/cve/CVE-2026-100382 CVE-2026-100382]&lt;br /&gt;
|Remote code execution&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-purple-bg&amp;quot; |Critical&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2026-05|BSSA-2026-05]]&lt;br /&gt;
|2026-07-27&lt;br /&gt;
|Security vulnerabilities in containers and extensions&lt;br /&gt;
|[https://nvd.nist.gov/vuln/detail/CVE-2026-59933 CVE-2026-59933], [https://nvd.nist.gov/vuln/detail/CVE-2025-14813 CVE-2025-14813], [https://nvd.nist.gov/vuln/detail/CVE-2025-65896 CVE-2025-65896], [https://nvd.nist.gov/vuln/detail/CVE-2026-59873 CVE-2026-59873]&lt;br /&gt;
|Uncontrolled ressource consumption, infinite loop&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2026-04|BSSA-2026-04]]&lt;br /&gt;
|2026-06-22&lt;br /&gt;
|Security vulnerabilities in Confluence Migration Tool container image&lt;br /&gt;
|[https://nvd.nist.gov/vuln/detail/CVE-2026-8376 CVE-2026-8376]&lt;br /&gt;
|Heap buffer overflow vulnerability in Perl Regexes&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2026-03|BSSA-2026-03]]&lt;br /&gt;
|2026-06-08&lt;br /&gt;
|Security vulnerabilities in containers of the Cloudogu  stack&lt;br /&gt;
|[https://nvd.nist.gov/vuln/detail/CVE-2026-31789 CVE-2026-31789], [https://nvd.nist.gov/vuln/detail/CVE-2026-43512 CVE-2026-43512], [https://nvd.nist.gov/vuln/detail/CVE-2026-7261 CVE-2026-7261]&lt;br /&gt;
|Heap buffer overflow in OpenSSL, Apache Tomcat DIGEST authentication bypass and  PHP SOAP server session persistence vulnerability&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2026-02|BSSA-2026-02]]&lt;br /&gt;
|2026-03-04&lt;br /&gt;
|Security vulnerability in BlueSpice Database container and NSFileRepo extension.&lt;br /&gt;
|[https://avd.aquasec.com/nvd/2025/cve-2025-15467 CVE-2025-15467],&lt;br /&gt;
[https://avd.aquasec.com/nvd/2026/cve-2026-24732 CVE-2026-24732]&lt;br /&gt;
|Buffer Overflow; Information disclosure&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2026-01|BSSA-2026-01]]&lt;br /&gt;
|2026-01-28&lt;br /&gt;
|Security vulnerability in BlueSpice Collabpads database container.&lt;br /&gt;
|[https://avd.aquasec.com/nvd/2025/cve-2025-14847 CVE-2025-14847]&lt;br /&gt;
|Read of uninitialized heap memory&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2025-07|BSSA-2025-07]]&lt;br /&gt;
|2025-12-10&lt;br /&gt;
|Security vulnerability in BlueSpice Search container.&lt;br /&gt;
|[https://avd.aquasec.com/nvd/2025/cve-2025-66516 CVE-2025-66516]&lt;br /&gt;
|XML Entity Injection&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2025-06|BSSA-2025-06]]&lt;br /&gt;
|2025-10-28&lt;br /&gt;
|Security vulnerabilities in various MediaWiki extensions that are actually part of the BlueSpice distribution&lt;br /&gt;
|[https://www.cve.org/CVERecord?id=CVE-2024-56171 CVE-2024-56171], [https://www.cve.org/CVERecord?id=CVE-2025-3277 CVE-2025-3277], [https://www.cve.org/CVERecord?id=CVE-2025-6965 CVE-2025-6965], [https://www.cve.org/CVERecord?id=CVE-2025-11173 CVE-2025-11173], [https://www.cve.org/CVERecord?id=CVE-2025-11175 CVE-2025-11175],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-53625 CVE-2025-53625],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-54370 CVE-2025-54370],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-54874 CVE-2025-54874],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-59839 CVE-2025-59839],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61634 CVE-2025-61634],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61635 CVE-2025-61635],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61636 CVE-2025-61636],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61637 CVE-2025-61637],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61638 CVE-2025-61638],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61639 CVE-2025-61639],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61640 CVE-2025-61640],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61641 CVE-2025-61641],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61642 CVE-2025-61642],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61643 CVE-2025-61643],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61646 CVE-2025-61646],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61652 CVE-2025-61652],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61653 CVE-2025-61653],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61655 CVE-2025-61655],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61655 CVE-2025-61655],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61656 CVE-2025-61656],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61656 CVE-2025-61656],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61657 CVE-2025-61657],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-7458 CVE-2025-7458]&lt;br /&gt;
|Denial Of Service,&lt;br /&gt;
Cross-Site Scripting (XSS),&lt;br /&gt;
Information Disclosure,&lt;br /&gt;
Bypass authn at content check,&lt;br /&gt;
Server-side Request Forgery,&lt;br /&gt;
Arbitrary Code Execution,&lt;br /&gt;
Memory Corruption,&lt;br /&gt;
Use-After-Free,&lt;br /&gt;
Arbitrary SQL Execution&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-red-bg&amp;quot; |High&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2025-05|BSSA-2025-05]]&lt;br /&gt;
|2025-09-19&lt;br /&gt;
|XSS in Extension:AtMentions, Extension:BlueSpiceAvatars, Extension:BlueSpiceWhoIsOnline and Extension:CognitiveProcessDesigner&lt;br /&gt;
|[https://www.cve.org/CVERecord?id=CVE-2025-46703 CVE-2025-46703], [https://www.cve.org/CVERecord?id=CVE-2025-48007 CVE-2025-48007], [https://www.cve.org/CVERecord?id=CVE-2025-57880 CVE-2025-57880], [https://www.cve.org/CVERecord?id=CVE-2025-58114 CVE-2025-58114]&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2025-04|BSSA-2025-04]]&lt;br /&gt;
|2025-09-18&lt;br /&gt;
|Security vulnerabilities in services &amp;lt;code&amp;gt;bluespice/search&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;bluespice/formular&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; &lt;br /&gt;
|[https://nvd.nist.gov/vuln/detail/CVE-2025-54988 CVE-2025-54988], [https://avd.aquasec.com/nvd/2025/cve-2025-7783 CVE-2025-7783], [https://avd.aquasec.com/nvd/cve-2025-58050 CVE-2025-58050], [https://avd.aquasec.com/nvd/cve-2025-49794 CVE-2025-49794], [https://avd.aquasec.com/nvd/cve-2025-49796 CVE-2025-49796]&lt;br /&gt;
|Denial-of-Service, Information Disclosure&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2025-03|BSSA-2025-03]]&lt;br /&gt;
|2025-07-28&lt;br /&gt;
|Security vulnerabilities in Extension:Scribunto, Extension:TabberNeue, Extension:TwoColConflict and Extension:Quiz&lt;br /&gt;
|[https://www.cve.org/CVERecord?id=CVE-2025-53501 CVE-2025-53501], [https://www.cve.org/CVERecord?id=CVE-2025-53494 CVE-2025-53494], [https://www.cve.org/CVERecord?id=CVE-2025-53093 CVE-2025-53093], [https://www.cve.org/CVERecord?id=CVE-2025-7057 CVE-2025-7057]&lt;br /&gt;
|Information Disclosure, &lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2025-02|BSSA-2025-02]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2025-04-17&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Security vulnerabilities in Extension:OAuth&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2025-32068 CVE-2025-32068], [https://www.cve.org/CVERecord?id=CVE-2025-32074 CVE-2025-32074]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Allows unauthorized access to the wiki, Cross-Site Scripting (XSS)&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2025-01|BSSA-2025-01]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2025-01-20&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Security vulnerabilities in Extension:DataTransfer &lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2025-23081 CVE-2025-23081]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Allows Cross Site Request Forgery, Cross-Site Scripting (XSS)&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2023-02|BSSA-2023-02]]&lt;br /&gt;
|2023-10-30&lt;br /&gt;
|Security vulnerabilities in Extension:BlueSpiceAvatars&lt;br /&gt;
|[https://www.cve.org/cverecord?id=CVE-2023-42431 CVE-2023-42431]&lt;br /&gt;
|Allows Cross-Site Scripting (XSS)&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2023-01|BSSA-2023-01]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2023-07-25&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Ghostscript vulnerability&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2023-36664 CVE-2023-36664]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Code can be executed on the server via a manipulated PDF&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-08|BSSA-2022-08]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-11-15&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector on regular pages&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-3895 CVE-2022-3895]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Arbitrary HTML injection through use of interface elements&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-07|BSSA-2022-07]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-11-15&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector on regular pages&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-3958 CVE-2022-3958]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Arbitrary HTML injection through personal menu items&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-06|BSSA-2022-06]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-11-15&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector on regular pages&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-3893 CVE-2022-3893]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Arbitrary HTML injection through the custom menu&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-05|BSSA-2022-05]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-11-15&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector on regular pages&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-42001 CVE-2022-42001]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Arbitrary HTML injection through the book navigation&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-04|BSSA-2022-04]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-11-15&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector on regular pages&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-41789 CVE-2022-41789], [https://www.cve.org/CVERecord?id=CVE-2022-41814 CVE-2022-41814], [https://www.cve.org/CVERecord?id=CVE-2022-42000 CVE-2022-42000]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Arbitrary HTML injection through user preferences&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-03|BSSA-2022-03]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-11-15&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector on regular pages&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-41611 CVE-2022-41611]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Arbitrary HTML injection through main navigation&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-02|BSSA-2022-02]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-11-15&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector on regular pages&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-2511 CVE-2022-2511]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Arbitrary HTML injection through the &#039;title&#039; parameter&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-01|BSSA-2022-01]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-01-31&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector in Search Center&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-2510 CVE-2022-2510]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |JavaScript in search field is reflected back to the browser.&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Security:Security_Advisories/BSSA-2026-08&amp;diff=14967</id>
		<title>Security:Security Advisories/BSSA-2026-08</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Security:Security_Advisories/BSSA-2026-08&amp;diff=14967"/>
		<updated>2026-10-26T08:06:19Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: Created page with &amp;quot; {| class=&amp;quot;wikitable&amp;quot; |+ ! ! |- |Date |2026-10-23 |- |Severity |reported &amp;quot;critical&amp;quot; (CVSS 4.0: 9.2), BlueSpice assessment: &amp;#039;&amp;#039;&amp;#039;critical&amp;#039;&amp;#039;&amp;#039; (container &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt;), &amp;#039;&amp;#039;&amp;#039;low&amp;#039;&amp;#039;&amp;#039; (container &amp;lt;code&amp;gt;bluespice/collabpads&amp;lt;/code&amp;gt;) |- |Affected | * Container &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; in BlueSpice 5.1 up to 5.1.11 and BlueSpice 5.2 up to 5.2.7 (all editions) * Container &amp;lt;code&amp;gt;bluespice/collabpads&amp;lt;/code&amp;gt; in BlueSpice 5.1 up to 5.1.11 and BlueSpice 5.2 up to 5.2.7 (not...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|Date&lt;br /&gt;
|2026-10-23&lt;br /&gt;
|-&lt;br /&gt;
|Severity&lt;br /&gt;
|reported &amp;quot;critical&amp;quot; (CVSS 4.0: 9.2), BlueSpice assessment: &#039;&#039;&#039;critical&#039;&#039;&#039; (container &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt;), &#039;&#039;&#039;low&#039;&#039;&#039; (container &amp;lt;code&amp;gt;bluespice/collabpads&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
|Affected&lt;br /&gt;
|&lt;br /&gt;
* Container &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; in BlueSpice 5.1 up to 5.1.11 and BlueSpice 5.2 up to 5.2.7 (all editions)&lt;br /&gt;
* Container &amp;lt;code&amp;gt;bluespice/collabpads&amp;lt;/code&amp;gt; in BlueSpice 5.1 up to 5.1.11 and BlueSpice 5.2 up to 5.2.7 (not exploitable in default configuration)&lt;br /&gt;
* BlueSpice installations without containers that use an unpatched PHP version&lt;br /&gt;
|-&lt;br /&gt;
|Fixed in&lt;br /&gt;
|&lt;br /&gt;
* BlueSpice 5.1.11.1 and BlueSpice 5.2.7.1 (containers &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;bluespice/collabpads&amp;lt;/code&amp;gt;, published on 2026-10-22)&lt;br /&gt;
|-&lt;br /&gt;
|CVE&lt;br /&gt;
|&lt;br /&gt;
* [https://nvd.nist.gov/vuln/detail/CVE-2026-109618 CVE-2026-109618]&lt;br /&gt;
* [https://nvd.nist.gov/vuln/detail/CVE-2026-109619 CVE-2026-109619]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Problem==&lt;br /&gt;
Two vulnerabilities in the PHP interpreter (publicly known as &amp;quot;PHP2Shell&amp;quot;) allow unauthenticated remote code execution on web servers that run PHP. They were disclosed by the PHP project on 2026-10-21. Exploitation in the wild has been reported. BlueSpice is affected because it runs on PHP.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!&#039;&#039;&#039;CVE&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Component&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Type of vulnerability&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;BlueSpice 5&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2026-109618&lt;br /&gt;
|PHP (containers &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;bluespice/collabpads&amp;lt;/code&amp;gt;)&lt;br /&gt;
|Remote code execution through memory corruption when PHP runs out of memory while processing a request&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-purple-bg&amp;quot; |affected&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2026-109619&lt;br /&gt;
|PHP (containers &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;bluespice/collabpads&amp;lt;/code&amp;gt;)&lt;br /&gt;
|Remote code execution through use of freed memory in a later request (use after free)&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-purple-bg&amp;quot; |affected&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Impact assessment==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
!Component&lt;br /&gt;
!Assessment&lt;br /&gt;
!Mitigation without update&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |Container &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; class=&amp;quot;col-purple-bg&amp;quot; |Critical. The wiki container processes all user requests with PHP-FPM. The vulnerabilities can be exploited before any BlueSpice code runs, so no login is needed, and private wikis are affected as well. A successful attacker can run commands inside the wiki container. This gives access to all wiki content and uploaded files, to the secrets of the container (e.g. database credentials) and to the internal services (database, search, cache).&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |No configuration change fully mitigates the vulnerabilities. Take the wiki offline or restrict access to trusted networks (e.g. VPN only) until the update is installed.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |Container &amp;lt;code&amp;gt;bluespice/collabpads&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low. The collabpads service is a WebSocket server that runs as a single PHP command line process. It does not use the PHP request processing that the vulnerabilities affect. Not exploitable through the known attack paths. The container was updated as a precaution.&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |None required. Update with the next maintenance.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Solution ==&lt;br /&gt;
Update to &#039;&#039;&#039;BlueSpice 5.1.11.1&#039;&#039;&#039; or &#039;&#039;&#039;BlueSpice 5.2.7.1&#039;&#039;&#039;. These releases contain only updated containers &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; (PHP 8.4.27) and &amp;lt;code&amp;gt;bluespice/collabpads&amp;lt;/code&amp;gt; (PHP 8.3.36). The wiki container also disables the PHP setting &amp;lt;code&amp;gt;session.upload_progress.enabled&amp;lt;/code&amp;gt;, which BlueSpice does not use.&lt;br /&gt;
&lt;br /&gt;
The other services (e.g. &amp;lt;code&amp;gt;search&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;pdf&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;formula&amp;lt;/code&amp;gt;) were not re-released and keep their version numbers. The image tags &amp;lt;code&amp;gt;5&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;5.2&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;5.1&amp;lt;/code&amp;gt; of &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;bluespice/collabpads&amp;lt;/code&amp;gt; point to the fixed images. Therefore, in the &amp;lt;code&amp;gt;.env&amp;lt;/code&amp;gt; file of &amp;lt;code&amp;gt;bluespice-deploy&amp;lt;/code&amp;gt;, set &amp;lt;code&amp;gt;VERSION&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;5.2&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;5.1&amp;lt;/code&amp;gt;. Do not set it to &amp;lt;code&amp;gt;5.2.7.1&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;5.1.11.1&amp;lt;/code&amp;gt;, as the other services are not available with these tags. Then pull the images and re-create the containers. Run these commands in the &amp;lt;code&amp;gt;compose&amp;lt;/code&amp;gt; directory of &amp;lt;code&amp;gt;bluespice-deploy&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;./bluespice-deploy pull &amp;amp;&amp;amp; ./bluespice-deploy up -d&amp;lt;/code&amp;gt;. Use the &amp;lt;code&amp;gt;bluespice-deploy&amp;lt;/code&amp;gt; script instead of plain &amp;lt;code&amp;gt;docker compose&amp;lt;/code&amp;gt;, because only the script loads all required &amp;lt;code&amp;gt;docker-compose.*.yml&amp;lt;/code&amp;gt; files.&lt;br /&gt;
&lt;br /&gt;
To check whether your installation is fixed, run:&lt;br /&gt;
* &amp;lt;code&amp;gt;./bluespice-deploy exec wiki-web php -v&amp;lt;/code&amp;gt;: must show PHP 8.4.27 or higher&lt;br /&gt;
* &amp;lt;code&amp;gt;./bluespice-deploy exec collabpads php -v&amp;lt;/code&amp;gt; (BlueSpice pro and farm only): must show PHP 8.3.36 or higher&lt;br /&gt;
&lt;br /&gt;
Tarballs of BlueSpice 5.1.11.1 and 5.2.7.1 are available on bluespice.com.&lt;br /&gt;
&lt;br /&gt;
BlueSpice cloud was taken offline as a precaution before the vulnerabilities were announced. We found no evidence of attacks. The cloud instances are already back online with a patched PHP version. No action is required from cloud customers.&lt;br /&gt;
&lt;br /&gt;
BlueSpice 4 is no longer supported. As some people still use it, we published updated images &amp;lt;code&amp;gt;bluespice/wiki:4.5.8.1&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;bluespice/collabpads:4.5.8.1&amp;lt;/code&amp;gt; with a patched PHP version. We strongly recommend updating to BlueSpice 5 though.&lt;br /&gt;
&lt;br /&gt;
=== Was my installation compromised? ===&lt;br /&gt;
As far as we know, there were no successful attacks before 2026-10-21.&lt;br /&gt;
&lt;br /&gt;
Installing the update stops further exploitation. It does not remove anything an attacker may have left behind. The risk depends on what you did before the update:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;You took the wiki offline&#039;&#039;&#039; (or restricted access to trusted networks) when the early warning was published on 2026-10-21 and kept it offline until the update was installed: your installation &#039;&#039;should&#039;&#039; be safe. We still recommend the basic checks below.&lt;br /&gt;
* &#039;&#039;&#039;Your wiki stayed reachable from untrusted networks&#039;&#039;&#039; (especially from the internet) with an unpatched PHP version: the chances of a successful attack are &#039;&#039;&#039;high&#039;&#039;&#039;. Treat the installation as compromised and follow the procedure below.&lt;br /&gt;
&lt;br /&gt;
==== Basic checks ====&lt;br /&gt;
# &#039;&#039;&#039;PHP error log:&#039;&#039;&#039; check the log of the &amp;lt;code&amp;gt;wiki-web&amp;lt;/code&amp;gt; container (&amp;lt;code&amp;gt;./bluespice-deploy logs wiki-web&amp;lt;/code&amp;gt;) for messages like &amp;lt;code&amp;gt;Allowed memory size of … bytes exhausted … in Unknown on line 0&amp;lt;/code&amp;gt; and for PHP-FPM workers that ended with a segmentation fault (&amp;lt;code&amp;gt;exited on signal 11&amp;lt;/code&amp;gt;). Such messages alone do not prove an attack, but they are a reason for a closer look.&lt;br /&gt;
# &#039;&#039;&#039;Settings files in the data volume:&#039;&#039;&#039; check the files &amp;lt;code&amp;gt;pre-init-settings.php&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;post-init-settings.php&amp;lt;/code&amp;gt; in the data volume of the wiki (&amp;lt;code&amp;gt;/data/bluespice&amp;lt;/code&amp;gt; in the container) for content that you did not add. Also look for other unexpected &amp;lt;code&amp;gt;.php&amp;lt;/code&amp;gt; files in the data volume. These files may be loaded by the wiki and are not replaced by the update.&lt;br /&gt;
# &#039;&#039;&#039;Users and groups:&#039;&#039;&#039; check the members of the groups &amp;lt;code&amp;gt;sysop&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;bureaucrat&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;Special:ListUsers&amp;lt;/code&amp;gt;) and recently created accounts (&amp;lt;code&amp;gt;Special:Log/newusers&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
==== Procedure for installations that stayed reachable ====&lt;br /&gt;
An attacker could run any command in the wiki container. This includes reading all secrets of the container, and reading and changing the database, the search index and all files in the data volume. Changes made directly in the database do not show up in the page history.&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Preserve the evidence first.&#039;&#039;&#039; Before you reset anything, save all log files: the access logs of the reverse proxy, the logs of all containers (&amp;lt;code&amp;gt;./bluespice-deploy logs &amp;gt; logs.txt&amp;lt;/code&amp;gt;; container logs are lost when the containers are removed), and the system logs of the server. Also keep a copy of the data volumes and a database dump of the current state for the analysis.&lt;br /&gt;
# &#039;&#039;&#039;Renew the infrastructure.&#039;&#039;&#039; Set up a new server (or virtual machine) with a fresh operating system and install BlueSpice 5.1.11.1 or 5.2.7.1. Do not reuse the old server.&lt;br /&gt;
# &#039;&#039;&#039;Use new credentials.&#039;&#039;&#039; Generate new passwords and secrets for the new installation (database passwords, the secrets in the &amp;lt;code&amp;gt;.env&amp;lt;/code&amp;gt; file and the secret files of &amp;lt;code&amp;gt;bluespice-deploy&amp;lt;/code&amp;gt;). Also change all credentials that were configured in the old installation, e.g. for LDAP, SAML, mail servers or other connected systems. Ask administrators and users to change their passwords.&lt;br /&gt;
# &#039;&#039;&#039;Analyze the content before you move it to the new server:&#039;&#039;&#039;&lt;br /&gt;
#* &#039;&#039;&#039;Log files:&#039;&#039;&#039; look for unusually large &amp;lt;code&amp;gt;POST&amp;lt;/code&amp;gt; requests, requests from unknown addresses and the PHP errors listed in the basic checks, starting from 2026-10-21. If your logs go back further, also check the days before.&lt;br /&gt;
#* &#039;&#039;&#039;Files:&#039;&#039;&#039; scan the data volume (uploaded files, settings files) with an up-to-date virus scanner. Look for &amp;lt;code&amp;gt;.php&amp;lt;/code&amp;gt; files and other files that you do not know, and for files that were changed recently.&lt;br /&gt;
#* &#039;&#039;&#039;Pages:&#039;&#039;&#039; check &amp;lt;code&amp;gt;Special:RecentChanges&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;Special:Log&amp;lt;/code&amp;gt; for unexpected changes. Pay special attention to pages in the &amp;lt;code&amp;gt;MediaWiki&amp;lt;/code&amp;gt; namespace (e.g. &amp;lt;code&amp;gt;MediaWiki:Common.js&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;MediaWiki:Common.css&amp;lt;/code&amp;gt;), user scripts, templates and pages with many readers. Look for injected scripts, links or forms. As changes made directly in the database leave no trace in the page history, compare important pages with a backup.&lt;br /&gt;
#* &#039;&#039;&#039;Users and permissions:&#039;&#039;&#039; check administrator accounts, new accounts, changes of user groups and, in BlueSpice pro and farm, OAuth applications (&amp;lt;code&amp;gt;Special:OAuthListConsumers&amp;lt;/code&amp;gt;).&lt;br /&gt;
# &#039;&#039;&#039;Restore.&#039;&#039;&#039; If possible, restore the data from a backup created before 2026-10-21. Otherwise, only move data that you have checked to the new server.&lt;br /&gt;
# &#039;&#039;&#039;Check connected systems.&#039;&#039;&#039; The server could also be used to attack other systems in your network (lateral movement). Check systems that the wiki server can reach (e.g. directory services, file servers) as well.&lt;br /&gt;
&lt;br /&gt;
If you find signs of an attack, please contact the Hallo Welt! GmbH support.&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Security:Security_Advisories&amp;diff=14963</id>
		<title>Security:Security Advisories</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Security:Security_Advisories&amp;diff=14963"/>
		<updated>2026-10-23T08:48:28Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
! style=&amp;quot;&amp;quot; |Release name&lt;br /&gt;
! style=&amp;quot;&amp;quot; |Release date&lt;br /&gt;
! style=&amp;quot;&amp;quot; |Title&lt;br /&gt;
! style=&amp;quot;&amp;quot; |References&lt;br /&gt;
! style=&amp;quot;&amp;quot; |Summary&lt;br /&gt;
!Severity&lt;br /&gt;
|-&lt;br /&gt;
| [[Security:Security Advisories/BSSA-2026-07|BSSA-2026-07]]&lt;br /&gt;
| 2026-10-23&lt;br /&gt;
| Privilege escalation in wiki container; missing authorization in BlueSpiceUserManager; library vulnerabilities in formula and search containers&lt;br /&gt;
| [https://www.cve.org/CVERecord?id=CVE-2026-25784 CVE-2026-25784], [https://www.cve.org/CVERecord?id=CVE-2026-25716 CVE-2026-25716], [https://www.cve.org/CVERecord?id=CVE-2026-90711 CVE-2026-90711], [https://www.cve.org/CVERecord?id=CVE-2026-75595 CVE-2026-75595], [https://www.cve.org/CVERecord?id=CVE-2026-8763 CVE-2026-8763]&lt;br /&gt;
| Privilege escalation, Missing authorization, IP address spoofing, Authentication bypass, Improper certificate validation&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-purple-bg&amp;quot; | Critical&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2026-06|BSSA-2026-06]]&lt;br /&gt;
|2026-09-28&lt;br /&gt;
|Security vulnerability in ExternalData extension&lt;br /&gt;
|[https://www.strix.ai/cve/CVE-2026-100382 CVE-2026-100382]&lt;br /&gt;
|Remote code execution&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-purple-bg&amp;quot; |Critical&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2026-05|BSSA-2026-05]]&lt;br /&gt;
|2026-07-27&lt;br /&gt;
|Security vulnerabilities in containers and extensions&lt;br /&gt;
|[https://nvd.nist.gov/vuln/detail/CVE-2026-59933 CVE-2026-59933], [https://nvd.nist.gov/vuln/detail/CVE-2025-14813 CVE-2025-14813], [https://nvd.nist.gov/vuln/detail/CVE-2025-65896 CVE-2025-65896], [https://nvd.nist.gov/vuln/detail/CVE-2026-59873 CVE-2026-59873]&lt;br /&gt;
|Uncontrolled ressource consumption, infinite loop&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2026-04|BSSA-2026-04]]&lt;br /&gt;
|2026-06-22&lt;br /&gt;
|Security vulnerabilities in Confluence Migration Tool container image&lt;br /&gt;
|[https://nvd.nist.gov/vuln/detail/CVE-2026-8376 CVE-2026-8376]&lt;br /&gt;
|Heap buffer overflow vulnerability in Perl Regexes&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2026-03|BSSA-2026-03]]&lt;br /&gt;
|2026-06-08&lt;br /&gt;
|Security vulnerabilities in containers of the Cloudogu  stack&lt;br /&gt;
|[https://nvd.nist.gov/vuln/detail/CVE-2026-31789 CVE-2026-31789], [https://nvd.nist.gov/vuln/detail/CVE-2026-43512 CVE-2026-43512], [https://nvd.nist.gov/vuln/detail/CVE-2026-7261 CVE-2026-7261]&lt;br /&gt;
|Heap buffer overflow in OpenSSL, Apache Tomcat DIGEST authentication bypass and  PHP SOAP server session persistence vulnerability&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2026-02|BSSA-2026-02]]&lt;br /&gt;
|2026-03-04&lt;br /&gt;
|Security vulnerability in BlueSpice Database container and NSFileRepo extension.&lt;br /&gt;
|[https://avd.aquasec.com/nvd/2025/cve-2025-15467 CVE-2025-15467],&lt;br /&gt;
[https://avd.aquasec.com/nvd/2026/cve-2026-24732 CVE-2026-24732]&lt;br /&gt;
|Buffer Overflow; Information disclosure&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2026-01|BSSA-2026-01]]&lt;br /&gt;
|2026-01-28&lt;br /&gt;
|Security vulnerability in BlueSpice Collabpads database container.&lt;br /&gt;
|[https://avd.aquasec.com/nvd/2025/cve-2025-14847 CVE-2025-14847]&lt;br /&gt;
|Read of uninitialized heap memory&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2025-07|BSSA-2025-07]]&lt;br /&gt;
|2025-12-10&lt;br /&gt;
|Security vulnerability in BlueSpice Search container.&lt;br /&gt;
|[https://avd.aquasec.com/nvd/2025/cve-2025-66516 CVE-2025-66516]&lt;br /&gt;
|XML Entity Injection&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2025-06|BSSA-2025-06]]&lt;br /&gt;
|2025-10-28&lt;br /&gt;
|Security vulnerabilities in various MediaWiki extensions that are actually part of the BlueSpice distribution&lt;br /&gt;
|[https://www.cve.org/CVERecord?id=CVE-2024-56171 CVE-2024-56171], [https://www.cve.org/CVERecord?id=CVE-2025-3277 CVE-2025-3277], [https://www.cve.org/CVERecord?id=CVE-2025-6965 CVE-2025-6965], [https://www.cve.org/CVERecord?id=CVE-2025-11173 CVE-2025-11173], [https://www.cve.org/CVERecord?id=CVE-2025-11175 CVE-2025-11175],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-53625 CVE-2025-53625],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-54370 CVE-2025-54370],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-54874 CVE-2025-54874],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-59839 CVE-2025-59839],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61634 CVE-2025-61634],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61635 CVE-2025-61635],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61636 CVE-2025-61636],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61637 CVE-2025-61637],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61638 CVE-2025-61638],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61639 CVE-2025-61639],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61640 CVE-2025-61640],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61641 CVE-2025-61641],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61642 CVE-2025-61642],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61643 CVE-2025-61643],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61646 CVE-2025-61646],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61652 CVE-2025-61652],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61653 CVE-2025-61653],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61655 CVE-2025-61655],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61655 CVE-2025-61655],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61656 CVE-2025-61656],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61656 CVE-2025-61656],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61657 CVE-2025-61657],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-7458 CVE-2025-7458]&lt;br /&gt;
|Denial Of Service,&lt;br /&gt;
Cross-Site Scripting (XSS),&lt;br /&gt;
Information Disclosure,&lt;br /&gt;
Bypass authn at content check,&lt;br /&gt;
Server-side Request Forgery,&lt;br /&gt;
Arbitrary Code Execution,&lt;br /&gt;
Memory Corruption,&lt;br /&gt;
Use-After-Free,&lt;br /&gt;
Arbitrary SQL Execution&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-red-bg&amp;quot; |High&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2025-05|BSSA-2025-05]]&lt;br /&gt;
|2025-09-19&lt;br /&gt;
|XSS in Extension:AtMentions, Extension:BlueSpiceAvatars, Extension:BlueSpiceWhoIsOnline and Extension:CognitiveProcessDesigner&lt;br /&gt;
|[https://www.cve.org/CVERecord?id=CVE-2025-46703 CVE-2025-46703], [https://www.cve.org/CVERecord?id=CVE-2025-48007 CVE-2025-48007], [https://www.cve.org/CVERecord?id=CVE-2025-57880 CVE-2025-57880], [https://www.cve.org/CVERecord?id=CVE-2025-58114 CVE-2025-58114]&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2025-04|BSSA-2025-04]]&lt;br /&gt;
|2025-09-18&lt;br /&gt;
|Security vulnerabilities in services &amp;lt;code&amp;gt;bluespice/search&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;bluespice/formular&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; &lt;br /&gt;
|[https://nvd.nist.gov/vuln/detail/CVE-2025-54988 CVE-2025-54988], [https://avd.aquasec.com/nvd/2025/cve-2025-7783 CVE-2025-7783], [https://avd.aquasec.com/nvd/cve-2025-58050 CVE-2025-58050], [https://avd.aquasec.com/nvd/cve-2025-49794 CVE-2025-49794], [https://avd.aquasec.com/nvd/cve-2025-49796 CVE-2025-49796]&lt;br /&gt;
|Denial-of-Service, Information Disclosure&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2025-03|BSSA-2025-03]]&lt;br /&gt;
|2025-07-28&lt;br /&gt;
|Security vulnerabilities in Extension:Scribunto, Extension:TabberNeue, Extension:TwoColConflict and Extension:Quiz&lt;br /&gt;
|[https://www.cve.org/CVERecord?id=CVE-2025-53501 CVE-2025-53501], [https://www.cve.org/CVERecord?id=CVE-2025-53494 CVE-2025-53494], [https://www.cve.org/CVERecord?id=CVE-2025-53093 CVE-2025-53093], [https://www.cve.org/CVERecord?id=CVE-2025-7057 CVE-2025-7057]&lt;br /&gt;
|Information Disclosure, &lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2025-02|BSSA-2025-02]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2025-04-17&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Security vulnerabilities in Extension:OAuth&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2025-32068 CVE-2025-32068], [https://www.cve.org/CVERecord?id=CVE-2025-32074 CVE-2025-32074]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Allows unauthorized access to the wiki, Cross-Site Scripting (XSS)&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2025-01|BSSA-2025-01]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2025-01-20&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Security vulnerabilities in Extension:DataTransfer &lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2025-23081 CVE-2025-23081]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Allows Cross Site Request Forgery, Cross-Site Scripting (XSS)&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2023-02|BSSA-2023-02]]&lt;br /&gt;
|2023-10-30&lt;br /&gt;
|Security vulnerabilities in Extension:BlueSpiceAvatars&lt;br /&gt;
|[https://www.cve.org/cverecord?id=CVE-2023-42431 CVE-2023-42431]&lt;br /&gt;
|Allows Cross-Site Scripting (XSS)&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2023-01|BSSA-2023-01]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2023-07-25&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Ghostscript vulnerability&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2023-36664 CVE-2023-36664]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Code can be executed on the server via a manipulated PDF&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-08|BSSA-2022-08]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-11-15&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector on regular pages&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-3895 CVE-2022-3895]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Arbitrary HTML injection through use of interface elements&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-07|BSSA-2022-07]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-11-15&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector on regular pages&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-3958 CVE-2022-3958]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Arbitrary HTML injection through personal menu items&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-06|BSSA-2022-06]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-11-15&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector on regular pages&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-3893 CVE-2022-3893]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Arbitrary HTML injection through the custom menu&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-05|BSSA-2022-05]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-11-15&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector on regular pages&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-42001 CVE-2022-42001]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Arbitrary HTML injection through the book navigation&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-04|BSSA-2022-04]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-11-15&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector on regular pages&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-41789 CVE-2022-41789], [https://www.cve.org/CVERecord?id=CVE-2022-41814 CVE-2022-41814], [https://www.cve.org/CVERecord?id=CVE-2022-42000 CVE-2022-42000]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Arbitrary HTML injection through user preferences&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-03|BSSA-2022-03]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-11-15&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector on regular pages&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-41611 CVE-2022-41611]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Arbitrary HTML injection through main navigation&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-02|BSSA-2022-02]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-11-15&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector on regular pages&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-2511 CVE-2022-2511]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Arbitrary HTML injection through the &#039;title&#039; parameter&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-01|BSSA-2022-01]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-01-31&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector in Search Center&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-2510 CVE-2022-2510]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |JavaScript in search field is reflected back to the browser.&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Security:Security_Advisories/BSSA-2026-07&amp;diff=14962</id>
		<title>Security:Security Advisories/BSSA-2026-07</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Security:Security_Advisories/BSSA-2026-07&amp;diff=14962"/>
		<updated>2026-10-23T08:48:10Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|Date&lt;br /&gt;
|2026-10-23&lt;br /&gt;
|-&lt;br /&gt;
|Severity&lt;br /&gt;
|&#039;&#039;&#039;Critical&#039;&#039;&#039; (CVSS 4.0: 9.3) for CVE-2026-25784; &#039;&#039;&#039;High&#039;&#039;&#039; (CVSS 4.0: 7.1) for CVE-2026-25716; Container findings: reported &amp;quot;critical&amp;quot;, BlueSpice assessment: &#039;&#039;&#039;low&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|Affected&lt;br /&gt;
|&lt;br /&gt;
* Container &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; in BlueSpice 5.2.3 – 5.2.6, and BlueSpice 5.2.7 images published before 2026-10-19 15:37 UTC (all editions)&lt;br /&gt;
* BlueSpice 5.0.0 – 5.1.10, BlueSpice 5.2.0 – 5.2.6 (&amp;lt;code&amp;gt;Extension:BlueSpiceUserManager&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Containers &amp;lt;code&amp;gt;bluespice/formula&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;bluespice/search&amp;lt;/code&amp;gt; in BlueSpice 5.1 up to 5.1.11 and BlueSpice 5.2 up to 5.2.7 (not exploitable in default configuration)&lt;br /&gt;
|-&lt;br /&gt;
|Fixed in&lt;br /&gt;
|&lt;br /&gt;
* BlueSpice 5.2.7 (container &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt;, images re-published on 2026-10-19)&lt;br /&gt;
* BlueSpice 5.1.11, BlueSpice 5.2.7 (&amp;lt;code&amp;gt;Extension:BlueSpiceUserManager&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Containers: next regular update (&amp;lt;code&amp;gt;bluespice/search&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;bluespice/formula&amp;lt;/code&amp;gt; depend on an upstream release)&lt;br /&gt;
|-&lt;br /&gt;
|CVE&lt;br /&gt;
|&lt;br /&gt;
* [https://nvd.nist.gov/vuln/detail/CVE-2026-25784 CVE-2026-25784]&lt;br /&gt;
* [https://nvd.nist.gov/vuln/detail/CVE-2026-25716 CVE-2026-25716]&lt;br /&gt;
* [https://avd.aquasec.com/nvd/2026/cve-2026-90711/ CVE-2026-90711]&lt;br /&gt;
* [https://avd.aquasec.com/nvd/2026/cve-2026-75595/ CVE-2026-75595]&lt;br /&gt;
* [https://avd.aquasec.com/nvd/2026/cve-2026-8763/ CVE-2026-8763]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Problem==&lt;br /&gt;
Several vulnerabilities were found in various security reviews and by external researchers.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!&#039;&#039;&#039;CVE&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Component&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Type of vulnerability&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;BlueSpice 5&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2026-25784&lt;br /&gt;
|Container &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; (service authentication)&lt;br /&gt;
|Privilege escalation through an insecure default configuration (CWE-1188)&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-purple-bg&amp;quot; |affected&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2026-25716&lt;br /&gt;
|&amp;lt;code&amp;gt;Extension:BlueSpiceUserManager&amp;lt;/code&amp;gt;&lt;br /&gt;
|Missing authorization (CWE-862) when blocking and unblocking users&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-red-bg&amp;quot; |affected&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2026-90711&lt;br /&gt;
|Container &amp;lt;code&amp;gt;bluespice/formula&amp;lt;/code&amp;gt; (library &amp;lt;code&amp;gt;proxy-addr&amp;lt;/code&amp;gt;)&lt;br /&gt;
|IP address spoofing via &amp;lt;code&amp;gt;X-Forwarded-For&amp;lt;/code&amp;gt; (CWE-290)&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |not exploitable&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2026-75595&lt;br /&gt;
|Container &amp;lt;code&amp;gt;bluespice/search&amp;lt;/code&amp;gt; (library &amp;lt;code&amp;gt;netty-handler&amp;lt;/code&amp;gt;)&lt;br /&gt;
|Bypass of TLS client certificate authentication (CWE-754)&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |not exploitable&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2026-8763&lt;br /&gt;
|Container &amp;lt;code&amp;gt;bluespice/search&amp;lt;/code&amp;gt; (library Bouncy Castle)&lt;br /&gt;
|Improper certificate validation, name constraints bypass (CWE-295)&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |not exploitable&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Impact assessment==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
!CVE&lt;br /&gt;
!Assessment&lt;br /&gt;
!Mitigation without update&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |CVE-2026-25784&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; class=&amp;quot;col-purple-bg&amp;quot; |&#039;&#039;&#039;Critical&#039;&#039;&#039;. The wiki container includes an authentication mechanism for internal BlueSpice services (e.g. chat and AI integrations). This mechanism should only be usable from the internal container network. Because of an error in the default configuration of the container, this restriction was not applied. Any user who can read the wiki could obtain administrator (&amp;lt;code&amp;gt;sysop&amp;lt;/code&amp;gt;) privileges through the REST API. On wikis that allow anonymous read access, this includes users who are not logged in. Actions taken this way are recorded as actions of the internal user &#039;&#039;ChatBot service user&#039;&#039;. BlueSpice 5.1 and BlueSpice 5.2.1 – 5.2.2 are not affected.&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |Set the environment variable &amp;lt;code&amp;gt;WIKI_SERVICE_TOKEN_AUTH_ALLOWED&amp;lt;/code&amp;gt; of the containers &amp;lt;code&amp;gt;wiki-web&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;wiki-task&amp;lt;/code&amp;gt; to the address range of the internal container network (e.g. &amp;lt;code&amp;gt;172.18.0.0/16&amp;lt;/code&amp;gt;), or deny access to the path &amp;lt;code&amp;gt;/rest.php/mws/v1/app-token/generate&amp;lt;/code&amp;gt; on the reverse proxy.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |CVE-2026-25716&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; class=&amp;quot;col-red-bg&amp;quot; |&#039;&#039;&#039;High&#039;&#039;&#039;. The REST endpoints that &#039;&#039;Special:UserManager&#039;&#039; uses to enable and disable user accounts do not check the permissions of the requesting user. Any logged-in user can therefore disable (block) any account, including all administrators, or re-enable accounts that administrators have disabled. This can make the wiki unusable for administration. No content is changed and no data is disclosed. All block and unblock actions are recorded in the block log (&amp;lt;code&amp;gt;Special:Log/block&amp;lt;/code&amp;gt;).&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |Deny access to the paths &amp;lt;code&amp;gt;/rest.php/bs-usermanager/v1/block/create&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;/rest.php/bs-usermanager/v1/block/delete&amp;lt;/code&amp;gt; on the web server or reverse proxy. While this is in place, users cannot be enabled or disabled from &#039;&#039;Special:UserManager&#039;&#039;; administrators can use &#039;&#039;Special:Block&#039;&#039; and &#039;&#039;Special:Unblock&#039;&#039; instead.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |CVE-2026-90711&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |&#039;&#039;&#039;Low&#039;&#039;&#039;. The vulnerability only applies if the service is configured to trust proxies by an IPv4-mapped IPv6 subnet. The formula service does not trust any proxy headers, has no user facing route and is only accessed by the wiki. Not exploitable in the default configuration of &amp;lt;code&amp;gt;bluespice-deploy&amp;lt;/code&amp;gt; and BlueSpice cloud.&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |None required. Make sure the &amp;lt;code&amp;gt;formula&amp;lt;/code&amp;gt; service is not reachable from outside the internal network. This is the default configuration of BlueSpice setups.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |CVE-2026-75595&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |&#039;&#039;&#039;Low&#039;&#039;&#039;. The vulnerability only applies to TLS servers that require client certificates for specific host names (SNI). The search service does not use TLS (the OpenSearch security plugin is disabled), has no user facing route and is only accessed by the wiki. Not exploitable in the default configuration of &amp;lt;code&amp;gt;bluespice-deploy&amp;lt;/code&amp;gt; and BlueSpice cloud.&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |None required. Make sure the &amp;lt;code&amp;gt;search&amp;lt;/code&amp;gt; service is not reachable from outside the internal network. This is the default configuration of BlueSpice setups.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |CVE-2026-8763&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |&#039;&#039;&#039;Low&#039;&#039;&#039;. The vulnerability only applies when certificates are validated against certificate authorities that use name constraints. The search service does not use TLS, has no outbound connections and does not perform such certificate validation. Not exploitable in the default configuration of &amp;lt;code&amp;gt;bluespice-deploy&amp;lt;/code&amp;gt; and BlueSpice cloud.&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |None required. Make sure the &amp;lt;code&amp;gt;search&amp;lt;/code&amp;gt; service is not reachable from outside the internal network. This is the default configuration of BlueSpice setups.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Solution ==&lt;br /&gt;
{{Textbox|boxtype=important|header=|text=&#039;&#039;&#039;Recommended action:&#039;&#039;&#039; Update to BlueSpice 5.2.7 to fix all critical and high rated issues of this BSSA.|icon=yes}}&lt;br /&gt;
&lt;br /&gt;
=== CVE-2026-25784 ===&lt;br /&gt;
Update to &#039;&#039;&#039;BlueSpice 5.2.7&#039;&#039;&#039;. The container images of BlueSpice 5.2.7 were re-published on 2026-10-19 (15:37 UTC) with the fix. If you pulled 5.2.7 images before that time, pull them again and re-create the containers (e.g. &amp;lt;code&amp;gt;docker compose pull &amp;amp;&amp;amp; docker compose up -d&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
To check whether your installation is fixed, run &amp;lt;code&amp;gt;docker compose exec wiki-web grep -A2 TokenAuthenticatorServiceCIDR /app/conf/LocalSettings.php&amp;lt;/code&amp;gt;. The last line of the output must start with &amp;lt;code&amp;gt;?:&amp;lt;/code&amp;gt;. If it starts with &amp;lt;code&amp;gt;??&amp;lt;/code&amp;gt;, the installation is still affected.&lt;br /&gt;
&lt;br /&gt;
BlueSpice cloud instances are updated by Hallo Welt! GmbH; no action is required from customers.&lt;br /&gt;
&lt;br /&gt;
==== Checking for misuse ====&lt;br /&gt;
The issue may have been present since BlueSpice 5.2.3 (April 2026). Installing the update stops any further misuse. Accounts, permissions or OAuth applications that an attacker created before the update keep working until you remove them. We therefore recommend checking your installation after updating.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Before you start:&#039;&#039;&#039; save the access logs of your reverse proxy for the whole period since the installation of BlueSpice 5.2.3, if available, so that they are not lost to log rotation.&lt;br /&gt;
&lt;br /&gt;
Actions performed through this issue are recorded as actions of the internal user &#039;&#039;ChatBot service user&#039;&#039;. BlueSpice services such as chat, MCP or AI integrations also act as this user. To tell them apart, compare with your access logs: legitimate calls come from the internal container network.&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Access logs:&#039;&#039;&#039; look for requests to &amp;lt;code&amp;gt;/rest.php/mws/v1/app-token/generate&amp;lt;/code&amp;gt; from addresses outside of your container network. If your logs cover the whole period and there are no such requests, the issue was not misused.&lt;br /&gt;
# &#039;&#039;&#039;Logs in the wiki:&#039;&#039;&#039; open &amp;lt;code&amp;gt;Special:Log&amp;lt;/code&amp;gt; and filter by the performer &#039;&#039;ChatBot service user&#039;&#039;. Pay special attention to account creations, changes of user groups, blocks, deletions, imports and page protections.&lt;br /&gt;
# &#039;&#039;&#039;Contributions:&#039;&#039;&#039; check &amp;lt;code&amp;gt;Special:Contributions/ChatBot service user&amp;lt;/code&amp;gt; for unexpected edits, especially of pages in the &amp;lt;code&amp;gt;MediaWiki&amp;lt;/code&amp;gt; namespace.&lt;br /&gt;
# &#039;&#039;&#039;Users and groups:&#039;&#039;&#039; check the members of the groups &amp;lt;code&amp;gt;sysop&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;bureaucrat&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;Special:ListUsers&amp;lt;/code&amp;gt;) and all accounts created since BlueSpice 5.2.3 (&amp;lt;code&amp;gt;Special:Log/newusers&amp;lt;/code&amp;gt;). Block or delete unknown accounts.&lt;br /&gt;
# &#039;&#039;&#039;OAuth applications&#039;&#039;&#039; (BlueSpice pro and BlueSpice farm only): open &amp;lt;code&amp;gt;Special:OAuthListConsumers&amp;lt;/code&amp;gt; and look for applications that were registered by &#039;&#039;ChatBot service user&#039;&#039; or by unknown accounts. Take special care with applications for the owner&#039;s own use only (&amp;quot;owner-only&amp;quot;): they allow permanent access without logging in. Disable unknown applications in &amp;lt;code&amp;gt;Special:OAuthManageConsumers&amp;lt;/code&amp;gt;.&lt;br /&gt;
# &#039;&#039;&#039;Configuration:&#039;&#039;&#039; check settings that administrators can change in the wiki (e.g. &amp;lt;code&amp;gt;Special:ConfigManager&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Special:PermissionManager&amp;lt;/code&amp;gt;) for unexpected changes.&lt;br /&gt;
&lt;br /&gt;
If you find signs of misuse, please contact the Hallo Welt! GmbH support.&lt;br /&gt;
&lt;br /&gt;
The membership of &#039;&#039;ChatBot service user&#039;&#039; in the group &amp;lt;code&amp;gt;sysop&amp;lt;/code&amp;gt; is intended and does not need to be removed.&lt;br /&gt;
&lt;br /&gt;
=== CVE-2026-25716 ===&lt;br /&gt;
Update to &#039;&#039;&#039;BlueSpice 5.1.11&#039;&#039;&#039; or &#039;&#039;&#039;BlueSpice 5.2.7&#039;&#039;&#039;. These patch releases require the &amp;lt;code&amp;gt;wikiadmin&amp;lt;/code&amp;gt; permission for enabling and disabling users.&lt;br /&gt;
&lt;br /&gt;
BlueSpice 5.0.x will not receive a fix. Please update to one of the versions above.&lt;br /&gt;
&lt;br /&gt;
BlueSpice cloud instances are updated by Hallo Welt! GmbH; no action is required from customers.&lt;br /&gt;
&lt;br /&gt;
After updating, we recommend reviewing the block log (&amp;lt;code&amp;gt;Special:Log/block&amp;lt;/code&amp;gt;) for blocks or unblocks performed by users without administrative rights.&lt;br /&gt;
&lt;br /&gt;
=== CVE-2026-90711, CVE-2026-75595, CVE-2026-8763 ===&lt;br /&gt;
The containers &amp;lt;code&amp;gt;bluespice/formula&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;bluespice/search&amp;lt;/code&amp;gt; will receive updated libraries with the next regular update of BlueSpice. For &amp;lt;code&amp;gt;bluespice/search&amp;lt;/code&amp;gt;, this depends on the availability of an OpenSearch release with the fixed libraries. No immediate action is required, as the vulnerabilities are not exploitable in the default configuration.&lt;br /&gt;
&lt;br /&gt;
== Credits ==&lt;br /&gt;
We thank kta1kri for responsibly reporting the issue documented in CVE-2026-25716.&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Security:Security_Advisories&amp;diff=14961</id>
		<title>Security:Security Advisories</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Security:Security_Advisories&amp;diff=14961"/>
		<updated>2026-10-23T08:47:35Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
! style=&amp;quot;&amp;quot; |Release name&lt;br /&gt;
! style=&amp;quot;&amp;quot; |Release date&lt;br /&gt;
! style=&amp;quot;&amp;quot; |Title&lt;br /&gt;
! style=&amp;quot;&amp;quot; |References&lt;br /&gt;
! style=&amp;quot;&amp;quot; |Summary&lt;br /&gt;
!Severity&lt;br /&gt;
|-&lt;br /&gt;
| [[Security:Security Advisories/BSSA-2026-07|BSSA-2026-07]]&lt;br /&gt;
| 2026-10-19&lt;br /&gt;
| Privilege escalation in wiki container; missing authorization in BlueSpiceUserManager; library vulnerabilities in formula and search containers&lt;br /&gt;
| [https://www.cve.org/CVERecord?id=CVE-2026-25784 CVE-2026-25784], [https://www.cve.org/CVERecord?id=CVE-2026-25716 CVE-2026-25716], [https://www.cve.org/CVERecord?id=CVE-2026-90711 CVE-2026-90711], [https://www.cve.org/CVERecord?id=CVE-2026-75595 CVE-2026-75595], [https://www.cve.org/CVERecord?id=CVE-2026-8763 CVE-2026-8763]&lt;br /&gt;
| Privilege escalation, Missing authorization, IP address spoofing, Authentication bypass, Improper certificate validation&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-purple-bg&amp;quot; | Critical&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2026-06|BSSA-2026-06]]&lt;br /&gt;
|2026-09-28&lt;br /&gt;
|Security vulnerability in ExternalData extension&lt;br /&gt;
|[https://www.strix.ai/cve/CVE-2026-100382 CVE-2026-100382]&lt;br /&gt;
|Remote code execution&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-purple-bg&amp;quot; |Critical&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2026-05|BSSA-2026-05]]&lt;br /&gt;
|2026-07-27&lt;br /&gt;
|Security vulnerabilities in containers and extensions&lt;br /&gt;
|[https://nvd.nist.gov/vuln/detail/CVE-2026-59933 CVE-2026-59933], [https://nvd.nist.gov/vuln/detail/CVE-2025-14813 CVE-2025-14813], [https://nvd.nist.gov/vuln/detail/CVE-2025-65896 CVE-2025-65896], [https://nvd.nist.gov/vuln/detail/CVE-2026-59873 CVE-2026-59873]&lt;br /&gt;
|Uncontrolled ressource consumption, infinite loop&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2026-04|BSSA-2026-04]]&lt;br /&gt;
|2026-06-22&lt;br /&gt;
|Security vulnerabilities in Confluence Migration Tool container image&lt;br /&gt;
|[https://nvd.nist.gov/vuln/detail/CVE-2026-8376 CVE-2026-8376]&lt;br /&gt;
|Heap buffer overflow vulnerability in Perl Regexes&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2026-03|BSSA-2026-03]]&lt;br /&gt;
|2026-06-08&lt;br /&gt;
|Security vulnerabilities in containers of the Cloudogu  stack&lt;br /&gt;
|[https://nvd.nist.gov/vuln/detail/CVE-2026-31789 CVE-2026-31789], [https://nvd.nist.gov/vuln/detail/CVE-2026-43512 CVE-2026-43512], [https://nvd.nist.gov/vuln/detail/CVE-2026-7261 CVE-2026-7261]&lt;br /&gt;
|Heap buffer overflow in OpenSSL, Apache Tomcat DIGEST authentication bypass and  PHP SOAP server session persistence vulnerability&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2026-02|BSSA-2026-02]]&lt;br /&gt;
|2026-03-04&lt;br /&gt;
|Security vulnerability in BlueSpice Database container and NSFileRepo extension.&lt;br /&gt;
|[https://avd.aquasec.com/nvd/2025/cve-2025-15467 CVE-2025-15467],&lt;br /&gt;
[https://avd.aquasec.com/nvd/2026/cve-2026-24732 CVE-2026-24732]&lt;br /&gt;
|Buffer Overflow; Information disclosure&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2026-01|BSSA-2026-01]]&lt;br /&gt;
|2026-01-28&lt;br /&gt;
|Security vulnerability in BlueSpice Collabpads database container.&lt;br /&gt;
|[https://avd.aquasec.com/nvd/2025/cve-2025-14847 CVE-2025-14847]&lt;br /&gt;
|Read of uninitialized heap memory&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2025-07|BSSA-2025-07]]&lt;br /&gt;
|2025-12-10&lt;br /&gt;
|Security vulnerability in BlueSpice Search container.&lt;br /&gt;
|[https://avd.aquasec.com/nvd/2025/cve-2025-66516 CVE-2025-66516]&lt;br /&gt;
|XML Entity Injection&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2025-06|BSSA-2025-06]]&lt;br /&gt;
|2025-10-28&lt;br /&gt;
|Security vulnerabilities in various MediaWiki extensions that are actually part of the BlueSpice distribution&lt;br /&gt;
|[https://www.cve.org/CVERecord?id=CVE-2024-56171 CVE-2024-56171], [https://www.cve.org/CVERecord?id=CVE-2025-3277 CVE-2025-3277], [https://www.cve.org/CVERecord?id=CVE-2025-6965 CVE-2025-6965], [https://www.cve.org/CVERecord?id=CVE-2025-11173 CVE-2025-11173], [https://www.cve.org/CVERecord?id=CVE-2025-11175 CVE-2025-11175],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-53625 CVE-2025-53625],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-54370 CVE-2025-54370],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-54874 CVE-2025-54874],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-59839 CVE-2025-59839],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61634 CVE-2025-61634],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61635 CVE-2025-61635],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61636 CVE-2025-61636],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61637 CVE-2025-61637],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61638 CVE-2025-61638],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61639 CVE-2025-61639],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61640 CVE-2025-61640],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61641 CVE-2025-61641],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61642 CVE-2025-61642],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61643 CVE-2025-61643],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61646 CVE-2025-61646],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61652 CVE-2025-61652],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61653 CVE-2025-61653],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61655 CVE-2025-61655],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61655 CVE-2025-61655],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61656 CVE-2025-61656],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61656 CVE-2025-61656],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61657 CVE-2025-61657],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-7458 CVE-2025-7458]&lt;br /&gt;
|Denial Of Service,&lt;br /&gt;
Cross-Site Scripting (XSS),&lt;br /&gt;
Information Disclosure,&lt;br /&gt;
Bypass authn at content check,&lt;br /&gt;
Server-side Request Forgery,&lt;br /&gt;
Arbitrary Code Execution,&lt;br /&gt;
Memory Corruption,&lt;br /&gt;
Use-After-Free,&lt;br /&gt;
Arbitrary SQL Execution&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-red-bg&amp;quot; |High&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2025-05|BSSA-2025-05]]&lt;br /&gt;
|2025-09-19&lt;br /&gt;
|XSS in Extension:AtMentions, Extension:BlueSpiceAvatars, Extension:BlueSpiceWhoIsOnline and Extension:CognitiveProcessDesigner&lt;br /&gt;
|[https://www.cve.org/CVERecord?id=CVE-2025-46703 CVE-2025-46703], [https://www.cve.org/CVERecord?id=CVE-2025-48007 CVE-2025-48007], [https://www.cve.org/CVERecord?id=CVE-2025-57880 CVE-2025-57880], [https://www.cve.org/CVERecord?id=CVE-2025-58114 CVE-2025-58114]&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2025-04|BSSA-2025-04]]&lt;br /&gt;
|2025-09-18&lt;br /&gt;
|Security vulnerabilities in services &amp;lt;code&amp;gt;bluespice/search&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;bluespice/formular&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; &lt;br /&gt;
|[https://nvd.nist.gov/vuln/detail/CVE-2025-54988 CVE-2025-54988], [https://avd.aquasec.com/nvd/2025/cve-2025-7783 CVE-2025-7783], [https://avd.aquasec.com/nvd/cve-2025-58050 CVE-2025-58050], [https://avd.aquasec.com/nvd/cve-2025-49794 CVE-2025-49794], [https://avd.aquasec.com/nvd/cve-2025-49796 CVE-2025-49796]&lt;br /&gt;
|Denial-of-Service, Information Disclosure&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2025-03|BSSA-2025-03]]&lt;br /&gt;
|2025-07-28&lt;br /&gt;
|Security vulnerabilities in Extension:Scribunto, Extension:TabberNeue, Extension:TwoColConflict and Extension:Quiz&lt;br /&gt;
|[https://www.cve.org/CVERecord?id=CVE-2025-53501 CVE-2025-53501], [https://www.cve.org/CVERecord?id=CVE-2025-53494 CVE-2025-53494], [https://www.cve.org/CVERecord?id=CVE-2025-53093 CVE-2025-53093], [https://www.cve.org/CVERecord?id=CVE-2025-7057 CVE-2025-7057]&lt;br /&gt;
|Information Disclosure, &lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2025-02|BSSA-2025-02]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2025-04-17&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Security vulnerabilities in Extension:OAuth&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2025-32068 CVE-2025-32068], [https://www.cve.org/CVERecord?id=CVE-2025-32074 CVE-2025-32074]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Allows unauthorized access to the wiki, Cross-Site Scripting (XSS)&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2025-01|BSSA-2025-01]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2025-01-20&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Security vulnerabilities in Extension:DataTransfer &lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2025-23081 CVE-2025-23081]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Allows Cross Site Request Forgery, Cross-Site Scripting (XSS)&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2023-02|BSSA-2023-02]]&lt;br /&gt;
|2023-10-30&lt;br /&gt;
|Security vulnerabilities in Extension:BlueSpiceAvatars&lt;br /&gt;
|[https://www.cve.org/cverecord?id=CVE-2023-42431 CVE-2023-42431]&lt;br /&gt;
|Allows Cross-Site Scripting (XSS)&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2023-01|BSSA-2023-01]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2023-07-25&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Ghostscript vulnerability&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2023-36664 CVE-2023-36664]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Code can be executed on the server via a manipulated PDF&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-08|BSSA-2022-08]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-11-15&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector on regular pages&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-3895 CVE-2022-3895]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Arbitrary HTML injection through use of interface elements&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-07|BSSA-2022-07]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-11-15&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector on regular pages&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-3958 CVE-2022-3958]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Arbitrary HTML injection through personal menu items&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-06|BSSA-2022-06]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-11-15&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector on regular pages&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-3893 CVE-2022-3893]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Arbitrary HTML injection through the custom menu&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-05|BSSA-2022-05]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-11-15&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector on regular pages&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-42001 CVE-2022-42001]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Arbitrary HTML injection through the book navigation&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-04|BSSA-2022-04]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-11-15&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector on regular pages&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-41789 CVE-2022-41789], [https://www.cve.org/CVERecord?id=CVE-2022-41814 CVE-2022-41814], [https://www.cve.org/CVERecord?id=CVE-2022-42000 CVE-2022-42000]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Arbitrary HTML injection through user preferences&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-03|BSSA-2022-03]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-11-15&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector on regular pages&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-41611 CVE-2022-41611]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Arbitrary HTML injection through main navigation&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-02|BSSA-2022-02]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-11-15&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector on regular pages&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-2511 CVE-2022-2511]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Arbitrary HTML injection through the &#039;title&#039; parameter&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-01|BSSA-2022-01]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-01-31&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector in Search Center&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-2510 CVE-2022-2510]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |JavaScript in search field is reflected back to the browser.&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Security:Security_Advisories/BSSA-2026-07&amp;diff=14960</id>
		<title>Security:Security Advisories/BSSA-2026-07</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Security:Security_Advisories/BSSA-2026-07&amp;diff=14960"/>
		<updated>2026-10-23T08:36:43Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|Date&lt;br /&gt;
|2026-10-19&lt;br /&gt;
|-&lt;br /&gt;
|Severity&lt;br /&gt;
|&#039;&#039;&#039;Critical&#039;&#039;&#039; (CVSS 4.0: 9.3) for CVE-2026-25784; &#039;&#039;&#039;High&#039;&#039;&#039; (CVSS 4.0: 7.1) for CVE-2026-25716; Container findings: reported &amp;quot;critical&amp;quot;, BlueSpice assessment: &#039;&#039;&#039;low&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|Affected&lt;br /&gt;
|&lt;br /&gt;
* Container &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; in BlueSpice 5.2.3 – 5.2.6, and BlueSpice 5.2.7 images published before 2026-10-19 15:37 UTC (all editions)&lt;br /&gt;
* BlueSpice 5.0.0 – 5.1.10, BlueSpice 5.2.0 – 5.2.6 (&amp;lt;code&amp;gt;Extension:BlueSpiceUserManager&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Containers &amp;lt;code&amp;gt;bluespice/formula&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;bluespice/search&amp;lt;/code&amp;gt; in BlueSpice 5.1 up to 5.1.11 and BlueSpice 5.2 up to 5.2.7 (not exploitable in default configuration)&lt;br /&gt;
|-&lt;br /&gt;
|Fixed in&lt;br /&gt;
|&lt;br /&gt;
* BlueSpice 5.2.7 (container &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt;, images re-published on 2026-10-19)&lt;br /&gt;
* BlueSpice 5.1.11, BlueSpice 5.2.7 (&amp;lt;code&amp;gt;Extension:BlueSpiceUserManager&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Containers: next regular update (&amp;lt;code&amp;gt;bluespice/search&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;bluespice/formula&amp;lt;/code&amp;gt; depend on an upstream release)&lt;br /&gt;
|-&lt;br /&gt;
|CVE&lt;br /&gt;
|&lt;br /&gt;
* [https://nvd.nist.gov/vuln/detail/CVE-2026-25784 CVE-2026-25784]&lt;br /&gt;
* [https://nvd.nist.gov/vuln/detail/CVE-2026-25716 CVE-2026-25716]&lt;br /&gt;
* [https://avd.aquasec.com/nvd/2026/cve-2026-90711/ CVE-2026-90711]&lt;br /&gt;
* [https://avd.aquasec.com/nvd/2026/cve-2026-75595/ CVE-2026-75595]&lt;br /&gt;
* [https://avd.aquasec.com/nvd/2026/cve-2026-8763/ CVE-2026-8763]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Problem==&lt;br /&gt;
Several vulnerabilities were found in various security reviews and by external researchers.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!&#039;&#039;&#039;CVE&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Component&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Type of vulnerability&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;BlueSpice 5&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2026-25784&lt;br /&gt;
|Container &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; (service authentication)&lt;br /&gt;
|Privilege escalation through an insecure default configuration (CWE-1188)&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-purple-bg&amp;quot; |affected&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2026-25716&lt;br /&gt;
|&amp;lt;code&amp;gt;Extension:BlueSpiceUserManager&amp;lt;/code&amp;gt;&lt;br /&gt;
|Missing authorization (CWE-862) when blocking and unblocking users&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-red-bg&amp;quot; |affected&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2026-90711&lt;br /&gt;
|Container &amp;lt;code&amp;gt;bluespice/formula&amp;lt;/code&amp;gt; (library &amp;lt;code&amp;gt;proxy-addr&amp;lt;/code&amp;gt;)&lt;br /&gt;
|IP address spoofing via &amp;lt;code&amp;gt;X-Forwarded-For&amp;lt;/code&amp;gt; (CWE-290)&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |not exploitable&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2026-75595&lt;br /&gt;
|Container &amp;lt;code&amp;gt;bluespice/search&amp;lt;/code&amp;gt; (library &amp;lt;code&amp;gt;netty-handler&amp;lt;/code&amp;gt;)&lt;br /&gt;
|Bypass of TLS client certificate authentication (CWE-754)&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |not exploitable&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2026-8763&lt;br /&gt;
|Container &amp;lt;code&amp;gt;bluespice/search&amp;lt;/code&amp;gt; (library Bouncy Castle)&lt;br /&gt;
|Improper certificate validation, name constraints bypass (CWE-295)&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |not exploitable&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Impact assessment==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
!CVE&lt;br /&gt;
!Assessment&lt;br /&gt;
!Mitigation without update&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |CVE-2026-25784&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; class=&amp;quot;col-purple-bg&amp;quot; |&#039;&#039;&#039;Critical&#039;&#039;&#039;. The wiki container includes an authentication mechanism for internal BlueSpice services (e.g. chat and AI integrations). This mechanism should only be usable from the internal container network. Because of an error in the default configuration of the container, this restriction was not applied. Any user who can read the wiki could obtain administrator (&amp;lt;code&amp;gt;sysop&amp;lt;/code&amp;gt;) privileges through the REST API. On wikis that allow anonymous read access, this includes users who are not logged in. Actions taken this way are recorded as actions of the internal user &#039;&#039;ChatBot service user&#039;&#039;. BlueSpice 5.1 and BlueSpice 5.2.1 – 5.2.2 are not affected.&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |Set the environment variable &amp;lt;code&amp;gt;WIKI_SERVICE_TOKEN_AUTH_ALLOWED&amp;lt;/code&amp;gt; of the containers &amp;lt;code&amp;gt;wiki-web&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;wiki-task&amp;lt;/code&amp;gt; to the address range of the internal container network (e.g. &amp;lt;code&amp;gt;172.18.0.0/16&amp;lt;/code&amp;gt;), or deny access to the path &amp;lt;code&amp;gt;/rest.php/mws/v1/app-token/generate&amp;lt;/code&amp;gt; on the reverse proxy.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |CVE-2026-25716&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; class=&amp;quot;col-red-bg&amp;quot; |&#039;&#039;&#039;High&#039;&#039;&#039;. The REST endpoints that &#039;&#039;Special:UserManager&#039;&#039; uses to enable and disable user accounts do not check the permissions of the requesting user. Any logged-in user can therefore disable (block) any account, including all administrators, or re-enable accounts that administrators have disabled. This can make the wiki unusable for administration. No content is changed and no data is disclosed. All block and unblock actions are recorded in the block log (&amp;lt;code&amp;gt;Special:Log/block&amp;lt;/code&amp;gt;).&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |Deny access to the paths &amp;lt;code&amp;gt;/rest.php/bs-usermanager/v1/block/create&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;/rest.php/bs-usermanager/v1/block/delete&amp;lt;/code&amp;gt; on the web server or reverse proxy. While this is in place, users cannot be enabled or disabled from &#039;&#039;Special:UserManager&#039;&#039;; administrators can use &#039;&#039;Special:Block&#039;&#039; and &#039;&#039;Special:Unblock&#039;&#039; instead.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |CVE-2026-90711&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |&#039;&#039;&#039;Low&#039;&#039;&#039;. The vulnerability only applies if the service is configured to trust proxies by an IPv4-mapped IPv6 subnet. The formula service does not trust any proxy headers, has no user facing route and is only accessed by the wiki. Not exploitable in the default configuration of &amp;lt;code&amp;gt;bluespice-deploy&amp;lt;/code&amp;gt; and BlueSpice cloud.&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |None required. Make sure the &amp;lt;code&amp;gt;formula&amp;lt;/code&amp;gt; service is not reachable from outside the internal network. This is the default configuration of BlueSpice setups.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |CVE-2026-75595&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |&#039;&#039;&#039;Low&#039;&#039;&#039;. The vulnerability only applies to TLS servers that require client certificates for specific host names (SNI). The search service does not use TLS (the OpenSearch security plugin is disabled), has no user facing route and is only accessed by the wiki. Not exploitable in the default configuration of &amp;lt;code&amp;gt;bluespice-deploy&amp;lt;/code&amp;gt; and BlueSpice cloud.&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |None required. Make sure the &amp;lt;code&amp;gt;search&amp;lt;/code&amp;gt; service is not reachable from outside the internal network. This is the default configuration of BlueSpice setups.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |CVE-2026-8763&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |&#039;&#039;&#039;Low&#039;&#039;&#039;. The vulnerability only applies when certificates are validated against certificate authorities that use name constraints. The search service does not use TLS, has no outbound connections and does not perform such certificate validation. Not exploitable in the default configuration of &amp;lt;code&amp;gt;bluespice-deploy&amp;lt;/code&amp;gt; and BlueSpice cloud.&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |None required. Make sure the &amp;lt;code&amp;gt;search&amp;lt;/code&amp;gt; service is not reachable from outside the internal network. This is the default configuration of BlueSpice setups.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Solution ==&lt;br /&gt;
{{Textbox|boxtype=important|header=|text=&#039;&#039;&#039;Recommended action:&#039;&#039;&#039; Update to BlueSpice 5.2.7 to fix all critical and high rated issues of this BSSA.|icon=yes}}&lt;br /&gt;
&lt;br /&gt;
=== CVE-2026-25784 ===&lt;br /&gt;
Update to &#039;&#039;&#039;BlueSpice 5.2.7&#039;&#039;&#039;. The container images of BlueSpice 5.2.7 were re-published on 2026-10-19 (15:37 UTC) with the fix. If you pulled 5.2.7 images before that time, pull them again and re-create the containers (e.g. &amp;lt;code&amp;gt;docker compose pull &amp;amp;&amp;amp; docker compose up -d&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
To check whether your installation is fixed, run &amp;lt;code&amp;gt;docker compose exec wiki-web grep -A2 TokenAuthenticatorServiceCIDR /app/conf/LocalSettings.php&amp;lt;/code&amp;gt;. The last line of the output must start with &amp;lt;code&amp;gt;?:&amp;lt;/code&amp;gt;. If it starts with &amp;lt;code&amp;gt;??&amp;lt;/code&amp;gt;, the installation is still affected.&lt;br /&gt;
&lt;br /&gt;
BlueSpice cloud instances are updated by Hallo Welt! GmbH; no action is required from customers.&lt;br /&gt;
&lt;br /&gt;
==== Checking for misuse ====&lt;br /&gt;
The issue may have been present since BlueSpice 5.2.3 (April 2026). Installing the update stops any further misuse. Accounts, permissions or OAuth applications that an attacker created before the update keep working until you remove them. We therefore recommend checking your installation after updating.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Before you start:&#039;&#039;&#039; save the access logs of your reverse proxy for the whole period since the installation of BlueSpice 5.2.3, if available, so that they are not lost to log rotation.&lt;br /&gt;
&lt;br /&gt;
Actions performed through this issue are recorded as actions of the internal user &#039;&#039;ChatBot service user&#039;&#039;. BlueSpice services such as chat, MCP or AI integrations also act as this user. To tell them apart, compare with your access logs: legitimate calls come from the internal container network.&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Access logs:&#039;&#039;&#039; look for requests to &amp;lt;code&amp;gt;/rest.php/mws/v1/app-token/generate&amp;lt;/code&amp;gt; from addresses outside of your container network. If your logs cover the whole period and there are no such requests, the issue was not misused.&lt;br /&gt;
# &#039;&#039;&#039;Logs in the wiki:&#039;&#039;&#039; open &amp;lt;code&amp;gt;Special:Log&amp;lt;/code&amp;gt; and filter by the performer &#039;&#039;ChatBot service user&#039;&#039;. Pay special attention to account creations, changes of user groups, blocks, deletions, imports and page protections.&lt;br /&gt;
# &#039;&#039;&#039;Contributions:&#039;&#039;&#039; check &amp;lt;code&amp;gt;Special:Contributions/ChatBot service user&amp;lt;/code&amp;gt; for unexpected edits, especially of pages in the &amp;lt;code&amp;gt;MediaWiki&amp;lt;/code&amp;gt; namespace.&lt;br /&gt;
# &#039;&#039;&#039;Users and groups:&#039;&#039;&#039; check the members of the groups &amp;lt;code&amp;gt;sysop&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;bureaucrat&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;Special:ListUsers&amp;lt;/code&amp;gt;) and all accounts created since BlueSpice 5.2.3 (&amp;lt;code&amp;gt;Special:Log/newusers&amp;lt;/code&amp;gt;). Block or delete unknown accounts.&lt;br /&gt;
# &#039;&#039;&#039;OAuth applications&#039;&#039;&#039; (BlueSpice pro and BlueSpice farm only): open &amp;lt;code&amp;gt;Special:OAuthListConsumers&amp;lt;/code&amp;gt; and look for applications that were registered by &#039;&#039;ChatBot service user&#039;&#039; or by unknown accounts. Take special care with applications for the owner&#039;s own use only (&amp;quot;owner-only&amp;quot;): they allow permanent access without logging in. Disable unknown applications in &amp;lt;code&amp;gt;Special:OAuthManageConsumers&amp;lt;/code&amp;gt;.&lt;br /&gt;
# &#039;&#039;&#039;Configuration:&#039;&#039;&#039; check settings that administrators can change in the wiki (e.g. &amp;lt;code&amp;gt;Special:ConfigManager&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Special:PermissionManager&amp;lt;/code&amp;gt;) for unexpected changes.&lt;br /&gt;
&lt;br /&gt;
If you find signs of misuse, please contact the Hallo Welt! GmbH support.&lt;br /&gt;
&lt;br /&gt;
The membership of &#039;&#039;ChatBot service user&#039;&#039; in the group &amp;lt;code&amp;gt;sysop&amp;lt;/code&amp;gt; is intended and does not need to be removed.&lt;br /&gt;
&lt;br /&gt;
=== CVE-2026-25716 ===&lt;br /&gt;
Update to &#039;&#039;&#039;BlueSpice 5.1.11&#039;&#039;&#039; or &#039;&#039;&#039;BlueSpice 5.2.7&#039;&#039;&#039;. These patch releases require the &amp;lt;code&amp;gt;wikiadmin&amp;lt;/code&amp;gt; permission for enabling and disabling users.&lt;br /&gt;
&lt;br /&gt;
BlueSpice 5.0.x will not receive a fix. Please update to one of the versions above.&lt;br /&gt;
&lt;br /&gt;
BlueSpice cloud instances are updated by Hallo Welt! GmbH; no action is required from customers.&lt;br /&gt;
&lt;br /&gt;
After updating, we recommend reviewing the block log (&amp;lt;code&amp;gt;Special:Log/block&amp;lt;/code&amp;gt;) for blocks or unblocks performed by users without administrative rights.&lt;br /&gt;
&lt;br /&gt;
=== CVE-2026-90711, CVE-2026-75595, CVE-2026-8763 ===&lt;br /&gt;
The containers &amp;lt;code&amp;gt;bluespice/formula&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;bluespice/search&amp;lt;/code&amp;gt; will receive updated libraries with the next regular update of BlueSpice. For &amp;lt;code&amp;gt;bluespice/search&amp;lt;/code&amp;gt;, this depends on the availability of an OpenSearch release with the fixed libraries. No immediate action is required, as the vulnerabilities are not exploitable in the default configuration.&lt;br /&gt;
&lt;br /&gt;
== Credits ==&lt;br /&gt;
We thank kta1kri for responsibly reporting the issue documented in CVE-2026-25716.&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Security:Security_Advisories/BSSA-2026-07&amp;diff=14958</id>
		<title>Security:Security Advisories/BSSA-2026-07</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Security:Security_Advisories/BSSA-2026-07&amp;diff=14958"/>
		<updated>2026-10-23T06:12:58Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: Created page with &amp;quot;{| class=&amp;quot;wikitable&amp;quot; |+ ! ! |- |Date |2026-10-19 |- |Severity |Critical (CVSS 4.0: 9.3) for CVE-2026-25784; High (CVSS 4.0: 7.1) for CVE-2026-25716; Container findings: reported &amp;quot;critical&amp;quot;, BlueSpice assessment: &amp;#039;&amp;#039;&amp;#039;low&amp;#039;&amp;#039;&amp;#039; |- |Affected | * Container &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; in BlueSpice 5.2.3 – 5.2.6, and BlueSpice 5.2.7 images published before 2026-10-19 15:37 UTC (all editions) * BlueSpice 5.0.0 – 5.1.10, BlueSpice 5.2.0 – 5.2.6 (&amp;lt;code&amp;gt;Extension:BlueSpiceUserMa...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|Date&lt;br /&gt;
|2026-10-19&lt;br /&gt;
|-&lt;br /&gt;
|Severity&lt;br /&gt;
|Critical (CVSS 4.0: 9.3) for CVE-2026-25784; High (CVSS 4.0: 7.1) for CVE-2026-25716; Container findings: reported &amp;quot;critical&amp;quot;, BlueSpice assessment: &#039;&#039;&#039;low&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|Affected&lt;br /&gt;
|&lt;br /&gt;
* Container &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; in BlueSpice 5.2.3 – 5.2.6, and BlueSpice 5.2.7 images published before 2026-10-19 15:37 UTC (all editions)&lt;br /&gt;
* BlueSpice 5.0.0 – 5.1.10, BlueSpice 5.2.0 – 5.2.6 (&amp;lt;code&amp;gt;Extension:BlueSpiceUserManager&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Containers &amp;lt;code&amp;gt;bluespice/formula&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;bluespice/search&amp;lt;/code&amp;gt; in BlueSpice 5.1 up to 5.1.10 and BlueSpice 5.2 up to 5.2.6 (not exploitable in default configuration)&lt;br /&gt;
|-&lt;br /&gt;
|Fixed in&lt;br /&gt;
|&lt;br /&gt;
* BlueSpice 5.2.7 (container &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt;, images re-published on 2026-10-19)&lt;br /&gt;
* BlueSpice 5.1.11, BlueSpice 5.2.7 (&amp;lt;code&amp;gt;Extension:BlueSpiceUserManager&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Containers: next regular update (&amp;lt;code&amp;gt;bluespice/search&amp;lt;/code&amp;gt; depends on an upstream OpenSearch release)&lt;br /&gt;
|-&lt;br /&gt;
|CVE&lt;br /&gt;
|&lt;br /&gt;
* [https://nvd.nist.gov/vuln/detail/CVE-2026-25784 CVE-2026-25784]&lt;br /&gt;
* [https://nvd.nist.gov/vuln/detail/CVE-2026-25716 CVE-2026-25716]&lt;br /&gt;
* [https://avd.aquasec.com/nvd/2026/cve-2026-90711/ CVE-2026-90711]&lt;br /&gt;
* [https://avd.aquasec.com/nvd/2026/cve-2026-75595/ CVE-2026-75595]&lt;br /&gt;
* [https://avd.aquasec.com/nvd/2026/cve-2026-8763/ CVE-2026-8763]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Problem==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!&#039;&#039;&#039;CVE&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Component&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Type of vulnerability&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;BlueSpice 5&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2026-25784&lt;br /&gt;
|Container &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; (service authentication)&lt;br /&gt;
|Privilege escalation through an insecure default configuration (CWE-1188)&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-purple-bg&amp;quot; |affected&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2026-25716&lt;br /&gt;
|&amp;lt;code&amp;gt;Extension:BlueSpiceUserManager&amp;lt;/code&amp;gt;&lt;br /&gt;
|Missing authorization (CWE-862) when blocking and unblocking users&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-red-bg&amp;quot; |affected&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2026-90711&lt;br /&gt;
|Container &amp;lt;code&amp;gt;bluespice/formula&amp;lt;/code&amp;gt; (library &amp;lt;code&amp;gt;proxy-addr&amp;lt;/code&amp;gt;)&lt;br /&gt;
|IP address spoofing via &amp;lt;code&amp;gt;X-Forwarded-For&amp;lt;/code&amp;gt; (CWE-290)&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |not exploitable&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2026-75595&lt;br /&gt;
|Container &amp;lt;code&amp;gt;bluespice/search&amp;lt;/code&amp;gt; (library &amp;lt;code&amp;gt;netty-handler&amp;lt;/code&amp;gt;)&lt;br /&gt;
|Bypass of TLS client certificate authentication (CWE-754)&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |not exploitable&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2026-8763&lt;br /&gt;
|Container &amp;lt;code&amp;gt;bluespice/search&amp;lt;/code&amp;gt; (library Bouncy Castle)&lt;br /&gt;
|Improper certificate validation, name constraints bypass (CWE-295)&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |not exploitable&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Impact assessment==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
!CVE&lt;br /&gt;
!Assessment&lt;br /&gt;
!Mitigation without update&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |CVE-2026-25784&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; class=&amp;quot;col-purple-bg&amp;quot; |Affected. The wiki container includes an authentication mechanism for internal BlueSpice services (e.g. chat and AI integrations). This mechanism should only be usable from the internal container network. Because of an error in the default configuration of the container, this restriction was not applied. Any user who can read the wiki could obtain administrator (&amp;lt;code&amp;gt;sysop&amp;lt;/code&amp;gt;) privileges through the REST API. On wikis that allow anonymous read access, this includes users who are not logged in. Actions taken this way are recorded as actions of the internal user &#039;&#039;ChatBot service user&#039;&#039;. BlueSpice 5.1 and BlueSpice 5.2.1 – 5.2.2 are not affected.&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |Set the environment variable &amp;lt;code&amp;gt;WIKI_SERVICE_TOKEN_AUTH_ALLOWED&amp;lt;/code&amp;gt; of the containers &amp;lt;code&amp;gt;wiki-web&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;wiki-task&amp;lt;/code&amp;gt; to the address range of the internal container network (e.g. &amp;lt;code&amp;gt;172.18.0.0/16&amp;lt;/code&amp;gt;), or deny access to the path &amp;lt;code&amp;gt;/rest.php/mws/v1/app-token/generate&amp;lt;/code&amp;gt; on the reverse proxy.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |CVE-2026-25716&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; class=&amp;quot;col-red-bg&amp;quot; |Affected. The REST endpoints that &#039;&#039;Special:UserManager&#039;&#039; uses to enable and disable user accounts do not check the permissions of the requesting user. Any logged-in user can therefore disable (block) any account, including all administrators, or re-enable accounts that administrators have disabled. This can make the wiki unusable for administration. No content is changed and no data is disclosed. All block and unblock actions are recorded in the block log (&amp;lt;code&amp;gt;Special:Log/block&amp;lt;/code&amp;gt;).&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |Deny access to the paths &amp;lt;code&amp;gt;/rest.php/bs-usermanager/v1/block/create&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;/rest.php/bs-usermanager/v1/block/delete&amp;lt;/code&amp;gt; on the web server or reverse proxy. While this is in place, users cannot be enabled or disabled from &#039;&#039;Special:UserManager&#039;&#039;; administrators can use &#039;&#039;Special:Block&#039;&#039; and &#039;&#039;Special:Unblock&#039;&#039; instead.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |CVE-2026-90711&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low. The vulnerability only applies if the service is configured to trust proxies by an IPv4-mapped IPv6 subnet. The formula service does not trust any proxy headers, has no user facing route and is only accessed by the wiki. Not exploitable in the default configuration of &amp;lt;code&amp;gt;bluespice-deploy&amp;lt;/code&amp;gt; and BlueSpice cloud.&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |None required. Make sure the &amp;lt;code&amp;gt;formula&amp;lt;/code&amp;gt; service is not reachable from outside the internal network. This is the default configuration of BlueSpice setups.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |CVE-2026-75595&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low. The vulnerability only applies to TLS servers that require client certificates for specific host names (SNI). The search service does not use TLS (the OpenSearch security plugin is disabled), has no user facing route and is only accessed by the wiki. Not exploitable in the default configuration of &amp;lt;code&amp;gt;bluespice-deploy&amp;lt;/code&amp;gt; and BlueSpice cloud.&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |None required. Make sure the &amp;lt;code&amp;gt;search&amp;lt;/code&amp;gt; service is not reachable from outside the internal network. This is the default configuration of BlueSpice setups.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |CVE-2026-8763&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low. The vulnerability only applies when certificates are validated against certificate authorities that use name constraints. The search service does not use TLS, has no outbound connections and does not perform such certificate validation. Not exploitable in the default configuration of &amp;lt;code&amp;gt;bluespice-deploy&amp;lt;/code&amp;gt; and BlueSpice cloud.&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |None required. Make sure the &amp;lt;code&amp;gt;search&amp;lt;/code&amp;gt; service is not reachable from outside the internal network. This is the default configuration of BlueSpice setups.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Solution ==&lt;br /&gt;
=== CVE-2026-25784 ===&lt;br /&gt;
Update to &#039;&#039;&#039;BlueSpice 5.2.7&#039;&#039;&#039;. The container images of BlueSpice 5.2.7 were re-published on 2026-10-19 (15:37 UTC) with the fix. If you pulled 5.2.7 images before that time, pull them again and re-create the containers (e.g. &amp;lt;code&amp;gt;docker compose pull &amp;amp;&amp;amp; docker compose up -d&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
To check whether your installation is fixed, run &amp;lt;code&amp;gt;docker compose exec wiki-web grep -A2 TokenAuthenticatorServiceCIDR /app/conf/LocalSettings.php&amp;lt;/code&amp;gt;. The last line of the output must start with &amp;lt;code&amp;gt;?:&amp;lt;/code&amp;gt;. If it starts with &amp;lt;code&amp;gt;??&amp;lt;/code&amp;gt;, the installation is still affected.&lt;br /&gt;
&lt;br /&gt;
BlueSpice cloud instances are updated by Hallo Welt! GmbH; no action is required from customers.&lt;br /&gt;
&lt;br /&gt;
==== Checking for misuse ====&lt;br /&gt;
The issue may have been present since BlueSpice 5.2.3 (April 2026). Installing the update stops any further misuse. Accounts, permissions or OAuth applications that an attacker created before the update keep working until you remove them. We therefore recommend checking your installation after updating.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Before you start:&#039;&#039;&#039; save the access logs of your reverse proxy for the whole period since the installation of BlueSpice 5.2.3, if available, so that they are not lost to log rotation.&lt;br /&gt;
&lt;br /&gt;
Actions performed through this issue are recorded as actions of the internal user &#039;&#039;ChatBot service user&#039;&#039;. BlueSpice services such as chat, MCP or AI integrations also act as this user. To tell them apart, compare with your access logs: legitimate calls come from the internal container network.&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Access logs:&#039;&#039;&#039; look for requests to &amp;lt;code&amp;gt;/rest.php/mws/v1/app-token/generate&amp;lt;/code&amp;gt; from addresses outside of your container network. If your logs cover the whole period and there are no such requests, the issue was not misused.&lt;br /&gt;
# &#039;&#039;&#039;Logs in the wiki:&#039;&#039;&#039; open &amp;lt;code&amp;gt;Special:Log&amp;lt;/code&amp;gt; and filter by the performer &#039;&#039;ChatBot service user&#039;&#039;. Pay special attention to account creations, changes of user groups, blocks, deletions, imports and page protections.&lt;br /&gt;
# &#039;&#039;&#039;Contributions:&#039;&#039;&#039; check &amp;lt;code&amp;gt;Special:Contributions/ChatBot service user&amp;lt;/code&amp;gt; for unexpected edits, especially of pages in the &amp;lt;code&amp;gt;MediaWiki&amp;lt;/code&amp;gt; namespace.&lt;br /&gt;
# &#039;&#039;&#039;Users and groups:&#039;&#039;&#039; check the members of the groups &amp;lt;code&amp;gt;sysop&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;bureaucrat&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;Special:ListUsers&amp;lt;/code&amp;gt;) and all accounts created since BlueSpice 5.2.3 (&amp;lt;code&amp;gt;Special:Log/newusers&amp;lt;/code&amp;gt;). Block or delete unknown accounts.&lt;br /&gt;
# &#039;&#039;&#039;OAuth applications&#039;&#039;&#039; (BlueSpice pro and BlueSpice farm only): open &amp;lt;code&amp;gt;Special:OAuthListConsumers&amp;lt;/code&amp;gt; and look for applications that were registered by &#039;&#039;ChatBot service user&#039;&#039; or by unknown accounts. Take special care with applications for the owner&#039;s own use only (&amp;quot;owner-only&amp;quot;): they allow permanent access without logging in. Disable unknown applications in &amp;lt;code&amp;gt;Special:OAuthManageConsumers&amp;lt;/code&amp;gt;.&lt;br /&gt;
# &#039;&#039;&#039;Configuration:&#039;&#039;&#039; check settings that administrators can change in the wiki (e.g. &amp;lt;code&amp;gt;Special:ConfigManager&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Special:PermissionManager&amp;lt;/code&amp;gt;) for unexpected changes.&lt;br /&gt;
&lt;br /&gt;
If you find signs of misuse, please contact the Hallo Welt! GmbH support.&lt;br /&gt;
&lt;br /&gt;
The membership of &#039;&#039;ChatBot service user&#039;&#039; in the group &amp;lt;code&amp;gt;sysop&amp;lt;/code&amp;gt; is intended and does not need to be removed.&lt;br /&gt;
&lt;br /&gt;
=== CVE-2026-25716 ===&lt;br /&gt;
Update to &#039;&#039;&#039;BlueSpice 5.1.11&#039;&#039;&#039; or &#039;&#039;&#039;BlueSpice 5.2.7&#039;&#039;&#039;. These patch releases require the &amp;lt;code&amp;gt;wikiadmin&amp;lt;/code&amp;gt; permission for enabling and disabling users.&lt;br /&gt;
&lt;br /&gt;
BlueSpice 5.0.x will not receive a fix. Please update to one of the versions above.&lt;br /&gt;
&lt;br /&gt;
BlueSpice cloud instances are updated by Hallo Welt! GmbH; no action is required from customers.&lt;br /&gt;
&lt;br /&gt;
After updating, we recommend reviewing the block log (&amp;lt;code&amp;gt;Special:Log/block&amp;lt;/code&amp;gt;) for blocks or unblocks performed by users without administrative rights.&lt;br /&gt;
&lt;br /&gt;
=== CVE-2026-90711, CVE-2026-75595, CVE-2026-8763 ===&lt;br /&gt;
The containers &amp;lt;code&amp;gt;bluespice/formula&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;bluespice/search&amp;lt;/code&amp;gt; will receive updated libraries with the next regular update of BlueSpice. For &amp;lt;code&amp;gt;bluespice/search&amp;lt;/code&amp;gt;, this depends on the availability of an OpenSearch release with the fixed libraries. No immediate action is required, as the vulnerabilities are not exploitable in the default configuration.&lt;br /&gt;
&lt;br /&gt;
== Credits ==&lt;br /&gt;
We thank kta1kri for responsibly reporting the issue documented in CVE-2026-25716.&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Setup:Installation_Guide/Docker&amp;diff=14951</id>
		<title>Setup:Installation Guide/Docker</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Setup:Installation_Guide/Docker&amp;diff=14951"/>
		<updated>2026-10-19T12:10:00Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: Bump version&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Overview ==&lt;br /&gt;
Starting with version 4.5, BlueSpice MediaWiki can be installed with a stack of Docker container images. &lt;br /&gt;
&lt;br /&gt;
Everything is built in a modular way to allow different types of setups.&lt;br /&gt;
&lt;br /&gt;
The most common cases are:&lt;br /&gt;
# &amp;quot;All-in-one&amp;quot; (with and without Let&#039;s Encrypt)&lt;br /&gt;
# Custom database and search service&lt;br /&gt;
# Custom load balancer / proxy&lt;br /&gt;
&lt;br /&gt;
== Architecture ==&lt;br /&gt;
&amp;lt;drawio filename=&amp;quot;Setup:Installation_Guide_Docker-Achitecture&amp;quot; alt=&amp;quot;Diagram of BlueSpice Docker Stack Architecture&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Notes&#039;&#039;&#039;&lt;br /&gt;
* Internal HTTP connections may use non-standard ports. Those are noted next to the respective services.&lt;br /&gt;
** HTTP (in-secure) is only used for internal communication within the virtual network the stack is operated in. All connections to the client use TLS.&lt;br /&gt;
* Proprietary ports (esp. for database connections) are noted next to the respective services.&lt;br /&gt;
* There may be additional services and ports in use, based on the setup. Some examples:&lt;br /&gt;
** When using LDAP based authentication an LDAPS connection (port &amp;lt;code&amp;gt;636&amp;lt;/code&amp;gt;) is used from the &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; containers to the LDAP-Server&lt;br /&gt;
** When using Kerberos authentication, a connection (port &amp;lt;code&amp;gt;88&amp;lt;/code&amp;gt;) is used from the &amp;lt;code&amp;gt;bluespice/kerberos-proxy&amp;lt;/code&amp;gt; containers to the Kerberos-Server&lt;br /&gt;
** When using DeepL or OpenAI services, a HTTPS connection (port &amp;lt;code&amp;gt;443&amp;lt;/code&amp;gt;) is used from the &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; containers to to the respective service&lt;br /&gt;
** When using OpenIDConnect authentication, a HTTPS connection (port &amp;lt;code&amp;gt;443&amp;lt;/code&amp;gt;) is used from the &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; &amp;quot;task&amp;quot; container to to the authentication provider&lt;br /&gt;
** When using &amp;quot;Let&#039;s Encrypt&amp;quot; Certbot, a HTTPS connection (port &amp;lt;code&amp;gt;443&amp;lt;/code&amp;gt;) is used from the &amp;lt;code&amp;gt;acme-companion&amp;lt;/code&amp;gt; container to the &amp;quot;Let&#039;s Encrypt&amp;quot; service&lt;br /&gt;
&lt;br /&gt;
== Step 1: Get the stack ==&lt;br /&gt;
Load project &amp;lt;code&amp;gt;bluespice-deploy&amp;lt;/code&amp;gt; from https://github.com/hallowelt/bluespice-deploy/releases/latest and enter the sub-directory &amp;lt;code&amp;gt;compose&amp;lt;/code&amp;gt; for Docker Compose files.&lt;br /&gt;
&lt;br /&gt;
For example, run:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
wget https://github.com/hallowelt/bluespice-deploy/archive/refs/tags/5.2.7.zip \&lt;br /&gt;
  &amp;amp;&amp;amp; unzip 5.2.7.zip \&lt;br /&gt;
  &amp;amp;&amp;amp; cd bluespice-deploy-5.2.7/compose&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{Textbox|boxtype=note|header=Use one consistent version number|text=The tag number 5.2.7 in this command (could be 5.1.9, 5.2.4 etc. as well) should also be used as the &amp;lt;code&amp;gt;VERSION=&amp;lt;/code&amp;gt; number in Step 2.|icon=yes}}&lt;br /&gt;
&lt;br /&gt;
The directory contains the following files:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
! style=&amp;quot;width:375px;&amp;quot; |Filename&lt;br /&gt;
! style=&amp;quot;&amp;quot; |Type&lt;br /&gt;
! style=&amp;quot;&amp;quot; |Comment&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:375px;&amp;quot; |&amp;lt;code&amp;gt;bluespice-deploy&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;&amp;quot; |shell script&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Start-up script, wrapping command &amp;lt;code&amp;gt;docker compose&amp;lt;/code&amp;gt; and service &amp;lt;code&amp;gt;yml&amp;lt;/code&amp;gt; files.&amp;lt;br&amp;gt;Additional service &amp;lt;code&amp;gt;yml&amp;lt;/code&amp;gt; files can be loaded by adding &amp;lt;code&amp;gt;-f &amp;lt;filename&amp;gt; &amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:375px;&amp;quot; |&amp;lt;code&amp;gt;docker-compose.main.yml&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;&amp;quot; |yml&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Main containers of the wiki (&amp;lt;code&amp;gt;wiki-web&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;wiki-task&amp;lt;/code&amp;gt;).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:375px;&amp;quot; |&amp;lt;code&amp;gt;docker-compose.persistent-data-services.yml&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;&amp;quot; |yml&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Containers of database and search services, storing persistent data onto the file system.&amp;lt;br /&amp;gt;Optionally with external MySQL/MariaDB and OpenSearch one can skip loading this &amp;lt;code&amp;gt;.yml&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;bluespice-deploy&amp;lt;/code&amp;gt;. Please then wire your services properly in the &amp;lt;code&amp;gt;.env&amp;lt;/code&amp;gt; file.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:375px;&amp;quot; |&amp;lt;code&amp;gt;docker-compose.stateless-services.yml&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;&amp;quot; |yml&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Containers for caching, PDF rendering, formula-rendering and diagram editing.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:375px;&amp;quot; |&amp;lt;code&amp;gt;docker-compose.helper-service.yml&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;&amp;quot; |yml&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Helper containers for file system preparation and automated BlueSpice upgrade.&amp;lt;br&amp;gt;These containers exit automatically after finishing tasks.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:375px;&amp;quot; |&amp;lt;code&amp;gt;docker-compose.proxy.yml&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;&amp;quot; |yml&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Container of proxy service. Can be replaced by existing proxy/load-balancer infrastructure.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:375px;&amp;quot; |&amp;lt;code&amp;gt;docker-compose.proxy-letsencrypt.yml&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;&amp;quot; |yml&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Additional service for auto-renewal of &amp;quot;Let&#039;s Encrypt&amp;quot; certificates.&amp;lt;br&amp;gt;Only required when using the Let&#039;s Encrypt service and having no other TLS termination.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:375px;&amp;quot; |&amp;lt;code&amp;gt;docker-compose.kerberos-proxy.yml&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;&amp;quot; |yml&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Additional proxy for Kerberos based authentication.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:375px;&amp;quot; |&amp;lt;code&amp;gt;docker-compose.collabpads-service.yml&amp;lt;/code&amp;gt;&lt;br /&gt;
|yml&lt;br /&gt;
|Containers of back-end services for [[Manual:Extension/CollabPads|CollabPads]] (included in Pro and Farm editions).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:375px;&amp;quot; |&amp;lt;code&amp;gt;.env.sample&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;&amp;quot; |text&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Sample for creating &amp;lt;code&amp;gt;.env&amp;lt;/code&amp;gt; that defines key environment variables.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:375px;&amp;quot; |&amp;lt;code&amp;gt;bluespice.service.demo&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;&amp;quot; |service script&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Demo-file for control the BlueSpice stack as a &amp;lt;code&amp;gt;systemctl&amp;lt;/code&amp;gt; service.&amp;lt;br&amp;gt;One can create e.g a &amp;lt;code&amp;gt;/etc/systemd/system/bluespice.service&amp;lt;/code&amp;gt;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Step 2: Set up environment variables ==&lt;br /&gt;
Create your &amp;lt;code&amp;gt;.env&amp;lt;/code&amp;gt; based on the sample file &amp;lt;code&amp;gt;.env.sample&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# set or use your data directory &lt;br /&gt;
DATADIR=/data/bluespice&lt;br /&gt;
VERSION=5.2.5&lt;br /&gt;
EDITION=free&lt;br /&gt;
BACKUP_HOUR=04&lt;br /&gt;
&lt;br /&gt;
WIKI_NAME=BlueSpice&lt;br /&gt;
WIKI_LANG=en&lt;br /&gt;
WIKI_PASSWORDSENDER=no-reply@wiki.company.local&lt;br /&gt;
WIKI_EMERGENCYCONTACT=no-reply@wiki.company.local&lt;br /&gt;
WIKI_HOST=wiki.company.local&lt;br /&gt;
WIKI_PORT=443&lt;br /&gt;
WIKI_PROTOCOL=https&lt;br /&gt;
WIKI_BASE_PATH=&lt;br /&gt;
&lt;br /&gt;
DB_USER=set_or_use_your_db_user_name&lt;br /&gt;
DB_PASS=SET_OR_USE_YOUR_DB_PASS_WORD&lt;br /&gt;
DB_ROOT_USER=root &lt;br /&gt;
DB_ROOT_PASS=$DB_PASS&lt;br /&gt;
DB_HOST=database&lt;br /&gt;
DB_NAME=bluespice&lt;br /&gt;
DB_PREFIX=&lt;br /&gt;
&lt;br /&gt;
SMTP_HOST=mail.company.local&lt;br /&gt;
SMTP_PORT=25&lt;br /&gt;
SMTP_USER=...&lt;br /&gt;
SMTP_PASS=...&lt;br /&gt;
SMTP_ID_HOST=...&lt;br /&gt;
&lt;br /&gt;
LETSENCRYPT=false&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
{{Textbox|boxtype=note|header=Different editions|text=This config works for all editions, but the main image of Pro or Farm edition needs to be obtained differently, see [[{{FULLPAGENAME}}/Pro and Farm edition|Pro and Farm edition]]|icon=yes}}&lt;br /&gt;
&lt;br /&gt;
== Step 3: Start the stack ==&lt;br /&gt;
Use &amp;lt;code&amp;gt;bluespice-deploy up -d&amp;lt;/code&amp;gt; to start the stack. Once all containers are shown as &amp;quot;ready&amp;quot; you can navigate to &amp;lt;code&amp;gt;$WIKI_PROTOCOL://$WIKI_HOST:$WIKI_PORT&amp;lt;/code&amp;gt; (e.g. &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://wiki.company.local&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;) in your preferred web browser and start using the application.&lt;br /&gt;
&lt;br /&gt;
When starting the stack the first time, the &amp;lt;code&amp;gt;wiki-task&amp;lt;/code&amp;gt; container will automatically perform the installation. It may take a couple of minutes for the process to set up the database and complete. Once it is finished, the password for the default &amp;lt;code&amp;gt;Admin&amp;lt;/code&amp;gt; user can be found in &amp;lt;code&amp;gt;$DATADIR/wiki/initialAdminPassword&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Additional options ==&lt;br /&gt;
&lt;br /&gt;
=== Add Customizations to containers ===&lt;br /&gt;
Since tag 5.1.4 and tag 5.2.0 of project &amp;lt;code&amp;gt;bluespice-deploy&amp;lt;/code&amp;gt;, we allow to edit and maintain a separate &amp;lt;code&amp;gt;docker-compose.override.yml&amp;lt;/code&amp;gt;  which will be ignored by git.&lt;br /&gt;
&lt;br /&gt;
This way you can add your own Container-Configurations and be able to maintain your git status up to date. Just place the file next to the other &amp;lt;code&amp;gt;docker-compose.*.yml&amp;lt;/code&amp;gt; s and run &amp;lt;code&amp;gt;./bluespice-deploy up -d&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Example:&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
services:&lt;br /&gt;
  wiki-web:&lt;br /&gt;
    volumes:&lt;br /&gt;
      - /backup/:/data/backup&lt;br /&gt;
  wiki-task:&lt;br /&gt;
    volumes:&lt;br /&gt;
      - /backup/:/data/backup&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Configs for &amp;lt;code&amp;gt;LocalSettings.php&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Instead of exposing the &amp;lt;code&amp;gt;LocalSettings.php&amp;lt;/code&amp;gt; for [[mediawikiwiki:Manual:LocalSettings.php|adding additional configurations]], the stack offers two entry points. After the initial installation, you can add your configs to two files in &amp;lt;code&amp;gt;${DATADIR}/wiki/bluespice/&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;pre-init-settings.php&amp;lt;/code&amp;gt;  - Set configs before the initialization of BlueSpice&#039;s debug logging, libraries, skins, extensions and default settings.  Configs set here can be picked up by the init process.&lt;br /&gt;
* &amp;lt;code&amp;gt;post-init-settings.php&amp;lt;/code&amp;gt; - Set configs after the initialization, manipulating configs that have been set by the init process.&lt;br /&gt;
For example, if you add the following lines to &amp;lt;code&amp;gt;pre-init-settings.php&amp;lt;/code&amp;gt;, you can then read outputted debug logs (if any) in &amp;lt;code&amp;gt;${DATADIR}/wiki/bluespice/logs/debug.log&amp;lt;/code&amp;gt;:&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$GLOBALS[&#039;bsgDebugLogGroups&#039;][&#039;exception&#039;] = &amp;quot;/data/bluespice/logs/debug.log&amp;quot;;&lt;br /&gt;
$wgShowExceptionDetails = true;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Maintenance scripts ===&lt;br /&gt;
To run [[Setup:Installation Guide/Advanced/Maintenance scripts|maintenance scripts]] from MediaWiki or from other extensions, please use the &amp;lt;code&amp;gt;wiki-task&amp;lt;/code&amp;gt; container, which handles all back-end jobs and processes. You can connect into the container in two different ways:&lt;br /&gt;
&lt;br /&gt;
* run &amp;lt;code&amp;gt;./bluespice-deploy exec -it wiki-task bash&amp;lt;/code&amp;gt; in the &amp;lt;code&amp;gt;compose&amp;lt;/code&amp;gt; directory for Docker Compose files&lt;br /&gt;
* or alternatively, run &amp;lt;code&amp;gt;docker exec -it bluespice-wiki-task bash&amp;lt;/code&amp;gt; wherever you are on the host machine&lt;br /&gt;
&lt;br /&gt;
Inside the container you can enter the wiki&#039;s code base with &amp;lt;code&amp;gt;cd /app/bluespice/w&amp;lt;/code&amp;gt; , where one can run scripts like &amp;lt;code&amp;gt;php maintenance/run.php update --quick&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;php extensions/BlueSpiceExtendedSearch/maintenance/updateWikiPageIndex.php&amp;lt;/code&amp;gt; and so on.&lt;br /&gt;
&lt;br /&gt;
=== SSL certificates ===&lt;br /&gt;
To use a Let&#039;s Encrypt certificate for your domain name, set &amp;lt;code&amp;gt;LETSENCRYPT=true&amp;lt;/code&amp;gt; in your &amp;lt;code&amp;gt;.env&amp;lt;/code&amp;gt; file.&lt;br /&gt;
&lt;br /&gt;
To use a self-signend certificate for your domain name, put its &amp;lt;code&amp;gt;.crt&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;.key&amp;lt;/code&amp;gt; files in &amp;lt;code&amp;gt;${DATADIR}/proxy/certs&amp;lt;/code&amp;gt;. For example, with &amp;lt;code&amp;gt;wiki.company.local&amp;lt;/code&amp;gt; you should prepare &amp;lt;code&amp;gt;wiki.company.local.crt&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;wiki.company.local.key&amp;lt;/code&amp;gt; files.&lt;br /&gt;
&lt;br /&gt;
=== Kerberos proxy ===&lt;br /&gt;
For implicit authentication using Kerberos, an additional proxy must be used: &amp;lt;code&amp;gt;bluespice/kerberos-proxy&amp;lt;/code&amp;gt; . The file &amp;lt;code&amp;gt;docker-compose.kerberos-proxy.yml&amp;lt;/code&amp;gt; contains a common configuration. It can be used &#039;&#039;&#039;instead of&#039;&#039;&#039; the regular &amp;lt;code&amp;gt;docker-compose.proxy.yml&amp;lt;/code&amp;gt; file inside &amp;lt;code&amp;gt;bluespice-deploy&amp;lt;/code&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
Make sure to have the files&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;${DATADIR}/kerberos/krb5.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;${DATADIR}/kerberos/kerberos.keytab&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
set up properly.&lt;br /&gt;
&lt;br /&gt;
The file &amp;lt;code&amp;gt;${DATADIR}/wiki/bluespice/pre-init-settings.php&amp;lt;/code&amp;gt; can then be used to set up [[mediawikiwiki:LDAP_hub|&amp;quot;Extension:Auth_remoteuser&amp;quot; and the LDAP stack extensions]].&lt;br /&gt;
&lt;br /&gt;
=== SAML authentication ===&lt;br /&gt;
During the initial installation a certificate for message signing will automatically be created. It can be found in &amp;lt;code&amp;gt;${DATADIR}/wiki/simplesamlphp/certs/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
In order to configure a remote IdP, one must copy the IdP metadata XML to a file called &amp;lt;code&amp;gt;${DATADIR}/wiki/simplesamlphp/saml_idp_metadata.xml&amp;lt;/code&amp;gt;. The SP metadata can then be obtained via &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://{{$WIKI_HOST}}/_sp/module.php/saml/sp/metadata.php/default-sp&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. It must be configured in the remote IdP.&lt;br /&gt;
&lt;br /&gt;
{{Textbox&lt;br /&gt;
|boxtype=tip&lt;br /&gt;
|header=Test authentication&lt;br /&gt;
|text= You can test authentication directly within the SimpleSAMLphp application. To do so, navigate to &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://{{$WIKI_HOST}}/_sp/module.php/admin&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and log in with &amp;lt;code&amp;gt;admin&amp;lt;/code&amp;gt; and the &amp;lt;code&amp;gt;INTERNAL_SIMPLESAMLPHP_ADMIN_PASS&amp;lt;/code&amp;gt; found in &amp;lt;code&amp;gt;${DATADIR}/wiki/.wikienv&amp;lt;/code&amp;gt;&lt;br /&gt;
|icon=yes&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Next, the extensions &amp;quot;PluggableAuth&amp;quot; and &amp;quot;SimpleSAMLphp&amp;quot; must be enabled on the wiki. To do so, add&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
wfLoadExtensions( [&lt;br /&gt;
    &#039;PluggableAuth&#039;,&lt;br /&gt;
    &#039;SimpleSAMLphp&#039;&lt;br /&gt;
] );&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;[[File:Setup:SAML ConfigManager EN 01.png|thumb|300x300px]]to the &amp;lt;code&amp;gt;${DATADIR}/wiki/bluespice/post-init-settings.php&amp;lt;/code&amp;gt;. Run&lt;br /&gt;
&lt;br /&gt;
 ./bluespice-deploy exec wiki-task /app/bluespice/w/maintenance/update.php --quick&lt;br /&gt;
&lt;br /&gt;
to complete the installation.&lt;br /&gt;
&lt;br /&gt;
After that, the authentication plugin configuration can be applied in [[Manual:Extension/BlueSpiceConfigManager|Special:BlueSpiceConfigManager]] under &amp;quot;Authentication&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== OpenID Connect authentication ===&lt;br /&gt;
&lt;br /&gt;
The extensions &amp;quot;PluggableAuth&amp;quot; and &amp;quot;OpenIDConnect&amp;quot; must be enabled on the wiki. To do so, add&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
wfLoadExtensions( [&lt;br /&gt;
    &#039;PluggableAuth&#039;,&lt;br /&gt;
    &#039;OpenIDConnect&#039;&lt;br /&gt;
] );&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;to the &amp;lt;code&amp;gt;${DATADIR}/wiki/bluespice/post-init-settings.php&amp;lt;/code&amp;gt;. Run&lt;br /&gt;
&lt;br /&gt;
 ./bluespice-deploy exec wiki-task /app/bluespice/w/maintenance/update.php --quick&lt;br /&gt;
&lt;br /&gt;
to complete the installation.&lt;br /&gt;
&lt;br /&gt;
After that, the authentication plugin configuration can be applied in [[Manual:Extension/BlueSpiceConfigManager|Special:BlueSpiceConfigManager]] under &amp;quot;Authentication&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[de:Setup:Installationsanleitung/Docker]]&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Security:Security_Advisories/BSSA-2026-06&amp;diff=14821</id>
		<title>Security:Security Advisories/BSSA-2026-06</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Security:Security_Advisories/BSSA-2026-06&amp;diff=14821"/>
		<updated>2026-09-29T06:03:44Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|Date&lt;br /&gt;
|2026-09-28&lt;br /&gt;
|-&lt;br /&gt;
|Severity&lt;br /&gt;
|reported &amp;quot;critical&amp;quot;, BlueSpice assessment: &#039;&#039;&#039;critical&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|Affected&lt;br /&gt;
|&amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; Docker image (all versions)&lt;br /&gt;
|-&lt;br /&gt;
|Fixed in&lt;br /&gt;
|Unknown&lt;br /&gt;
|-&lt;br /&gt;
|CVE&lt;br /&gt;
|&lt;br /&gt;
* [https://www.strix.ai/cve/CVE-2026-100382 CVE-2026-100382]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Problem ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
!&#039;&#039;&#039;CVE&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Component&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Type of vulnerability&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;BlueSpice 5&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2026-100382&lt;br /&gt;
|[[mediawikiwiki:Extension:External_Data|Extension:ExternalData]]&lt;br /&gt;
|Remote Code Execution&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-purple-bg&amp;quot; |affected&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Impact assessment ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
!CVE&lt;br /&gt;
!Assessment&lt;br /&gt;
!Mitigation without update&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |CVE-2026-100382&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; class=&amp;quot;col-purple-bg&amp;quot; |Attackers with &amp;quot;read&amp;quot; permission can execute arbitrary commands in context of the &amp;lt;code&amp;gt;wiki-web&amp;lt;/code&amp;gt; container&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |Deactivate [[mediawikiwiki:Extension:External_Data|Extension:ExternalData]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Solution ==&lt;br /&gt;
&lt;br /&gt;
=== Timeline and exposure window ===&lt;br /&gt;
&lt;br /&gt;
* 2026-09-25: CVE published. A fix exists upstream in ExternalData 3.7.&lt;br /&gt;
* From 2026-09-26: mass automated scanning and exploitation, observed by us and other MediaWiki operators.&lt;br /&gt;
* Assume the exposure window runs &#039;&#039;&#039;from 2026-09-25 until the moment you applied the mitigation below&#039;&#039;&#039;.&lt;br /&gt;
* Since 2026-09-28, Extension:ExternalData has been disabled on all wikis hosted on &amp;lt;code&amp;gt;bluespice.cloud&amp;lt;/code&amp;gt;. See also section [[#Effects_of_disabling|Effects of disabling]].&lt;br /&gt;
&lt;br /&gt;
=== Secure the evidence first ===&lt;br /&gt;
&lt;br /&gt;
{{Textbox|boxtype=important|header=&#039;&#039;&#039;Important:&#039;&#039;&#039; &amp;lt;code&amp;gt;docker compose down&amp;lt;/code&amp;gt; removes the containers &#039;&#039;&#039;and their logs&#039;&#039;&#039;|text=The nginx access log of &amp;lt;code&amp;gt;wiki-web&amp;lt;/code&amp;gt; is written to stdout, so it only exists in the Docker log of the container. Save the evidence &#039;&#039;&#039;before&#039;&#039;&#039; you restart anything|icon=yes}}&lt;br /&gt;
&lt;br /&gt;
=== Detect an attack in the logs ===&lt;br /&gt;
Exploitation uses the parser function &amp;lt;code&amp;gt;#get_program_data&amp;lt;/code&amp;gt;. It appears in the query string of requests to &amp;lt;code&amp;gt;api.php&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;index.php&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Limits of this check. Please read.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Only &#039;&#039;&#039;GET&#039;&#039;&#039; requests show the payload in the access log. The same attack also works via &#039;&#039;&#039;POST&#039;&#039;&#039;, and POST bodies are not logged. Also look for:&lt;br /&gt;
** requests to &amp;lt;code&amp;gt;api.php&amp;lt;/code&amp;gt; with &amp;lt;code&amp;gt;meta=siteinfo&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;siprop=extensions&amp;lt;/code&amp;gt; (probing for ExternalData), followed by&lt;br /&gt;
** bursts of &amp;lt;code&amp;gt;POST /w/api.php&amp;lt;/code&amp;gt; from the same IP within a few seconds.&lt;br /&gt;
&lt;br /&gt;
* Attackers may URL-encode letters of the parser function name. If in doubt, run the decoded search on the whole log.&lt;br /&gt;
* A missing hit does &#039;&#039;&#039;not&#039;&#039;&#039; prove that no attack happened, for example if the logs were already rotated.&lt;br /&gt;
&lt;br /&gt;
=== Mitigation: disable Extension:ExternalData ===&lt;br /&gt;
The extension is loaded by this line:&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
wfLoadExtension( &#039;ExternalData&#039; );&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Where it is:&lt;br /&gt;
&lt;br /&gt;
* BlueSpice 4: &amp;lt;code&amp;gt;/app/bluespice/w/settings.d/050-BlueSpiceSemanticData.php&amp;lt;/code&amp;gt;&lt;br /&gt;
* BlueSpice 5: &amp;lt;code&amp;gt;/app/bluespice/w/settings.d/040-BlueSpiceProDistribution.php&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The exact line number depends on the version.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Do not simply edit the file inside the running container.&#039;&#039;&#039; The change would be lost the next time the container is recreated. We recommend the following options, best first:&lt;br /&gt;
&lt;br /&gt;
==== Mount a patched copy of the settings file ====&lt;br /&gt;
Copy the settings file out of the container, comment out the line and mount it read-only:&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# BlueSpice 5 – use 050-BlueSpiceSemanticData.php for BlueSpice 4&lt;br /&gt;
docker cp bluespice-wiki-web:/app/bluespice/w/settings.d/040-BlueSpiceProDistribution.php ./&lt;br /&gt;
sed -i &amp;quot;s|^wfLoadExtension( &#039;ExternalData&#039; );|#wfLoadExtension( &#039;ExternalData&#039; ); #Disabled due to https://www.strix.ai/cve/CVE-2026-100382|&amp;quot; 040-BlueSpiceProDistribution.php&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
services:&lt;br /&gt;
  wiki-web:&lt;br /&gt;
    volumes:&lt;br /&gt;
      - ./040-BlueSpiceProDistribution.php:/app/bluespice/w/settings.d/040-BlueSpiceProDistribution.php:ro&lt;br /&gt;
  # same for wiki-task and wiki-installer&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&#039;&#039;&#039;Drawback:&#039;&#039;&#039; the copied file is tied to the exact image version. After an update it would overwrite the new version&#039;s file. Remove this mount before or together with the next update.&lt;br /&gt;
&lt;br /&gt;
==== Effects of disabling ====&lt;br /&gt;
Pages that use &amp;lt;code&amp;gt;#get_web_data&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;#get_db_data&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;#external_value&amp;lt;/code&amp;gt; or similar functions of ExternalData will show the parser function as plain text or no data until the extension is enabled again in a fixed version. No content is lost.&lt;br /&gt;
&lt;br /&gt;
=== Recreate the container stack ===&lt;br /&gt;
A plain &amp;lt;code&amp;gt;restart&amp;lt;/code&amp;gt; is &#039;&#039;&#039;not&#039;&#039;&#039; sufficient. It keeps the existing, possibly manipulated container file system. The containers must be removed and created again from the image:&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /path/to/bluespice-deploy/compose&lt;br /&gt;
./bluespice-deploy down&lt;br /&gt;
./bluespice-deploy up -d&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;{{Textbox|boxtype=important|header=|text=&#039;&#039;&#039;Never&#039;&#039;&#039; use &amp;lt;code&amp;gt;down -v&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;down --volumes&amp;lt;/code&amp;gt;. Also do not delete &amp;lt;code&amp;gt;${DATADIR}&amp;lt;/code&amp;gt;. That would delete the persistent wiki data.|icon=yes}}Recreating the containers removes everything an attacker changed &#039;&#039;&#039;inside&#039;&#039;&#039; the containers. It does &#039;&#039;&#039;not&#039;&#039;&#039; clean the persistent data in &amp;lt;code&amp;gt;${DATADIR}&amp;lt;/code&amp;gt; (database, uploads, configuration files on the volume). &#039;&#039;&#039;Verify&#039;&#039;&#039; that the extension is disabled:&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker exec bluespice-wiki-web grep -rn &amp;quot;ExternalData&amp;quot; /app/bluespice/w/settings.d/&lt;br /&gt;
# Must NOT list &amp;quot;External Data&amp;quot;:&lt;br /&gt;
curl -s &amp;quot;https://&amp;lt;your-wiki&amp;gt;/w/api.php?action=query&amp;amp;meta=siteinfo&amp;amp;siprop=extensions&amp;amp;format=json&amp;quot; | grep -i &#039;external data&#039; \&lt;br /&gt;
  || echo &amp;quot;OK: ExternalData not loaded&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;If &amp;lt;code&amp;gt;read&amp;lt;/code&amp;gt; requires a login, run the API check in a logged-in browser session.&lt;br /&gt;
&lt;br /&gt;
=== Check for compromise in persistent data ===&lt;br /&gt;
&amp;lt;code&amp;gt;DATADIR&amp;lt;/code&amp;gt; refers to the value in &amp;lt;code&amp;gt;compose/.env&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Files ====&lt;br /&gt;
To check whether uploaded files were replaced, compare the file hashes with a backup from &#039;&#039;&#039;before 2026-09-25&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
MediaWiki also stores a SHA-1 of every file version in the database (&amp;lt;code&amp;gt;img_sha1&amp;lt;/code&amp;gt;, base-36). &amp;lt;code&amp;gt;php maintenance/run.php checkImages&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;wiki-task&amp;lt;/code&amp;gt; reports files whose size does not match the database.&lt;br /&gt;
&lt;br /&gt;
==== Database ====&lt;br /&gt;
Direct database changes bypass the wiki log. Changes made through the wiki (edits, uploads) show up in &amp;lt;code&amp;gt;Special:RecentChanges&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;Special:Log&amp;lt;/code&amp;gt;. &#039;&#039;&#039;MySQL/MariaDB logs:&#039;&#039;&#039; the database logs are in &amp;lt;code&amp;gt;${DATADIR}/database/logs&amp;lt;/code&amp;gt;. Check whether binary logs (&amp;lt;code&amp;gt;log_bin&amp;lt;/code&amp;gt;) or the general query log are enabled&lt;br /&gt;
&lt;br /&gt;
If binary logs exist, save them to the evidence directory and analyse the exposure window. Binary logs only record writes. Reads (data theft) cannot be seen there.&lt;br /&gt;
&lt;br /&gt;
=== If you found traces of compromise ===&lt;br /&gt;
&lt;br /&gt;
# Remove found web shells and restore manipulated files from a backup created &#039;&#039;&#039;before 2026-09-25&#039;&#039;&#039;. Put &amp;lt;code&amp;gt;pre-/post-init-settings.php&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;.wikienv&amp;lt;/code&amp;gt; back to known-good content.&lt;br /&gt;
# &#039;&#039;&#039;Rotate all secrets&#039;&#039;&#039;:&lt;br /&gt;
#* DB passwords (&amp;lt;code&amp;gt;DB_PASS&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DB_ROOT_PASS&amp;lt;/code&amp;gt;). Change them in the database &#039;&#039;&#039;and&#039;&#039;&#039; in &amp;lt;code&amp;gt;compose/.env&amp;lt;/code&amp;gt;.&lt;br /&gt;
#* All files in &amp;lt;code&amp;gt;${DATADIR}/.secrets/&amp;lt;/code&amp;gt;, for example with &amp;lt;code&amp;gt;openssl rand -hex 32 &amp;gt; …&amp;lt;/code&amp;gt; per file.&lt;br /&gt;
#* OAuth key pair (&amp;lt;code&amp;gt;oauth_private.key&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;oauth_public.key&amp;lt;/code&amp;gt;), SAML SP certificate (&amp;lt;code&amp;gt;simplesamlphp/certs&amp;lt;/code&amp;gt;)&lt;br /&gt;
#* SMTP, LDAP/AD bind account, search credentials, API keys of AI providers, Slack/Teams/Rocket.Chat tokens&lt;br /&gt;
#* Passwords of all administrators. Ask all users to change their passwords. Also have them re-enroll two-factor authentication, because the TOTP secrets may be exposed.&lt;br /&gt;
# &#039;&#039;&#039;Invalidate all sessions&#039;&#039;&#039;: add this to &amp;lt;code&amp;gt;post-init-settings.php&amp;lt;/code&amp;gt;:&lt;br /&gt;
#: &amp;lt;code&amp;gt;$GLOBALS[&#039;wgAuthenticationTokenVersion&#039;] = &amp;quot;2&amp;quot;;&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Then recreate the stack. This logs out everybody.&lt;br /&gt;
# Remove any backdoor accounts, bot passwords and OAuth consumers you found. Revert manipulated interface pages.&lt;br /&gt;
# Check the host and the network for unusual activity: outgoing connections of the Docker host, firewall logs and access to internal systems from the Docker network.&lt;br /&gt;
&lt;br /&gt;
=== See also ===&lt;br /&gt;
&lt;br /&gt;
* [https://lists.wikimedia.org/hyperkitty/list/mediawiki-l@lists.wikimedia.org/thread/5N55R3XNFE7BXQLGWKZI7Q4ZXZSF4C5I/ Thread on &amp;lt;code&amp;gt;mediawiki-l&amp;lt;/code&amp;gt; mailing list] - contains additional information about the issue&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Security:Security_Advisories/BSSA-2026-06&amp;diff=14820</id>
		<title>Security:Security Advisories/BSSA-2026-06</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Security:Security_Advisories/BSSA-2026-06&amp;diff=14820"/>
		<updated>2026-09-28T14:59:15Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|Date&lt;br /&gt;
|2026-09-28&lt;br /&gt;
|-&lt;br /&gt;
|Severity&lt;br /&gt;
|reported &amp;quot;critical&amp;quot;, BlueSpice assessment: &#039;&#039;&#039;critical&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|Affected&lt;br /&gt;
|&amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; Docker image (all versions)&lt;br /&gt;
|-&lt;br /&gt;
|Fixed in&lt;br /&gt;
|Unknown&lt;br /&gt;
|-&lt;br /&gt;
|CVE&lt;br /&gt;
|&lt;br /&gt;
* [https://www.strix.ai/cve/CVE-2026-100382 CVE-2026-100382]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Problem ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
!&#039;&#039;&#039;CVE&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Component&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Type of vulnerability&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;BlueSpice 5&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2026-100382&lt;br /&gt;
|&amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt;&lt;br /&gt;
|Remote Code Execution&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-purple-bg&amp;quot; |affected&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Impact assessment ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
!CVE&lt;br /&gt;
!Assessment&lt;br /&gt;
!Mitigation without update&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |CVE-2026-100382&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; class=&amp;quot;col-purple-bg&amp;quot; |Attackers with &amp;quot;read&amp;quot; permission can execute arbitrary commands in context of the &amp;lt;code&amp;gt;wiki-web&amp;lt;/code&amp;gt; container&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |Deactivate Extension:ExternalData&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Solution ==&lt;br /&gt;
&lt;br /&gt;
=== Timeline and exposure window ===&lt;br /&gt;
&lt;br /&gt;
* 2026-09-25: CVE published. A fix exists upstream in ExternalData 3.7.&lt;br /&gt;
* From 2026-09-26: mass automated scanning and exploitation, observed by us and other MediaWiki operators.&lt;br /&gt;
* Assume the exposure window runs &#039;&#039;&#039;from 2026-09-25 until the moment you applied the mitigation below&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== 2. Secure the evidence first ===&lt;br /&gt;
&lt;br /&gt;
{{Textbox|boxtype=important|header=&#039;&#039;&#039;Important:&#039;&#039;&#039; &amp;lt;code&amp;gt;docker compose down&amp;lt;/code&amp;gt; removes the containers &#039;&#039;&#039;and their logs&#039;&#039;&#039;|text=The nginx access log of &amp;lt;code&amp;gt;wiki-web&amp;lt;/code&amp;gt; is written to stdout, so it only exists in the Docker log of the container. Save the evidence &#039;&#039;&#039;before&#039;&#039;&#039; you restart anything|icon=yes}}&lt;br /&gt;
&lt;br /&gt;
=== 3. Detect an attack in the logs ===&lt;br /&gt;
Exploitation uses the parser function &amp;lt;code&amp;gt;#get_program_data&amp;lt;/code&amp;gt;. It appears in the query string of requests to &amp;lt;code&amp;gt;api.php&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;index.php&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Limits of this check. Please read.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Only &#039;&#039;&#039;GET&#039;&#039;&#039; requests show the payload in the access log. The same attack also works via &#039;&#039;&#039;POST&#039;&#039;&#039;, and POST bodies are not logged. Also look for:&lt;br /&gt;
** requests to &amp;lt;code&amp;gt;api.php&amp;lt;/code&amp;gt; with &amp;lt;code&amp;gt;meta=siteinfo&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;siprop=extensions&amp;lt;/code&amp;gt; (probing for ExternalData), followed by&lt;br /&gt;
** bursts of &amp;lt;code&amp;gt;POST /w/api.php&amp;lt;/code&amp;gt; from the same IP within a few seconds.&lt;br /&gt;
&lt;br /&gt;
* Attackers may URL-encode letters of the parser function name. If in doubt, run the decoded search on the whole log.&lt;br /&gt;
* A missing hit does &#039;&#039;&#039;not&#039;&#039;&#039; prove that no attack happened, for example if the logs were already rotated.&lt;br /&gt;
&lt;br /&gt;
=== Mitigation: disable Extension:ExternalData ===&lt;br /&gt;
The extension is loaded by this line:&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
wfLoadExtension( &#039;ExternalData&#039; );&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Where it is:&lt;br /&gt;
&lt;br /&gt;
* BlueSpice 4: &amp;lt;code&amp;gt;/app/bluespice/w/settings.d/050-BlueSpiceSemanticData.php&amp;lt;/code&amp;gt;&lt;br /&gt;
* BlueSpice 5: &amp;lt;code&amp;gt;/app/bluespice/w/settings.d/040-BlueSpiceProDistribution.php&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The exact line number depends on the version.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Do not simply edit the file inside the running container.&#039;&#039;&#039; The change would be lost the next time the container is recreated. We recommend the following options, best first:&lt;br /&gt;
&lt;br /&gt;
==== Mount a patched copy of the settings file ====&lt;br /&gt;
Copy the settings file out of the container, comment out the line and mount it read-only:&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# BlueSpice 5 – use 050-BlueSpiceSemanticData.php for BlueSpice 4&lt;br /&gt;
docker cp bluespice-wiki-web:/app/bluespice/w/settings.d/040-BlueSpiceProDistribution.php ./&lt;br /&gt;
sed -i &amp;quot;s|^wfLoadExtension( &#039;ExternalData&#039; );|#wfLoadExtension( &#039;ExternalData&#039; ); #Disabled due to https://www.strix.ai/cve/CVE-2026-100382|&amp;quot; 040-BlueSpiceProDistribution.php&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
services:&lt;br /&gt;
  wiki-web:&lt;br /&gt;
    volumes:&lt;br /&gt;
      - ./040-BlueSpiceProDistribution.php:/app/bluespice/w/settings.d/040-BlueSpiceProDistribution.php:ro&lt;br /&gt;
  # same for wiki-task and wiki-installer&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&#039;&#039;&#039;Drawback:&#039;&#039;&#039; the copied file is tied to the exact image version. After an update it would overwrite the new version&#039;s file. Remove this mount before or together with the next update.&lt;br /&gt;
&lt;br /&gt;
==== Effects of disabling ====&lt;br /&gt;
Pages that use &amp;lt;code&amp;gt;#get_web_data&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;#get_db_data&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;#external_value&amp;lt;/code&amp;gt; or similar functions of ExternalData will show the parser function as plain text or no data until the extension is enabled again in a fixed version. No content is lost.&lt;br /&gt;
&lt;br /&gt;
=== Recreate the container stack ===&lt;br /&gt;
A plain &amp;lt;code&amp;gt;restart&amp;lt;/code&amp;gt; is &#039;&#039;&#039;not&#039;&#039;&#039; sufficient. It keeps the existing, possibly manipulated container file system. The containers must be removed and created again from the image:&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /path/to/bluespice-deploy/compose&lt;br /&gt;
./bluespice-deploy down&lt;br /&gt;
./bluespice-deploy up -d&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;{{Textbox|boxtype=important|header=|text=&#039;&#039;&#039;Never&#039;&#039;&#039; use &amp;lt;code&amp;gt;down -v&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;down --volumes&amp;lt;/code&amp;gt;. Also do not delete &amp;lt;code&amp;gt;${DATADIR}&amp;lt;/code&amp;gt;. That would delete the persistent wiki data.|icon=yes}}Recreating the containers removes everything an attacker changed &#039;&#039;&#039;inside&#039;&#039;&#039; the containers. It does &#039;&#039;&#039;not&#039;&#039;&#039; clean the persistent data in &amp;lt;code&amp;gt;${DATADIR}&amp;lt;/code&amp;gt; (database, uploads, configuration files on the volume). &#039;&#039;&#039;Verify&#039;&#039;&#039; that the extension is disabled:&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker exec bluespice-wiki-web grep -rn &amp;quot;ExternalData&amp;quot; /app/bluespice/w/settings.d/&lt;br /&gt;
# Must NOT list &amp;quot;External Data&amp;quot;:&lt;br /&gt;
curl -s &amp;quot;https://&amp;lt;your-wiki&amp;gt;/w/api.php?action=query&amp;amp;meta=siteinfo&amp;amp;siprop=extensions&amp;amp;format=json&amp;quot; | grep -i &#039;external data&#039; \&lt;br /&gt;
  || echo &amp;quot;OK: ExternalData not loaded&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;If &amp;lt;code&amp;gt;read&amp;lt;/code&amp;gt; requires a login, run the API check in a logged-in browser session.&lt;br /&gt;
&lt;br /&gt;
=== Check for compromise in persistent data ===&lt;br /&gt;
&amp;lt;code&amp;gt;DATADIR&amp;lt;/code&amp;gt; refers to the value in &amp;lt;code&amp;gt;compose/.env&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Files ====&lt;br /&gt;
To check whether uploaded files were replaced, compare the file hashes with a backup from &#039;&#039;&#039;before 2026-09-25&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
MediaWiki also stores a SHA-1 of every file version in the database (&amp;lt;code&amp;gt;img_sha1&amp;lt;/code&amp;gt;, base-36). &amp;lt;code&amp;gt;php maintenance/run.php checkImages&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;wiki-task&amp;lt;/code&amp;gt; reports files whose size does not match the database.&lt;br /&gt;
&lt;br /&gt;
==== Database ====&lt;br /&gt;
Direct database changes bypass the wiki log. Changes made through the wiki (edits, uploads) show up in &amp;lt;code&amp;gt;Special:RecentChanges&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;Special:Log&amp;lt;/code&amp;gt;. &#039;&#039;&#039;MySQL/MariaDB logs:&#039;&#039;&#039; the database logs are in &amp;lt;code&amp;gt;${DATADIR}/database/logs&amp;lt;/code&amp;gt;. Check whether binary logs (&amp;lt;code&amp;gt;log_bin&amp;lt;/code&amp;gt;) or the general query log are enabled&lt;br /&gt;
&lt;br /&gt;
If binary logs exist, save them to the evidence directory and analyse the exposure window. Binary logs only record writes. Reads (data theft) cannot be seen there.&lt;br /&gt;
&lt;br /&gt;
=== If you found traces of compromise ===&lt;br /&gt;
&lt;br /&gt;
# Remove found web shells and restore manipulated files from a backup created &#039;&#039;&#039;before 2026-09-25&#039;&#039;&#039;. Put &amp;lt;code&amp;gt;pre-/post-init-settings.php&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;.wikienv&amp;lt;/code&amp;gt; back to known-good content.&lt;br /&gt;
# &#039;&#039;&#039;Rotate all secrets&#039;&#039;&#039;:&lt;br /&gt;
#* DB passwords (&amp;lt;code&amp;gt;DB_PASS&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DB_ROOT_PASS&amp;lt;/code&amp;gt;). Change them in the database &#039;&#039;&#039;and&#039;&#039;&#039; in &amp;lt;code&amp;gt;compose/.env&amp;lt;/code&amp;gt;.&lt;br /&gt;
#* All files in &amp;lt;code&amp;gt;${DATADIR}/.secrets/&amp;lt;/code&amp;gt;, for example with &amp;lt;code&amp;gt;openssl rand -hex 32 &amp;gt; …&amp;lt;/code&amp;gt; per file.&lt;br /&gt;
#* OAuth key pair (&amp;lt;code&amp;gt;oauth_private.key&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;oauth_public.key&amp;lt;/code&amp;gt;), SAML SP certificate (&amp;lt;code&amp;gt;simplesamlphp/certs&amp;lt;/code&amp;gt;)&lt;br /&gt;
#* SMTP, LDAP/AD bind account, search credentials, API keys of AI providers, Slack/Teams/Rocket.Chat tokens&lt;br /&gt;
#* Passwords of all administrators. Ask all users to change their passwords. Also have them re-enroll two-factor authentication, because the TOTP secrets may be exposed.&lt;br /&gt;
# &#039;&#039;&#039;Invalidate all sessions&#039;&#039;&#039;: add this to &amp;lt;code&amp;gt;post-init-settings.php&amp;lt;/code&amp;gt;:&lt;br /&gt;
#: &amp;lt;code&amp;gt;$GLOBALS[&#039;wgAuthenticationTokenVersion&#039;] = &amp;quot;2&amp;quot;;&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Then recreate the stack. This logs out everybody.&lt;br /&gt;
# Remove any backdoor accounts, bot passwords and OAuth consumers you found. Revert manipulated interface pages.&lt;br /&gt;
# Check the host and the network for unusual activity: outgoing connections of the Docker host, firewall logs and access to internal systems from the Docker network.&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Security:Security_Advisories&amp;diff=14819</id>
		<title>Security:Security Advisories</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Security:Security_Advisories&amp;diff=14819"/>
		<updated>2026-09-28T14:37:52Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
! style=&amp;quot;&amp;quot; |Release name&lt;br /&gt;
! style=&amp;quot;&amp;quot; |Release date&lt;br /&gt;
! style=&amp;quot;&amp;quot; |Title&lt;br /&gt;
! style=&amp;quot;&amp;quot; |References&lt;br /&gt;
! style=&amp;quot;&amp;quot; |Summary&lt;br /&gt;
!Severity&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2026-06|BSSA-2026-06]]&lt;br /&gt;
|2026-09-28&lt;br /&gt;
|Security vulnerability in ExternalData extension&lt;br /&gt;
|[https://www.strix.ai/cve/CVE-2026-100382 CVE-2026-100382]&lt;br /&gt;
|Remote code execution&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-purple-bg&amp;quot; |Critical&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2026-05|BSSA-2026-05]]&lt;br /&gt;
|2026-07-27&lt;br /&gt;
|Security vulnerabilities in containers and extensions&lt;br /&gt;
|[https://nvd.nist.gov/vuln/detail/CVE-2026-59933 CVE-2026-59933], [https://nvd.nist.gov/vuln/detail/CVE-2025-14813 CVE-2025-14813], [https://nvd.nist.gov/vuln/detail/CVE-2025-65896 CVE-2025-65896], [https://nvd.nist.gov/vuln/detail/CVE-2026-59873 CVE-2026-59873]&lt;br /&gt;
|Uncontrolled ressource consumption, infinite loop&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2026-04|BSSA-2026-04]]&lt;br /&gt;
|2026-06-22&lt;br /&gt;
|Security vulnerabilities in Confluence Migration Tool container image&lt;br /&gt;
|[https://nvd.nist.gov/vuln/detail/CVE-2026-8376 CVE-2026-8376]&lt;br /&gt;
|Heap buffer overflow vulnerability in Perl Regexes&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2026-03|BSSA-2026-03]]&lt;br /&gt;
|2026-06-08&lt;br /&gt;
|Security vulnerabilities in containers of the Cloudogu  stack&lt;br /&gt;
|[https://nvd.nist.gov/vuln/detail/CVE-2026-31789 CVE-2026-31789], [https://nvd.nist.gov/vuln/detail/CVE-2026-43512 CVE-2026-43512], [https://nvd.nist.gov/vuln/detail/CVE-2026-7261 CVE-2026-7261]&lt;br /&gt;
|Heap buffer overflow in OpenSSL, Apache Tomcat DIGEST authentication bypass and  PHP SOAP server session persistence vulnerability&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2026-02|BSSA-2026-02]]&lt;br /&gt;
|2026-03-04&lt;br /&gt;
|Security vulnerability in BlueSpice Database container and NSFileRepo extension.&lt;br /&gt;
|[https://avd.aquasec.com/nvd/2025/cve-2025-15467 CVE-2025-15467],&lt;br /&gt;
[https://avd.aquasec.com/nvd/2026/cve-2026-24732 CVE-2026-24732]&lt;br /&gt;
|Buffer Overflow; Information disclosure&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2026-01|BSSA-2026-01]]&lt;br /&gt;
|2026-01-28&lt;br /&gt;
|Security vulnerability in BlueSpice Collabpads database container.&lt;br /&gt;
|[https://avd.aquasec.com/nvd/2025/cve-2025-14847 CVE-2025-14847]&lt;br /&gt;
|Read of uninitialized heap memory&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2025-07|BSSA-2025-07]]&lt;br /&gt;
|2025-12-10&lt;br /&gt;
|Security vulnerability in BlueSpice Search container.&lt;br /&gt;
|[https://avd.aquasec.com/nvd/2025/cve-2025-66516 CVE-2025-66516]&lt;br /&gt;
|XML Entity Injection&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2025-06|BSSA-2025-06]]&lt;br /&gt;
|2025-10-28&lt;br /&gt;
|Security vulnerabilities in various MediaWiki extensions that are actually part of the BlueSpice distribution&lt;br /&gt;
|[https://www.cve.org/CVERecord?id=CVE-2024-56171 CVE-2024-56171], [https://www.cve.org/CVERecord?id=CVE-2025-3277 CVE-2025-3277], [https://www.cve.org/CVERecord?id=CVE-2025-6965 CVE-2025-6965], [https://www.cve.org/CVERecord?id=CVE-2025-11173 CVE-2025-11173], [https://www.cve.org/CVERecord?id=CVE-2025-11175 CVE-2025-11175],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-53625 CVE-2025-53625],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-54370 CVE-2025-54370],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-54874 CVE-2025-54874],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-59839 CVE-2025-59839],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61634 CVE-2025-61634],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61635 CVE-2025-61635],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61636 CVE-2025-61636],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61637 CVE-2025-61637],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61638 CVE-2025-61638],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61639 CVE-2025-61639],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61640 CVE-2025-61640],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61641 CVE-2025-61641],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61642 CVE-2025-61642],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61643 CVE-2025-61643],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61646 CVE-2025-61646],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61652 CVE-2025-61652],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61653 CVE-2025-61653],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61655 CVE-2025-61655],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61655 CVE-2025-61655],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61656 CVE-2025-61656],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61656 CVE-2025-61656],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61657 CVE-2025-61657],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-7458 CVE-2025-7458]&lt;br /&gt;
|Denial Of Service,&lt;br /&gt;
Cross-Site Scripting (XSS),&lt;br /&gt;
Information Disclosure,&lt;br /&gt;
Bypass authn at content check,&lt;br /&gt;
Server-side Request Forgery,&lt;br /&gt;
Arbitrary Code Execution,&lt;br /&gt;
Memory Corruption,&lt;br /&gt;
Use-After-Free,&lt;br /&gt;
Arbitrary SQL Execution&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-red-bg&amp;quot; |High&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2025-05|BSSA-2025-05]]&lt;br /&gt;
|2025-09-19&lt;br /&gt;
|XSS in Extension:AtMentions, Extension:BlueSpiceAvatars, Extension:BlueSpiceWhoIsOnline and Extension:CognitiveProcessDesigner&lt;br /&gt;
|[https://www.cve.org/CVERecord?id=CVE-2025-46703 CVE-2025-46703], [https://www.cve.org/CVERecord?id=CVE-2025-48007 CVE-2025-48007], [https://www.cve.org/CVERecord?id=CVE-2025-57880 CVE-2025-57880], [https://www.cve.org/CVERecord?id=CVE-2025-58114 CVE-2025-58114]&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2025-04|BSSA-2025-04]]&lt;br /&gt;
|2025-09-18&lt;br /&gt;
|Security vulnerabilities in services &amp;lt;code&amp;gt;bluespice/search&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;bluespice/formular&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; &lt;br /&gt;
|[https://nvd.nist.gov/vuln/detail/CVE-2025-54988 CVE-2025-54988], [https://avd.aquasec.com/nvd/2025/cve-2025-7783 CVE-2025-7783], [https://avd.aquasec.com/nvd/cve-2025-58050 CVE-2025-58050], [https://avd.aquasec.com/nvd/cve-2025-49794 CVE-2025-49794], [https://avd.aquasec.com/nvd/cve-2025-49796 CVE-2025-49796]&lt;br /&gt;
|Denial-of-Service, Information Disclosure&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2025-03|BSSA-2025-03]]&lt;br /&gt;
|2025-07-28&lt;br /&gt;
|Security vulnerabilities in Extension:Scribunto, Extension:TabberNeue, Extension:TwoColConflict and Extension:Quiz&lt;br /&gt;
|[https://www.cve.org/CVERecord?id=CVE-2025-53501 CVE-2025-53501], [https://www.cve.org/CVERecord?id=CVE-2025-53494 CVE-2025-53494], [https://www.cve.org/CVERecord?id=CVE-2025-53093 CVE-2025-53093], [https://www.cve.org/CVERecord?id=CVE-2025-7057 CVE-2025-7057]&lt;br /&gt;
|Information Disclosure, &lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2025-02|BSSA-2025-02]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2025-04-17&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Security vulnerabilities in Extension:OAuth&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2025-32068 CVE-2025-32068], [https://www.cve.org/CVERecord?id=CVE-2025-32074 CVE-2025-32074]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Allows unauthorized access to the wiki, Cross-Site Scripting (XSS)&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2025-01|BSSA-2025-01]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2025-01-20&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Security vulnerabilities in Extension:DataTransfer &lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2025-23081 CVE-2025-23081]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Allows Cross Site Request Forgery, Cross-Site Scripting (XSS)&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2023-02|BSSA-2023-02]]&lt;br /&gt;
|2023-10-30&lt;br /&gt;
|Security vulnerabilities in Extension:BlueSpiceAvatars&lt;br /&gt;
|[https://www.cve.org/cverecord?id=CVE-2023-42431 CVE-2023-42431]&lt;br /&gt;
|Allows Cross-Site Scripting (XSS)&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2023-01|BSSA-2023-01]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2023-07-25&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Ghostscript vulnerability&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2023-36664 CVE-2023-36664]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Code can be executed on the server via a manipulated PDF&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-08|BSSA-2022-08]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-11-15&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector on regular pages&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-3895 CVE-2022-3895]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Arbitrary HTML injection through use of interface elements&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-07|BSSA-2022-07]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-11-15&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector on regular pages&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-3958 CVE-2022-3958]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Arbitrary HTML injection through personal menu items&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-06|BSSA-2022-06]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-11-15&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector on regular pages&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-3893 CVE-2022-3893]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Arbitrary HTML injection through the custom menu&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-05|BSSA-2022-05]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-11-15&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector on regular pages&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-42001 CVE-2022-42001]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Arbitrary HTML injection through the book navigation&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-04|BSSA-2022-04]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-11-15&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector on regular pages&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-41789 CVE-2022-41789], [https://www.cve.org/CVERecord?id=CVE-2022-41814 CVE-2022-41814], [https://www.cve.org/CVERecord?id=CVE-2022-42000 CVE-2022-42000]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Arbitrary HTML injection through user preferences&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-03|BSSA-2022-03]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-11-15&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector on regular pages&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-41611 CVE-2022-41611]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Arbitrary HTML injection through main navigation&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-02|BSSA-2022-02]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-11-15&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector on regular pages&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-2511 CVE-2022-2511]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Arbitrary HTML injection through the &#039;title&#039; parameter&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-01|BSSA-2022-01]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-01-31&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector in Search Center&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-2510 CVE-2022-2510]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |JavaScript in search field is reflected back to the browser.&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Security:Security_Advisories/BSSA-2026-06&amp;diff=14818</id>
		<title>Security:Security Advisories/BSSA-2026-06</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Security:Security_Advisories/BSSA-2026-06&amp;diff=14818"/>
		<updated>2026-09-28T14:37:25Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|Date&lt;br /&gt;
|2026-09-28&lt;br /&gt;
|-&lt;br /&gt;
|Severity&lt;br /&gt;
|reported &amp;quot;critical&amp;quot;, BlueSpice assessment: &#039;&#039;&#039;critical&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|Affected&lt;br /&gt;
|&amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; Docker image (all versions)&lt;br /&gt;
|-&lt;br /&gt;
|Fixed in&lt;br /&gt;
|Unknown&lt;br /&gt;
|-&lt;br /&gt;
|CVE&lt;br /&gt;
|&lt;br /&gt;
* [https://www.strix.ai/cve/CVE-2026-100382 CVE-2026-100382]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Problem ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
!&#039;&#039;&#039;CVE&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Component&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Type of vulnerability&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;BlueSpice 5&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2026-100382&lt;br /&gt;
|&amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt;&lt;br /&gt;
|Remote Code Execution&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-purple-bg&amp;quot; |affected&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Impact assessment ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
!CVE&lt;br /&gt;
!Assessment&lt;br /&gt;
!Mitigation without update&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |CVE-2026-100382&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; class=&amp;quot;col-purple-bg&amp;quot; |Attackers with &amp;quot;read&amp;quot; permission can execute arbitrary commands in context of the &amp;lt;code&amp;gt;wiki-web&amp;lt;/code&amp;gt; container&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |Deactivate Extension:ExternalData&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Solution ==&lt;br /&gt;
&lt;br /&gt;
=== Timeline and exposure window ===&lt;br /&gt;
&lt;br /&gt;
* 2026-09-25: CVE published. A fix exists upstream in ExternalData 3.7.&lt;br /&gt;
* From 2026-09-26: mass automated scanning and exploitation, observed by us and other MediaWiki operators.&lt;br /&gt;
* Assume the exposure window runs &#039;&#039;&#039;from 2026-09-25 until the moment you applied the mitigation below&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== 2. Secure the evidence first ===&lt;br /&gt;
&lt;br /&gt;
{{Textbox|boxtype=important|header=&#039;&#039;&#039;Important:&#039;&#039;&#039; &amp;lt;code&amp;gt;docker compose down&amp;lt;/code&amp;gt; removes the containers &#039;&#039;&#039;and their logs&#039;&#039;&#039;|text=The nginx access log of &amp;lt;code&amp;gt;wiki-web&amp;lt;/code&amp;gt; is written to stdout, so it only exists in the Docker log of the container. Save the evidence &#039;&#039;&#039;before&#039;&#039;&#039; you restart anything|icon=yes}}&lt;br /&gt;
&lt;br /&gt;
=== 3. Detect an attack in the logs ===&lt;br /&gt;
Exploitation uses the parser function &amp;lt;code&amp;gt;#get_program_data&amp;lt;/code&amp;gt;. It appears in the query string of requests to &amp;lt;code&amp;gt;api.php&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;index.php&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Limits of this check. Please read.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Only &#039;&#039;&#039;GET&#039;&#039;&#039; requests show the payload in the access log. The same attack also works via &#039;&#039;&#039;POST&#039;&#039;&#039;, and POST bodies are not logged. Also look for:&lt;br /&gt;
** requests to &amp;lt;code&amp;gt;api.php&amp;lt;/code&amp;gt; with &amp;lt;code&amp;gt;meta=siteinfo&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;siprop=extensions&amp;lt;/code&amp;gt; (probing for ExternalData), followed by&lt;br /&gt;
** bursts of &amp;lt;code&amp;gt;POST /w/api.php&amp;lt;/code&amp;gt; from the same IP within a few seconds.&lt;br /&gt;
&lt;br /&gt;
* Attackers may URL-encode letters of the parser function name. If in doubt, run the decoded search on the whole log.&lt;br /&gt;
* A missing hit does &#039;&#039;&#039;not&#039;&#039;&#039; prove that no attack happened, for example if the logs were already rotated.&lt;br /&gt;
&lt;br /&gt;
=== Mitigation: disable Extension:ExternalData ===&lt;br /&gt;
The extension is loaded by this line:&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
wfLoadExtension( &#039;ExternalData&#039; );&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Where it is:&lt;br /&gt;
&lt;br /&gt;
* BlueSpice 4: &amp;lt;code&amp;gt;/app/bluespice/w/settings.d/050-BlueSpiceSemanticData.php&amp;lt;/code&amp;gt;&lt;br /&gt;
* BlueSpice 5: &amp;lt;code&amp;gt;/app/bluespice/w/settings.d/040-BlueSpiceProDistribution.php&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The exact line number depends on the version.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Do not simply edit the file inside the running container.&#039;&#039;&#039; The change would be lost the next time the container is recreated. We recommend the following options, best first:&lt;br /&gt;
&lt;br /&gt;
==== Mount a patched copy of the settings file ====&lt;br /&gt;
Copy the settings file out of the container, comment out the line and mount it read-only:&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# BlueSpice 5 – use 050-BlueSpiceSemanticData.php for BlueSpice 4&lt;br /&gt;
docker cp bluespice-wiki-web:/app/bluespice/w/settings.d/040-BlueSpiceProDistribution.php ./&lt;br /&gt;
sed -i &amp;quot;s|^wfLoadExtension( &#039;ExternalData&#039; );|#wfLoadExtension( &#039;ExternalData&#039; ); #Disabled due to https://www.strix.ai/cve/CVE-2026-100382|&amp;quot; 040-BlueSpiceProDistribution.php&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
services:&lt;br /&gt;
  wiki-web:&lt;br /&gt;
    volumes:&lt;br /&gt;
      - ./040-BlueSpiceProDistribution.php:/app/bluespice/w/settings.d/040-BlueSpiceProDistribution.php:ro&lt;br /&gt;
  # same for wiki-task and wiki-installer&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&#039;&#039;&#039;Drawback:&#039;&#039;&#039; the copied file is tied to the exact image version. After an update it would overwrite the new version&#039;s file. Remove this mount before or together with the next update. For this reason option B is preferred.&lt;br /&gt;
&lt;br /&gt;
==== Effects of disabling ====&lt;br /&gt;
Pages that use &amp;lt;code&amp;gt;#get_web_data&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;#get_db_data&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;#external_value&amp;lt;/code&amp;gt; or similar functions of ExternalData will show the parser function as plain text or no data until the extension is enabled again in a fixed version. No content is lost.&lt;br /&gt;
&lt;br /&gt;
=== Recreate the container stack ===&lt;br /&gt;
A plain &amp;lt;code&amp;gt;restart&amp;lt;/code&amp;gt; is &#039;&#039;&#039;not&#039;&#039;&#039; sufficient. It keeps the existing, possibly manipulated container file system. The containers must be removed and created again from the image:&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /path/to/bluespice-deploy/compose&lt;br /&gt;
./bluespice-deploy down&lt;br /&gt;
./bluespice-deploy up -d&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;{{Textbox|boxtype=important|header=|text=&#039;&#039;&#039;Never&#039;&#039;&#039; use &amp;lt;code&amp;gt;down -v&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;down --volumes&amp;lt;/code&amp;gt;. Also do not delete &amp;lt;code&amp;gt;${DATADIR}&amp;lt;/code&amp;gt;. That would delete the persistent wiki data.|icon=yes}}Recreating the containers removes everything an attacker changed &#039;&#039;&#039;inside&#039;&#039;&#039; the containers. It does &#039;&#039;&#039;not&#039;&#039;&#039; clean the persistent data in &amp;lt;code&amp;gt;${DATADIR}&amp;lt;/code&amp;gt; (database, uploads, configuration files on the volume). Check those as described in section 7. &#039;&#039;&#039;Verify&#039;&#039;&#039; that the extension is disabled:&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker exec bluespice-wiki-web grep -rn &amp;quot;ExternalData&amp;quot; /app/bluespice/w/settings.d/&lt;br /&gt;
# Must NOT list &amp;quot;External Data&amp;quot;:&lt;br /&gt;
curl -s &amp;quot;https://&amp;lt;your-wiki&amp;gt;/w/api.php?action=query&amp;amp;meta=siteinfo&amp;amp;siprop=extensions&amp;amp;format=json&amp;quot; | grep -i &#039;external data&#039; \&lt;br /&gt;
  || echo &amp;quot;OK: ExternalData not loaded&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;If &amp;lt;code&amp;gt;read&amp;lt;/code&amp;gt; requires a login, run the API check in a logged-in browser session.&lt;br /&gt;
&lt;br /&gt;
=== Check for compromise in persistent data ===&lt;br /&gt;
&amp;lt;code&amp;gt;DATADIR&amp;lt;/code&amp;gt; refers to the value in &amp;lt;code&amp;gt;compose/.env&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Files ====&lt;br /&gt;
To check whether uploaded files were replaced, compare the file hashes with a backup from &#039;&#039;&#039;before 2026-09-25&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
MediaWiki also stores a SHA-1 of every file version in the database (&amp;lt;code&amp;gt;img_sha1&amp;lt;/code&amp;gt;, base-36). &amp;lt;code&amp;gt;php maintenance/run.php checkImages&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;wiki-task&amp;lt;/code&amp;gt; reports files whose size does not match the database.&lt;br /&gt;
&lt;br /&gt;
==== Database ====&lt;br /&gt;
Direct database changes bypass the wiki log. Changes made through the wiki (edits, uploads) show up in &amp;lt;code&amp;gt;Special:RecentChanges&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;Special:Log&amp;lt;/code&amp;gt;. &#039;&#039;&#039;MySQL/MariaDB logs:&#039;&#039;&#039; the database logs are in &amp;lt;code&amp;gt;${DATADIR}/database/logs&amp;lt;/code&amp;gt;. Check whether binary logs (&amp;lt;code&amp;gt;log_bin&amp;lt;/code&amp;gt;) or the general query log are enabled&lt;br /&gt;
&lt;br /&gt;
If binary logs exist, save them to the evidence directory and analyse the exposure window. Binary logs only record writes. Reads (data theft) cannot be seen there.&lt;br /&gt;
&lt;br /&gt;
=== If you found traces of compromise ===&lt;br /&gt;
&lt;br /&gt;
# Remove found web shells and restore manipulated files from a backup created &#039;&#039;&#039;before 2026-09-25&#039;&#039;&#039;. Put &amp;lt;code&amp;gt;pre-/post-init-settings.php&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;.wikienv&amp;lt;/code&amp;gt; back to known-good content.&lt;br /&gt;
# &#039;&#039;&#039;Rotate all secrets&#039;&#039;&#039;:&lt;br /&gt;
#* DB passwords (&amp;lt;code&amp;gt;DB_PASS&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DB_ROOT_PASS&amp;lt;/code&amp;gt;). Change them in the database &#039;&#039;&#039;and&#039;&#039;&#039; in &amp;lt;code&amp;gt;compose/.env&amp;lt;/code&amp;gt;.&lt;br /&gt;
#* All files in &amp;lt;code&amp;gt;${DATADIR}/.secrets/&amp;lt;/code&amp;gt;, for example with &amp;lt;code&amp;gt;openssl rand -hex 32 &amp;gt; …&amp;lt;/code&amp;gt; per file.&lt;br /&gt;
#* OAuth key pair (&amp;lt;code&amp;gt;oauth_private.key&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;oauth_public.key&amp;lt;/code&amp;gt;), SAML SP certificate (&amp;lt;code&amp;gt;simplesamlphp/certs&amp;lt;/code&amp;gt;)&lt;br /&gt;
#* SMTP, LDAP/AD bind account, search credentials, API keys of AI providers, Slack/Teams/Rocket.Chat tokens&lt;br /&gt;
#* Passwords of all administrators. Ask all users to change their passwords. Also have them re-enroll two-factor authentication, because the TOTP secrets may be exposed.&lt;br /&gt;
# &#039;&#039;&#039;Invalidate all sessions&#039;&#039;&#039;: add this to &amp;lt;code&amp;gt;post-init-settings.php&amp;lt;/code&amp;gt;:&lt;br /&gt;
#: &amp;lt;code&amp;gt;$GLOBALS[&#039;wgAuthenticationTokenVersion&#039;] = &amp;quot;2&amp;quot;;&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Then recreate the stack. This logs out everybody.&lt;br /&gt;
# Remove any backdoor accounts, bot passwords and OAuth consumers you found. Revert manipulated interface pages.&lt;br /&gt;
# Check the host and the network for unusual activity: outgoing connections of the Docker host, firewall logs and access to internal systems from the Docker network.&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Security:Security_Advisories/BSSA-2026-06&amp;diff=14816</id>
		<title>Security:Security Advisories/BSSA-2026-06</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Security:Security_Advisories/BSSA-2026-06&amp;diff=14816"/>
		<updated>2026-09-28T13:44:18Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|Date&lt;br /&gt;
|2026-09-28&lt;br /&gt;
|-&lt;br /&gt;
|Severity&lt;br /&gt;
|reported &amp;quot;critical&amp;quot;, BlueSpice assessment: &#039;&#039;&#039;critical&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|Affected&lt;br /&gt;
|&amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; Docker image (all versions)&lt;br /&gt;
|-&lt;br /&gt;
|Fixed in&lt;br /&gt;
|Unknown&lt;br /&gt;
|-&lt;br /&gt;
|CVE&lt;br /&gt;
|&lt;br /&gt;
* [https://access.redhat.com/security/cve/cve-2026-100382 CVE-2026-100382]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Problem ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
!&#039;&#039;&#039;CVE&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Component&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Type of vulnerability&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;BlueSpice 5&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2026-100382&lt;br /&gt;
|&amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt;&lt;br /&gt;
|Remote Code Execution&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-purple-bg&amp;quot; |affected&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Impact assessment ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
!CVE&lt;br /&gt;
!Assessment&lt;br /&gt;
!Mitigation without update&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |CVE-2026-100382&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; class=&amp;quot;col-purple-bg&amp;quot; |Attackers with &amp;quot;read&amp;quot; permission can execute arbitrary commands in context of the &amp;lt;code&amp;gt;wiki-web&amp;lt;/code&amp;gt; container&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |Deactivate Extension:ExternalData&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Solution ==&lt;br /&gt;
&lt;br /&gt;
=== Timeline and exposure window ===&lt;br /&gt;
&lt;br /&gt;
* 2026-09-25: CVE published. A fix exists upstream in ExternalData 3.7.&lt;br /&gt;
* From 2026-09-26: mass automated scanning and exploitation, observed by us and other MediaWiki operators.&lt;br /&gt;
* Assume the exposure window runs &#039;&#039;&#039;from 2026-09-25 until the moment you applied the mitigation below&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== 2. Secure the evidence first ===&lt;br /&gt;
&lt;br /&gt;
{{Textbox|boxtype=important|header=&#039;&#039;&#039;Important:&#039;&#039;&#039; &amp;lt;code&amp;gt;docker compose down&amp;lt;/code&amp;gt; removes the containers &#039;&#039;&#039;and their logs&#039;&#039;&#039;|text=The nginx access log of &amp;lt;code&amp;gt;wiki-web&amp;lt;/code&amp;gt; is written to stdout, so it only exists in the Docker log of the container. Save the evidence &#039;&#039;&#039;before&#039;&#039;&#039; you restart anything|icon=yes}}&lt;br /&gt;
&lt;br /&gt;
=== 3. Detect an attack in the logs ===&lt;br /&gt;
Exploitation uses the parser function &amp;lt;code&amp;gt;#get_program_data&amp;lt;/code&amp;gt;. It appears in the query string of requests to &amp;lt;code&amp;gt;api.php&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;index.php&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Limits of this check. Please read.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Only &#039;&#039;&#039;GET&#039;&#039;&#039; requests show the payload in the access log. The same attack also works via &#039;&#039;&#039;POST&#039;&#039;&#039;, and POST bodies are not logged. Also look for:&lt;br /&gt;
** requests to &amp;lt;code&amp;gt;api.php&amp;lt;/code&amp;gt; with &amp;lt;code&amp;gt;meta=siteinfo&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;siprop=extensions&amp;lt;/code&amp;gt; (probing for ExternalData), followed by&lt;br /&gt;
** bursts of &amp;lt;code&amp;gt;POST /w/api.php&amp;lt;/code&amp;gt; from the same IP within a few seconds.&lt;br /&gt;
&lt;br /&gt;
* Attackers may URL-encode letters of the parser function name. If in doubt, run the decoded search on the whole log.&lt;br /&gt;
* A missing hit does &#039;&#039;&#039;not&#039;&#039;&#039; prove that no attack happened, for example if the logs were already rotated.&lt;br /&gt;
&lt;br /&gt;
=== Mitigation: disable Extension:ExternalData ===&lt;br /&gt;
The extension is loaded by this line:&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
wfLoadExtension( &#039;ExternalData&#039; );&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Where it is:&lt;br /&gt;
&lt;br /&gt;
* BlueSpice 4: &amp;lt;code&amp;gt;/app/bluespice/w/settings.d/050-BlueSpiceSemanticData.php&amp;lt;/code&amp;gt;&lt;br /&gt;
* BlueSpice 5: &amp;lt;code&amp;gt;/app/bluespice/w/settings.d/040-BlueSpiceProDistribution.php&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The exact line number depends on the version.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Do not simply edit the file inside the running container.&#039;&#039;&#039; The change would be lost the next time the container is recreated. We recommend the following options, best first:&lt;br /&gt;
&lt;br /&gt;
==== Mount a patched copy of the settings file ====&lt;br /&gt;
Copy the settings file out of the container, comment out the line and mount it read-only:&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# BlueSpice 5 – use 050-BlueSpiceSemanticData.php for BlueSpice 4&lt;br /&gt;
docker cp bluespice-wiki-web:/app/bluespice/w/settings.d/040-BlueSpiceProDistribution.php ./&lt;br /&gt;
sed -i &amp;quot;s|^wfLoadExtension( &#039;ExternalData&#039; );|#wfLoadExtension( &#039;ExternalData&#039; ); #Disabled due to https://www.strix.ai/cve/CVE-2026-100382|&amp;quot; 040-BlueSpiceProDistribution.php&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
services:&lt;br /&gt;
  wiki-web:&lt;br /&gt;
    volumes:&lt;br /&gt;
      - ./040-BlueSpiceProDistribution.php:/app/bluespice/w/settings.d/040-BlueSpiceProDistribution.php:ro&lt;br /&gt;
  # same for wiki-task and wiki-installer&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&#039;&#039;&#039;Drawback:&#039;&#039;&#039; the copied file is tied to the exact image version. After an update it would overwrite the new version&#039;s file. Remove this mount before or together with the next update. For this reason option B is preferred.&lt;br /&gt;
&lt;br /&gt;
==== Effects of disabling ====&lt;br /&gt;
Pages that use &amp;lt;code&amp;gt;#get_web_data&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;#get_db_data&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;#external_value&amp;lt;/code&amp;gt; or similar functions of ExternalData will show the parser function as plain text or no data until the extension is enabled again in a fixed version. No content is lost.&lt;br /&gt;
&lt;br /&gt;
=== Recreate the container stack ===&lt;br /&gt;
A plain &amp;lt;code&amp;gt;restart&amp;lt;/code&amp;gt; is &#039;&#039;&#039;not&#039;&#039;&#039; sufficient. It keeps the existing, possibly manipulated container file system. The containers must be removed and created again from the image:&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /path/to/bluespice-deploy/compose&lt;br /&gt;
./bluespice-deploy down&lt;br /&gt;
./bluespice-deploy up -d&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;{{Textbox|boxtype=important|header=|text=&#039;&#039;&#039;Never&#039;&#039;&#039; use &amp;lt;code&amp;gt;down -v&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;down --volumes&amp;lt;/code&amp;gt;. Also do not delete &amp;lt;code&amp;gt;${DATADIR}&amp;lt;/code&amp;gt;. That would delete the persistent wiki data.|icon=yes}}Recreating the containers removes everything an attacker changed &#039;&#039;&#039;inside&#039;&#039;&#039; the containers. It does &#039;&#039;&#039;not&#039;&#039;&#039; clean the persistent data in &amp;lt;code&amp;gt;${DATADIR}&amp;lt;/code&amp;gt; (database, uploads, configuration files on the volume). Check those as described in section 7. &#039;&#039;&#039;Verify&#039;&#039;&#039; that the extension is disabled:&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker exec bluespice-wiki-web grep -rn &amp;quot;ExternalData&amp;quot; /app/bluespice/w/settings.d/&lt;br /&gt;
# Must NOT list &amp;quot;External Data&amp;quot;:&lt;br /&gt;
curl -s &amp;quot;https://&amp;lt;your-wiki&amp;gt;/w/api.php?action=query&amp;amp;meta=siteinfo&amp;amp;siprop=extensions&amp;amp;format=json&amp;quot; | grep -i &#039;external data&#039; \&lt;br /&gt;
  || echo &amp;quot;OK: ExternalData not loaded&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;If &amp;lt;code&amp;gt;read&amp;lt;/code&amp;gt; requires a login, run the API check in a logged-in browser session.&lt;br /&gt;
&lt;br /&gt;
=== Check for compromise in persistent data ===&lt;br /&gt;
&amp;lt;code&amp;gt;DATADIR&amp;lt;/code&amp;gt; refers to the value in &amp;lt;code&amp;gt;compose/.env&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Files ====&lt;br /&gt;
To check whether uploaded files were replaced, compare the file hashes with a backup from &#039;&#039;&#039;before 2026-09-25&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
MediaWiki also stores a SHA-1 of every file version in the database (&amp;lt;code&amp;gt;img_sha1&amp;lt;/code&amp;gt;, base-36). &amp;lt;code&amp;gt;php maintenance/run.php checkImages&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;wiki-task&amp;lt;/code&amp;gt; reports files whose size does not match the database.&lt;br /&gt;
&lt;br /&gt;
==== Database ====&lt;br /&gt;
Direct database changes bypass the wiki log. Changes made through the wiki (edits, uploads) show up in &amp;lt;code&amp;gt;Special:RecentChanges&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;Special:Log&amp;lt;/code&amp;gt;. &#039;&#039;&#039;MySQL/MariaDB logs:&#039;&#039;&#039; the database logs are in &amp;lt;code&amp;gt;${DATADIR}/database/logs&amp;lt;/code&amp;gt;. Check whether binary logs (&amp;lt;code&amp;gt;log_bin&amp;lt;/code&amp;gt;) or the general query log are enabled&lt;br /&gt;
&lt;br /&gt;
If binary logs exist, save them to the evidence directory and analyse the exposure window. Binary logs only record writes. Reads (data theft) cannot be seen there.&lt;br /&gt;
&lt;br /&gt;
=== If you found traces of compromise ===&lt;br /&gt;
&lt;br /&gt;
# Remove found web shells and restore manipulated files from a backup created &#039;&#039;&#039;before 2026-09-25&#039;&#039;&#039;. Put &amp;lt;code&amp;gt;pre-/post-init-settings.php&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;.wikienv&amp;lt;/code&amp;gt; back to known-good content.&lt;br /&gt;
# &#039;&#039;&#039;Rotate all secrets&#039;&#039;&#039;:&lt;br /&gt;
#* DB passwords (&amp;lt;code&amp;gt;DB_PASS&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DB_ROOT_PASS&amp;lt;/code&amp;gt;). Change them in the database &#039;&#039;&#039;and&#039;&#039;&#039; in &amp;lt;code&amp;gt;compose/.env&amp;lt;/code&amp;gt;.&lt;br /&gt;
#* All files in &amp;lt;code&amp;gt;${DATADIR}/.secrets/&amp;lt;/code&amp;gt;, for example with &amp;lt;code&amp;gt;openssl rand -hex 32 &amp;gt; …&amp;lt;/code&amp;gt; per file.&lt;br /&gt;
#* OAuth key pair (&amp;lt;code&amp;gt;oauth_private.key&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;oauth_public.key&amp;lt;/code&amp;gt;), SAML SP certificate (&amp;lt;code&amp;gt;simplesamlphp/certs&amp;lt;/code&amp;gt;)&lt;br /&gt;
#* SMTP, LDAP/AD bind account, search credentials, API keys of AI providers, Slack/Teams/Rocket.Chat tokens&lt;br /&gt;
#* Passwords of all administrators. Ask all users to change their passwords. Also have them re-enroll two-factor authentication, because the TOTP secrets may be exposed.&lt;br /&gt;
# &#039;&#039;&#039;Invalidate all sessions&#039;&#039;&#039;: add this to &amp;lt;code&amp;gt;post-init-settings.php&amp;lt;/code&amp;gt;:&lt;br /&gt;
#: &amp;lt;code&amp;gt;$GLOBALS[&#039;wgAuthenticationTokenVersion&#039;] = &amp;quot;2&amp;quot;;&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Then recreate the stack. This logs out everybody.&lt;br /&gt;
# Remove any backdoor accounts, bot passwords and OAuth consumers you found. Revert manipulated interface pages.&lt;br /&gt;
# Check the host and the network for unusual activity: outgoing connections of the Docker host, firewall logs and access to internal systems from the Docker network.&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Security:Security_Advisories/BSSA-2026-06&amp;diff=14815</id>
		<title>Security:Security Advisories/BSSA-2026-06</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Security:Security_Advisories/BSSA-2026-06&amp;diff=14815"/>
		<updated>2026-09-28T12:56:29Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: Created page with &amp;quot;{| class=&amp;quot;wikitable&amp;quot; |+ ! ! |- |Date |2026-09-28 |- |Severity |reported &amp;quot;critical&amp;quot;, BlueSpice assessment: &amp;#039;&amp;#039;&amp;#039;critical&amp;#039;&amp;#039;&amp;#039; |- |Affected |&amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; Docker image (all versions) |- |Fixed in |Unknown |- |CVE | * [https://access.redhat.com/security/cve/cve-2026-100382 CVE-2026-100382] |}  == Problem == {| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 100%;&amp;quot; !&amp;#039;&amp;#039;&amp;#039;CVE&amp;#039;&amp;#039;&amp;#039; !&amp;#039;&amp;#039;&amp;#039;Component&amp;#039;&amp;#039;&amp;#039; !&amp;#039;&amp;#039;&amp;#039;Type of vulnerability&amp;#039;&amp;#039;&amp;#039; !&amp;#039;&amp;#039;&amp;#039;BlueSpice 5&amp;#039;&amp;#039;&amp;#039; |- |CVE-2026-100382 |&amp;lt;code&amp;gt;bluespice/wiki...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|Date&lt;br /&gt;
|2026-09-28&lt;br /&gt;
|-&lt;br /&gt;
|Severity&lt;br /&gt;
|reported &amp;quot;critical&amp;quot;, BlueSpice assessment: &#039;&#039;&#039;critical&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|Affected&lt;br /&gt;
|&amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; Docker image (all versions)&lt;br /&gt;
|-&lt;br /&gt;
|Fixed in&lt;br /&gt;
|Unknown&lt;br /&gt;
|-&lt;br /&gt;
|CVE&lt;br /&gt;
|&lt;br /&gt;
* [https://access.redhat.com/security/cve/cve-2026-100382 CVE-2026-100382]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Problem ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
!&#039;&#039;&#039;CVE&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Component&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Type of vulnerability&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;BlueSpice 5&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2026-100382&lt;br /&gt;
|&amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt;&lt;br /&gt;
|Remote Code Execution&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-purple-bg&amp;quot; |affected&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Impact assessment ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
!CVE&lt;br /&gt;
!Assessment&lt;br /&gt;
!Mitigation without update&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |CVE-2026-100382&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; class=&amp;quot;col-purple-bg&amp;quot; |&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Solution ==&lt;br /&gt;
TBD&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Setup:Software_Bill_of_Materials_(SBOM)&amp;diff=14723</id>
		<title>Setup:Software Bill of Materials (SBOM)</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Setup:Software_Bill_of_Materials_(SBOM)&amp;diff=14723"/>
		<updated>2026-08-10T15:06:45Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The BlueSpice Software Bill of Materials (SBOM) is upated for every release. It is formatted according to the [https://spdx.dev/ SPDX specification] and serialized as a JSON file. &lt;br /&gt;
&lt;br /&gt;
== Accessing the SBOM ==&lt;br /&gt;
There are several steps to access and scan the SBOM. The necessary commands expect the following parameters:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Possible values&lt;br /&gt;
|-&lt;br /&gt;
|edition&lt;br /&gt;
|&amp;lt;code&amp;gt;pro&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;farm&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;free&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|version&lt;br /&gt;
|e.g. &amp;lt;code&amp;gt;5.1&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;5.2.6&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|service&lt;br /&gt;
|Services differ depending on edition and version. Common services are:&lt;br /&gt;
&amp;lt;code&amp;gt;wiki&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;proxy&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;cache&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;pdf&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;search&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;diagram&amp;lt;/code&amp;gt;, ...&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Main application image ===&lt;br /&gt;
Pull the &#039;&#039;&#039;application image&#039;&#039;&#039; for the desired edition and version:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;docker pull docker.bluespice.com/bluespice-$edition/wiki:$version&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Inspect the attachments with ORAS ([https://oras.land/docs/commands/oras_login/ oras requires login data]):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;oras discover docker.bluespice.com/bluespice-$edition/wiki:$version&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example output:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;shell-session&amp;quot;&amp;gt;&lt;br /&gt;
&amp;gt; oras discover docker.bluespice.com/bluespice-farm/wiki:5.2.6&lt;br /&gt;
docker.bluespice.com/bluespice-farm/wiki@sha256:c683b74003ebedf40f0aa6c66fe858619dcbb036eeb191d3afc4385c3779260b&lt;br /&gt;
└── application/vnd.cyclonedx+json&lt;br /&gt;
    └── sha256:3d7b0eca2caad4ac8a2f9e939186183722f43923ebdf6c07e38bb1fe58454058&lt;br /&gt;
        └── [annotations]&lt;br /&gt;
            └── org.opencontainers.image.created: &amp;quot;2026-08-03T15:18:42Z&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Download the attachments (provide the actual sha of the attachment, e.g. &amp;lt;code&amp;gt;3d7b0e...58&amp;lt;/code&amp;gt; from the example):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
oras pull docker.bluespice.com/bluespice-$edition/wiki@sha265&#039;shaofattachements&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Companion service images ===&lt;br /&gt;
Pull the image for the desired version:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;docker pull docker.bluespice.com/bluespice/$service:$version&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Inspect the attachments:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;oras discover docker.bluespice.com/bluespice/$service:$version&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Download the attachments (provide the actual sha of the attachment)&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
oras pull docker.bluespice.com/bluespice/$service@sha265&#039;shaofattachements&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Perform a security scan ===&lt;br /&gt;
The previous commands have created a ​ &amp;lt;code&amp;gt;sbom.json&amp;lt;/code&amp;gt; file in the local directory. You can now scan it. Below is a scanning example for &amp;lt;code&amp;gt;trivy&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker run --rm \&lt;br /&gt;
    -v &amp;quot;$PWD:/work:ro&amp;quot; \&lt;br /&gt;
    aquasec/trivy \&lt;br /&gt;
    sbom \&lt;br /&gt;
    --severity CRITICAL \&lt;br /&gt;
    --ignore-unfixed \&lt;br /&gt;
    --exit-code 1 \&lt;br /&gt;
    /work/sbom.json&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[de:Setup:Software_Bill_of_Materials_(SBOM)]]&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Setup:Software_Bill_of_Materials_(SBOM)&amp;diff=14714</id>
		<title>Setup:Software Bill of Materials (SBOM)</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Setup:Software_Bill_of_Materials_(SBOM)&amp;diff=14714"/>
		<updated>2026-08-07T14:12:27Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The BlueSpice Software Bill of Materials (SBOM) is upated for every release. It is formatted according to the [https://spdx.dev/ SPDX specification] and serialized as a JSON file. &lt;br /&gt;
&lt;br /&gt;
== Accessing the SBOM ==&lt;br /&gt;
There are several steps to access and scan the SBOM. The necessary commands expect the following parameters:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Possible values&lt;br /&gt;
|-&lt;br /&gt;
|edition&lt;br /&gt;
|pro, farm, free&lt;br /&gt;
|-&lt;br /&gt;
|version&lt;br /&gt;
|e.g. 5.1, 5.4.3&lt;br /&gt;
|-&lt;br /&gt;
|service&lt;br /&gt;
|Services differ depending on edition and version. Common services are:&lt;br /&gt;
wiki-task, proxy, cache, pdf, search, formula, diagram,...&lt;br /&gt;
|}&lt;br /&gt;
First, pull the &#039;&#039;&#039;application image&#039;&#039;&#039; for the desired edition and version:&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;docker pull docker.bluespice.com/bluespice-$edition/wiki:$version&amp;lt;/syntaxhighlight&amp;gt;Then, inspect the attachments with ORAS ([https://oras.land/docs/commands/oras_login/ oras requires login data]):&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;oras discover docker.bluespice.com/bluespice-$edition/wiki:$version&amp;lt;/syntaxhighlight&amp;gt;Do the same for &#039;&#039;&#039;service images&#039;&#039;&#039;:&amp;lt;br /&amp;gt;Pull the image:&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;docker pull docker.bluespice.com/bluespice/$service:$version&amp;lt;/syntaxhighlight&amp;gt;Inspect the attachments:&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;oras discover docker.bluespice.com/bluespice/$service:$version&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example:&amp;lt;syntaxhighlight lang=&amp;quot;shell-session&amp;quot;&amp;gt;&lt;br /&gt;
&amp;gt; oras discover docker.bluespice.com/bluespice-farm/wiki:5.2.6&lt;br /&gt;
docker.bluespice.com/bluespice-farm/wiki@sha256:c683b74003ebedf40f0aa6c66fe858619dcbb036eeb191d3afc4385c3779260b&lt;br /&gt;
└── application/vnd.cyclonedx+json&lt;br /&gt;
    └── sha256:3d7b0eca2caad4ac8a2f9e939186183722f43923ebdf6c07e38bb1fe58454058&lt;br /&gt;
        └── [annotations]&lt;br /&gt;
            └── org.opencontainers.image.created: &amp;quot;2026-08-03T15:18:42Z&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Download the attachments (provide the actual sha of the attachment, e.g. &amp;lt;code&amp;gt;3d7b0e...58&amp;lt;/code&amp;gt; from the example):&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
oras pull docker.bluespice.com/bluespice-$edition/wiki@sha265&#039;shaofattachements&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;or for services:&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
oras pull docker.bluespice.com/bluespice/$service@sha265&#039;shaofattachements&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The SBOM file is located in your current folder as &amp;lt;code&amp;gt;sbom.json&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can now scan your SBOM files.  Below is a scanning example for Trivy:&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker run --rm \&lt;br /&gt;
    -v &amp;quot;$PWD:/work:ro&amp;quot; \&lt;br /&gt;
    aquasec/trivy \&lt;br /&gt;
    sbom \&lt;br /&gt;
    --severity CRITICAL \&lt;br /&gt;
    --ignore-unfixed \&lt;br /&gt;
    --exit-code 1 \&lt;br /&gt;
    /work/sbom.json&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[de:Setup:Software_Bill_of_Materials_(SBOM)]]&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Setup:Software_Bill_of_Materials_(SBOM)&amp;diff=14713</id>
		<title>Setup:Software Bill of Materials (SBOM)</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Setup:Software_Bill_of_Materials_(SBOM)&amp;diff=14713"/>
		<updated>2026-08-07T14:07:02Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The BlueSpice Software Bill of Materials (SBOM) is upated for every release. It is formatted according to the [https://spdx.dev/ SPDX specification] and serialized as a JSON file. &lt;br /&gt;
&lt;br /&gt;
== Accessing the SBOM ==&lt;br /&gt;
There are several steps to access and scan the SBOM. The necessary commands expect the following parameters:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Possible values&lt;br /&gt;
|-&lt;br /&gt;
|edition&lt;br /&gt;
|pro, farm, free&lt;br /&gt;
|-&lt;br /&gt;
|version&lt;br /&gt;
|e.g. 5.1, 5.4.3&lt;br /&gt;
|-&lt;br /&gt;
|service&lt;br /&gt;
|Services differ depending on edition and version. Common services are:&lt;br /&gt;
wiki-task, proxy, cache, pdf, search, formula, diagram,...&lt;br /&gt;
|}&lt;br /&gt;
First, pull the &#039;&#039;&#039;application image&#039;&#039;&#039; for the desired edition and version:&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;docker pull docker.bluespice.com/bluespice-$edition/wiki:$version&amp;lt;/syntaxhighlight&amp;gt;Then, inspect the attachments with ORAS ([https://oras.land/docs/commands/oras_login/ oras requires login data]):&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;oras discover docker.bluespice.com/bluespice-$edition/wiki:$version&amp;lt;/syntaxhighlight&amp;gt;Do the same for &#039;&#039;&#039;service images&#039;&#039;&#039;:&amp;lt;br /&amp;gt;Pull the image:&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;docker pull docker.bluespice.com/bluespice/$service:$version&amp;lt;/syntaxhighlight&amp;gt;Inspect the attachments:&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;oras discover docker.bluespice.com/bluespice/$service:$version&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Download the attachments (provide the actual sha of the attachment):&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
oras pull docker.bluespice.com/bluespice-$edition/wiki@sha265&#039;shaofattachements&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;or for services:&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
oras pull docker.bluespice.com/bluespice/$service@sha265&#039;shaofattachements&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The SBOM file is located in your current folder as &amp;lt;code&amp;gt;sbom.json&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can now scan your SBOM files.  Below is a scanning example for Trivy:&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker run --rm \&lt;br /&gt;
    -v &amp;quot;$PWD:/work:ro&amp;quot; \&lt;br /&gt;
    aquasec/trivy \&lt;br /&gt;
    sbom \&lt;br /&gt;
    --severity CRITICAL \&lt;br /&gt;
    --ignore-unfixed \&lt;br /&gt;
    --exit-code 1 \&lt;br /&gt;
    /work/sbom.json&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[de:Setup:Software_Bill_of_Materials_(SBOM)]]&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Setup:Software_Bill_of_Materials_(SBOM)&amp;diff=14712</id>
		<title>Setup:Software Bill of Materials (SBOM)</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Setup:Software_Bill_of_Materials_(SBOM)&amp;diff=14712"/>
		<updated>2026-08-07T14:06:31Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The BlueSpice Software Bill of Materials (SBOM) is upated for every release. It is formatted according to the [https://spdx.dev/ SPDX specification] and serialized as a JSON file. &lt;br /&gt;
&lt;br /&gt;
== Accessing the SBOM ==&lt;br /&gt;
There are several steps to access and scan the SBOM. The necessary commands expect the following parameters:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Possible values&lt;br /&gt;
|-&lt;br /&gt;
|edition&lt;br /&gt;
|pro, farm, free&lt;br /&gt;
|-&lt;br /&gt;
|version&lt;br /&gt;
|e.g. 5.1, 5.4.3&lt;br /&gt;
|-&lt;br /&gt;
|service&lt;br /&gt;
|Services differ depending on edition and version. Common services are:&lt;br /&gt;
wiki-task, proxy, cache, pdf, search, formula, diagram,...&lt;br /&gt;
|}&lt;br /&gt;
First, pull the &#039;&#039;&#039;application image&#039;&#039;&#039; for the desired edition and version:&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;docker pull docker.bluespice.com/bluespice-$edition/wiki:$version&amp;lt;/syntaxhighlight&amp;gt;Then, inspect the attachments with ORAS ([https://oras.land/docs/commands/oras_login/ oras requires login data]):&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;oras discover docker.bluespice.com/bluespice-$edition/wiki:$version&amp;lt;/syntaxhighlight&amp;gt;Do the same for &#039;&#039;&#039;service images&#039;&#039;&#039;:&amp;lt;br /&amp;gt;Pull the image:&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;docker pull docker.bluespice.com/bluespice/$service:$version&amp;lt;/syntaxhighlight&amp;gt;Inspect the attachments:&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;oras discover docker.bluespice.com/bluespice/$service:$version&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Download the attachments (provide the actual sha of the attachment):&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
oras pull docker.bluespice.com/bluespice-$edition/wiki@sha265&#039;shaofattachements&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;or for services:&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
oras pull docker.bluespice.com/bluespice/$service@sha265&#039;shaofattachements&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The SBOM file is located in your current folder as &amp;lt;code&amp;gt;sbom.json&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can now scan your SBOM files.  Below is a scanning example for Trivy:&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker run --rm \&lt;br /&gt;
    -v &amp;quot;$PWD:/work:ro&amp;quot; \&lt;br /&gt;
    aquasec/trivy:0.72.0 \&lt;br /&gt;
    sbom \&lt;br /&gt;
    --severity CRITICAL \&lt;br /&gt;
    --ignore-unfixed \&lt;br /&gt;
    --exit-code 1 \&lt;br /&gt;
    /work/sbom.json&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[de:Setup:Software_Bill_of_Materials_(SBOM)]]&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Setup:Software_Bill_of_Materials_(SBOM)&amp;diff=14711</id>
		<title>Setup:Software Bill of Materials (SBOM)</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Setup:Software_Bill_of_Materials_(SBOM)&amp;diff=14711"/>
		<updated>2026-08-07T13:18:27Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The BlueSpice Software Bill of Materials (SBOM) is upated for every release. It is formatted according to the [https://spdx.dev/ SPDX specification] and serialized as a JSON file. &lt;br /&gt;
&lt;br /&gt;
== Accessing the SBOM ==&lt;br /&gt;
There are several steps to access and scan the SBOM. The necessary commands expect the following parameters:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Possible values&lt;br /&gt;
|-&lt;br /&gt;
|edition&lt;br /&gt;
|pro, farm, free&lt;br /&gt;
|-&lt;br /&gt;
|version&lt;br /&gt;
|e.g. 5.1, 5.4.3&lt;br /&gt;
|-&lt;br /&gt;
|service&lt;br /&gt;
|Services differ depending on edition and version. Common services are:&lt;br /&gt;
wiki-task, proxy, cache, pdf, search, formula, diagram,...&lt;br /&gt;
|}&lt;br /&gt;
First, pull the &#039;&#039;&#039;application image&#039;&#039;&#039; for the desired edition and version:&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;docker pull docker.bluespice.com/bluespice-$edition/wiki:$version&amp;lt;/syntaxhighlight&amp;gt;Then, inspect the attachments with ORAS ([https://oras.land/docs/commands/oras_login/ oras requires login data]):&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;oras discover docker.bluespice.com/bluespice-$edition/wiki:$version&amp;lt;/syntaxhighlight&amp;gt;Do the same for &#039;&#039;&#039;service images&#039;&#039;&#039;:&amp;lt;br /&amp;gt;Pull the image:&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;docker pull docker.bluespice.com/bluespice/$service:$version&amp;lt;/syntaxhighlight&amp;gt;Inspect the attachments:&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;oras discover docker.bluespice.com/bluespice/$service:$version&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Download the attachments (provide the actual sha-string):&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
oras pull docker.bluespice.com/bluespice-$edition/wiki@sha265&#039;shaofattachements&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;or for services:&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
oras pull docker.bluespice.com/bluespice/$service@sha265&#039;shaofattachements&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The SBOM file is located in your current folder as &amp;lt;code&amp;gt;sbom.json&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can now scan your SBOM files.  Below is a scanning example for Trivy:&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker run --rm \ -v &amp;quot;$PWD:/work:ro&amp;quot; \ aquasec/trivy:0.72.0 \ sbom \ --severity CRITICAL \ --ignore-unfixed \ --exit-code 1 \ /work/sbom.json&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[de:Setup:Software_Bill_of_Materials_(SBOM)]]&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Setup:Software_Bill_of_Materials_(SBOM)&amp;diff=14710</id>
		<title>Setup:Software Bill of Materials (SBOM)</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Setup:Software_Bill_of_Materials_(SBOM)&amp;diff=14710"/>
		<updated>2026-08-07T13:15:27Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The BlueSpice Software Bill of Materials (SBOM) is upated for every release. It is formatted according to the [https://spdx.dev/ SPDX specification] and serialized as a JSON file. &lt;br /&gt;
&lt;br /&gt;
== Accessing the SBOM ==&lt;br /&gt;
There are several steps to access and scan the SBOM. The necessary commands expect the following parameters:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Parameter&lt;br /&gt;
!Possible values&lt;br /&gt;
|-&lt;br /&gt;
|edition&lt;br /&gt;
|pro, farm, free&lt;br /&gt;
|-&lt;br /&gt;
|version&lt;br /&gt;
|e.g. 5.1, 5.4.3&lt;br /&gt;
|-&lt;br /&gt;
|service&lt;br /&gt;
|Services differ depending on edition and version. Common services are:&lt;br /&gt;
wiki-task, proxy, cache, pdf, search, formula, diagram,...&lt;br /&gt;
|}&lt;br /&gt;
First, pull the &#039;&#039;&#039;application image&#039;&#039;&#039; for the desired edition and version:&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;docker pull docker.bluespice.com /bluespice-$edition/wiki:$version&amp;lt;/syntaxhighlight&amp;gt;Then, inspect the attachments with ORAS ([https://oras.land/docs/commands/oras_login/ oras requires login data]):&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;oras discover docker.bluespice.com /bluespice-$edition/wiki:$version&amp;lt;/syntaxhighlight&amp;gt;Do the same for &#039;&#039;&#039;service images&#039;&#039;&#039;:&amp;lt;br /&amp;gt;Pull the image:&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;docker pull docker.bluespice.com/bluespice/$service:$version&amp;lt;/syntaxhighlight&amp;gt;Inspect the attachments:&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;oras discover docker.bluespice.com/bluespice/$service:$version&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Download the attachments (provide the actual sha-string):&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
oras pull docker.bluespice.com /bluespice-$edition/wiki@sha265&#039;shaofattachements&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;or for services:&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
oras pull docker.bluespice.com/bluespice/$service@sha265&#039;shaofattachements&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The SBOM file is located in your current folder as &amp;lt;code&amp;gt;sbom.json&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can now scan your SBOM files.  Below is a scanning example for Trivy:&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker run --rm \ -v &amp;quot;$PWD:/work:ro&amp;quot; \ aquasec/trivy:0.72.0 \ sbom \ --severity CRITICAL \ --ignore-unfixed \ --exit-code 1 \ /work/sbom.json&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[de:Setup:Software_Bill_of_Materials_(SBOM)]]&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Setup:Installation_Guide/Docker&amp;diff=14655</id>
		<title>Setup:Installation Guide/Docker</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Setup:Installation_Guide/Docker&amp;diff=14655"/>
		<updated>2026-08-04T06:02:34Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Overview ==&lt;br /&gt;
Starting with version 4.5, BlueSpice MediaWiki can be installed with a stack of Docker container images. &lt;br /&gt;
&lt;br /&gt;
Everything is built in a modular way to allow different types of setups.&lt;br /&gt;
&lt;br /&gt;
The most common cases are:&lt;br /&gt;
# &amp;quot;All-in-one&amp;quot; (with and without Let&#039;s Encrypt)&lt;br /&gt;
# Custom database and search service&lt;br /&gt;
# Custom load balancer / proxy&lt;br /&gt;
&lt;br /&gt;
== Architecture ==&lt;br /&gt;
&amp;lt;drawio filename=&amp;quot;Setup:Installation_Guide_Docker-Achitecture&amp;quot; alt=&amp;quot;Diagram of BlueSpice Docker Stack Architecture&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Notes&#039;&#039;&#039;&lt;br /&gt;
* Internal HTTP connections may use non-standard ports. Those are noted next to the respective services.&lt;br /&gt;
** HTTP (in-secure) is only used for internal communication within the virtual network the stack is operated in. All connections to the client use TLS.&lt;br /&gt;
* Proprietary ports (esp. for database connections) are noted next to the respective services.&lt;br /&gt;
* There may be additional services and ports in use, based on the setup. Some examples:&lt;br /&gt;
** When using LDAP based authentication an LDAPS connection (port &amp;lt;code&amp;gt;636&amp;lt;/code&amp;gt;) is used from the &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; containers to the LDAP-Server&lt;br /&gt;
** When using Kerberos authentication, a connection (port &amp;lt;code&amp;gt;88&amp;lt;/code&amp;gt;) is used from the &amp;lt;code&amp;gt;bluespice/kerberos-proxy&amp;lt;/code&amp;gt; containers to the Kerberos-Server&lt;br /&gt;
** When using DeepL or OpenAI services, a HTTPS connection (port &amp;lt;code&amp;gt;443&amp;lt;/code&amp;gt;) is used from the &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; containers to to the respective service&lt;br /&gt;
** When using OpenIDConnect authentication, a HTTPS connection (port &amp;lt;code&amp;gt;443&amp;lt;/code&amp;gt;) is used from the &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; &amp;quot;task&amp;quot; container to to the authentication provider&lt;br /&gt;
** When using &amp;quot;Let&#039;s Encrypt&amp;quot; Certbot, a HTTPS connection (port &amp;lt;code&amp;gt;443&amp;lt;/code&amp;gt;) is used from the &amp;lt;code&amp;gt;acme-companion&amp;lt;/code&amp;gt; container to the &amp;quot;Let&#039;s Encrypt&amp;quot; service&lt;br /&gt;
&lt;br /&gt;
== Step 1: Get the stack ==&lt;br /&gt;
Load project &amp;lt;code&amp;gt;bluespice-deploy&amp;lt;/code&amp;gt; from https://github.com/hallowelt/bluespice-deploy/releases/latest and enter the sub-directory &amp;lt;code&amp;gt;compose&amp;lt;/code&amp;gt; for Docker Compose files.&lt;br /&gt;
&lt;br /&gt;
For example, run:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
wget https://github.com/hallowelt/bluespice-deploy/archive/refs/tags/5.2.6.zip \&lt;br /&gt;
  &amp;amp;&amp;amp; unzip 5.2.6.zip \&lt;br /&gt;
  &amp;amp;&amp;amp; cd bluespice-deploy-5.2.6/compose&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{Textbox|boxtype=note|header=Use one consistent version number|text=The tag number 5.2.5 in this command (could be 5.1.9, 5.2.4 etc. as well) should also be used as the &amp;lt;code&amp;gt;VERSION=&amp;lt;/code&amp;gt; number in Step 2.|icon=yes}}&lt;br /&gt;
&lt;br /&gt;
The directory contains the following files:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
! style=&amp;quot;width:375px;&amp;quot; |Filename&lt;br /&gt;
! style=&amp;quot;&amp;quot; |Type&lt;br /&gt;
! style=&amp;quot;&amp;quot; |Comment&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:375px;&amp;quot; |&amp;lt;code&amp;gt;bluespice-deploy&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;&amp;quot; |shell script&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Start-up script, wrapping command &amp;lt;code&amp;gt;docker compose&amp;lt;/code&amp;gt; and service &amp;lt;code&amp;gt;yml&amp;lt;/code&amp;gt; files.&amp;lt;br&amp;gt;Additional service &amp;lt;code&amp;gt;yml&amp;lt;/code&amp;gt; files can be loaded by adding &amp;lt;code&amp;gt;-f &amp;lt;filename&amp;gt; &amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:375px;&amp;quot; |&amp;lt;code&amp;gt;docker-compose.main.yml&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;&amp;quot; |yml&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Main containers of the wiki (&amp;lt;code&amp;gt;wiki-web&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;wiki-task&amp;lt;/code&amp;gt;).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:375px;&amp;quot; |&amp;lt;code&amp;gt;docker-compose.persistent-data-services.yml&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;&amp;quot; |yml&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Containers of database and search services, storing persistent data onto the file system.&amp;lt;br /&amp;gt;Optionally with external MySQL/MariaDB and OpenSearch one can skip loading this &amp;lt;code&amp;gt;.yml&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;bluespice-deploy&amp;lt;/code&amp;gt;. Please then wire your services properly in the &amp;lt;code&amp;gt;.env&amp;lt;/code&amp;gt; file.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:375px;&amp;quot; |&amp;lt;code&amp;gt;docker-compose.stateless-services.yml&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;&amp;quot; |yml&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Containers for caching, PDF rendering, formula-rendering and diagram editing.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:375px;&amp;quot; |&amp;lt;code&amp;gt;docker-compose.helper-service.yml&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;&amp;quot; |yml&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Helper containers for file system preparation and automated BlueSpice upgrade.&amp;lt;br&amp;gt;These containers exit automatically after finishing tasks.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:375px;&amp;quot; |&amp;lt;code&amp;gt;docker-compose.proxy.yml&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;&amp;quot; |yml&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Container of proxy service. Can be replaced by existing proxy/load-balancer infrastructure.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:375px;&amp;quot; |&amp;lt;code&amp;gt;docker-compose.proxy-letsencrypt.yml&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;&amp;quot; |yml&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Additional service for auto-renewal of &amp;quot;Let&#039;s Encrypt&amp;quot; certificates.&amp;lt;br&amp;gt;Only required when using the Let&#039;s Encrypt service and having no other TLS termination.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:375px;&amp;quot; |&amp;lt;code&amp;gt;docker-compose.kerberos-proxy.yml&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;&amp;quot; |yml&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Additional proxy for Kerberos based authentication.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:375px;&amp;quot; |&amp;lt;code&amp;gt;docker-compose.collabpads-service.yml&amp;lt;/code&amp;gt;&lt;br /&gt;
|yml&lt;br /&gt;
|Containers of back-end services for [[Manual:Extension/CollabPads|CollabPads]] (included in Pro and Farm editions).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:375px;&amp;quot; |&amp;lt;code&amp;gt;.env.sample&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;&amp;quot; |text&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Sample for creating &amp;lt;code&amp;gt;.env&amp;lt;/code&amp;gt; that defines key environment variables.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:375px;&amp;quot; |&amp;lt;code&amp;gt;bluespice.service.demo&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;&amp;quot; |service script&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Demo-file for control the BlueSpice stack as a &amp;lt;code&amp;gt;systemctl&amp;lt;/code&amp;gt; service.&amp;lt;br&amp;gt;One can create e.g a &amp;lt;code&amp;gt;/etc/systemd/system/bluespice.service&amp;lt;/code&amp;gt;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Step 2: Set up environment variables ==&lt;br /&gt;
Create your &amp;lt;code&amp;gt;.env&amp;lt;/code&amp;gt; based on the sample file &amp;lt;code&amp;gt;.env.sample&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# set or use your data directory &lt;br /&gt;
DATADIR=/data/bluespice&lt;br /&gt;
VERSION=5.2.5&lt;br /&gt;
EDITION=free&lt;br /&gt;
BACKUP_HOUR=04&lt;br /&gt;
&lt;br /&gt;
WIKI_NAME=BlueSpice&lt;br /&gt;
WIKI_LANG=en&lt;br /&gt;
WIKI_PASSWORDSENDER=no-reply@wiki.company.local&lt;br /&gt;
WIKI_EMERGENCYCONTACT=no-reply@wiki.company.local&lt;br /&gt;
WIKI_HOST=wiki.company.local&lt;br /&gt;
WIKI_PORT=443&lt;br /&gt;
WIKI_PROTOCOL=https&lt;br /&gt;
WIKI_BASE_PATH=&lt;br /&gt;
&lt;br /&gt;
DB_USER=set_or_use_your_db_user_name&lt;br /&gt;
DB_PASS=SET_OR_USE_YOUR_DB_PASS_WORD&lt;br /&gt;
DB_ROOT_USER=root &lt;br /&gt;
DB_ROOT_PASS=$DB_PASS&lt;br /&gt;
DB_HOST=database&lt;br /&gt;
DB_NAME=bluespice&lt;br /&gt;
DB_PREFIX=&lt;br /&gt;
&lt;br /&gt;
SMTP_HOST=mail.company.local&lt;br /&gt;
SMTP_PORT=25&lt;br /&gt;
SMTP_USER=...&lt;br /&gt;
SMTP_PASS=...&lt;br /&gt;
SMTP_ID_HOST=...&lt;br /&gt;
&lt;br /&gt;
LETSENCRYPT=false&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
{{Textbox|boxtype=note|header=Different editions|text=This config works for all editions, but the main image of Pro or Farm edition needs to be obtained differently, see [[{{FULLPAGENAME}}/Pro and Farm edition|Pro and Farm edition]]|icon=yes}}&lt;br /&gt;
&lt;br /&gt;
== Step 3: Start the stack ==&lt;br /&gt;
Use &amp;lt;code&amp;gt;bluespice-deploy up -d&amp;lt;/code&amp;gt; to start the stack. Once all containers are shown as &amp;quot;ready&amp;quot; you can navigate to &amp;lt;code&amp;gt;$WIKI_PROTOCOL://$WIKI_HOST:$WIKI_PORT&amp;lt;/code&amp;gt; (e.g. &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://wiki.company.local&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;) in your preferred web browser and start using the application.&lt;br /&gt;
&lt;br /&gt;
When starting the stack the first time, the &amp;lt;code&amp;gt;wiki-task&amp;lt;/code&amp;gt; container will automatically perform the installation. It may take a couple of minutes for the process to set up the database and complete. Once it is finished, the password for the default &amp;lt;code&amp;gt;Admin&amp;lt;/code&amp;gt; user can be found in &amp;lt;code&amp;gt;$DATADIR/wiki/initialAdminPassword&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Additional options ==&lt;br /&gt;
&lt;br /&gt;
=== Add Customizations to containers ===&lt;br /&gt;
Since tag 5.1.4 and tag 5.2.0 of project &amp;lt;code&amp;gt;bluespice-deploy&amp;lt;/code&amp;gt;, we allow to edit and maintain a separate &amp;lt;code&amp;gt;docker-compose.override.yml&amp;lt;/code&amp;gt;  which will be ignored by git.&lt;br /&gt;
&lt;br /&gt;
This way you can add your own Container-Configurations and be able to maintain your git status up to date. Just place the file next to the other &amp;lt;code&amp;gt;docker-compose.*.yml&amp;lt;/code&amp;gt; s and run &amp;lt;code&amp;gt;./bluespice-deploy up -d&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Example:&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
services:&lt;br /&gt;
  wiki-web:&lt;br /&gt;
    volumes:&lt;br /&gt;
      - /backup/:/data/backup&lt;br /&gt;
  wiki-task:&lt;br /&gt;
    volumes:&lt;br /&gt;
      - /backup/:/data/backup&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Configs for &amp;lt;code&amp;gt;LocalSettings.php&amp;lt;/code&amp;gt; ===&lt;br /&gt;
Instead of exposing the &amp;lt;code&amp;gt;LocalSettings.php&amp;lt;/code&amp;gt; for [[mediawikiwiki:Manual:LocalSettings.php|adding additional configurations]], the stack offers two entry points. After the initial installation, you can add your configs to two files in &amp;lt;code&amp;gt;${DATADIR}/wiki/bluespice/&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;pre-init-settings.php&amp;lt;/code&amp;gt;  - Set configs before the initialization of BlueSpice&#039;s debug logging, libraries, skins, extensions and default settings.  Configs set here can be picked up by the init process.&lt;br /&gt;
* &amp;lt;code&amp;gt;post-init-settings.php&amp;lt;/code&amp;gt; - Set configs after the initialization, manipulating configs that have been set by the init process.&lt;br /&gt;
For example, if you add the following lines to &amp;lt;code&amp;gt;pre-init-settings.php&amp;lt;/code&amp;gt;, you can then read outputted debug logs (if any) in &amp;lt;code&amp;gt;${DATADIR}/wiki/bluespice/logs/debug.log&amp;lt;/code&amp;gt;:&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$GLOBALS[&#039;bsgDebugLogGroups&#039;][&#039;exception&#039;] = &amp;quot;/data/bluespice/logs/debug.log&amp;quot;;&lt;br /&gt;
$wgShowExceptionDetails = true;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Maintenance scripts ===&lt;br /&gt;
To run [[Setup:Installation Guide/Advanced/Maintenance scripts|maintenance scripts]] from MediaWiki or from other extensions, please use the &amp;lt;code&amp;gt;wiki-task&amp;lt;/code&amp;gt; container, which handles all back-end jobs and processes. You can connect into the container in two different ways:&lt;br /&gt;
&lt;br /&gt;
* run &amp;lt;code&amp;gt;./bluespice-deploy exec -it wiki-task bash&amp;lt;/code&amp;gt; in the &amp;lt;code&amp;gt;compose&amp;lt;/code&amp;gt; directory for Docker Compose files&lt;br /&gt;
* or alternatively, run &amp;lt;code&amp;gt;docker exec -it bluespice-wiki-task bash&amp;lt;/code&amp;gt; wherever you are on the host machine&lt;br /&gt;
&lt;br /&gt;
Inside the container you can enter the wiki&#039;s code base with &amp;lt;code&amp;gt;cd /app/bluespice/w&amp;lt;/code&amp;gt; , where one can run scripts like &amp;lt;code&amp;gt;php maintenance/run.php update --quick&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;php extensions/BlueSpiceExtendedSearch/maintenance/updateWikiPageIndex.php&amp;lt;/code&amp;gt; and so on.&lt;br /&gt;
&lt;br /&gt;
=== SSL certificates ===&lt;br /&gt;
To use a Let&#039;s Encrypt certificate for your domain name, set &amp;lt;code&amp;gt;LETSENCRYPT=true&amp;lt;/code&amp;gt; in your &amp;lt;code&amp;gt;.env&amp;lt;/code&amp;gt; file.&lt;br /&gt;
&lt;br /&gt;
To use a self-signend certificate for your domain name, put its &amp;lt;code&amp;gt;.crt&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;.key&amp;lt;/code&amp;gt; files in &amp;lt;code&amp;gt;${DATADIR}/proxy/certs&amp;lt;/code&amp;gt;. For example, with &amp;lt;code&amp;gt;wiki.company.local&amp;lt;/code&amp;gt; you should prepare &amp;lt;code&amp;gt;wiki.company.local.crt&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;wiki.company.local.key&amp;lt;/code&amp;gt; files.&lt;br /&gt;
&lt;br /&gt;
=== Kerberos proxy ===&lt;br /&gt;
For implicit authentication using Kerberos, an additional proxy must be used: &amp;lt;code&amp;gt;bluespice/kerberos-proxy&amp;lt;/code&amp;gt; . The file &amp;lt;code&amp;gt;docker-compose.kerberos-proxy.yml&amp;lt;/code&amp;gt; contains a common configuration. It can be used &#039;&#039;&#039;instead of&#039;&#039;&#039; the regular &amp;lt;code&amp;gt;docker-compose.proxy.yml&amp;lt;/code&amp;gt; file inside &amp;lt;code&amp;gt;bluespice-deploy&amp;lt;/code&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
Make sure to have the files&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;${DATADIR}/kerberos/krb5.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;${DATADIR}/kerberos/kerberos.keytab&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
set up properly.&lt;br /&gt;
&lt;br /&gt;
The file &amp;lt;code&amp;gt;${DATADIR}/wiki/bluespice/pre-init-settings.php&amp;lt;/code&amp;gt; can then be used to set up [[mediawikiwiki:LDAP_hub|&amp;quot;Extension:Auth_remoteuser&amp;quot; and the LDAP stack extensions]].&lt;br /&gt;
&lt;br /&gt;
=== SAML authentication ===&lt;br /&gt;
During the initial installation a certificate for message signing will automatically be created. It can be found in &amp;lt;code&amp;gt;${DATADIR}/wiki/simplesamlphp/certs/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
In order to configure a remote IdP, one must copy the IdP metadata XML to a file called &amp;lt;code&amp;gt;${DATADIR}/wiki/simplesamlphp/saml_idp_metadata.xml&amp;lt;/code&amp;gt;. The SP metadata can then be obtained via &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://{{$WIKI_HOST}}/_sp/module.php/saml/sp/metadata.php/default-sp&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. It must be configured in the remote IdP.&lt;br /&gt;
&lt;br /&gt;
{{Textbox&lt;br /&gt;
|boxtype=tip&lt;br /&gt;
|header=Test authentication&lt;br /&gt;
|text= You can test authentication directly within the SimpleSAMLphp application. To do so, navigate to &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://{{$WIKI_HOST}}/_sp/module.php/admin&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and log in with &amp;lt;code&amp;gt;admin&amp;lt;/code&amp;gt; and the &amp;lt;code&amp;gt;INTERNAL_SIMPLESAMLPHP_ADMIN_PASS&amp;lt;/code&amp;gt; found in &amp;lt;code&amp;gt;${DATADIR}/wiki/.wikienv&amp;lt;/code&amp;gt;&lt;br /&gt;
|icon=yes&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Next, the extensions &amp;quot;PluggableAuth&amp;quot; and &amp;quot;SimpleSAMLphp&amp;quot; must be enabled on the wiki. To do so, add&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
wfLoadExtensions( [&lt;br /&gt;
    &#039;PluggableAuth&#039;,&lt;br /&gt;
    &#039;SimpleSAMLphp&#039;&lt;br /&gt;
] );&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;[[File:Setup:SAML ConfigManager EN 01.png|thumb|300x300px]]to the &amp;lt;code&amp;gt;${DATADIR}/wiki/bluespice/post-init-settings.php&amp;lt;/code&amp;gt;. Run&lt;br /&gt;
&lt;br /&gt;
 ./bluespice-deploy exec wiki-task /app/bluespice/w/maintenance/update.php --quick&lt;br /&gt;
&lt;br /&gt;
to complete the installation.&lt;br /&gt;
&lt;br /&gt;
After that, the authentication plugin configuration can be applied in [[Manual:Extension/BlueSpiceConfigManager|Special:BlueSpiceConfigManager]] under &amp;quot;Authentication&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== OpenID Connect authentication ===&lt;br /&gt;
&lt;br /&gt;
The extensions &amp;quot;PluggableAuth&amp;quot; and &amp;quot;OpenIDConnect&amp;quot; must be enabled on the wiki. To do so, add&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
wfLoadExtensions( [&lt;br /&gt;
    &#039;PluggableAuth&#039;,&lt;br /&gt;
    &#039;OpenIDConnect&#039;&lt;br /&gt;
] );&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;to the &amp;lt;code&amp;gt;${DATADIR}/wiki/bluespice/post-init-settings.php&amp;lt;/code&amp;gt;. Run&lt;br /&gt;
&lt;br /&gt;
 ./bluespice-deploy exec wiki-task /app/bluespice/w/maintenance/update.php --quick&lt;br /&gt;
&lt;br /&gt;
to complete the installation.&lt;br /&gt;
&lt;br /&gt;
After that, the authentication plugin configuration can be applied in [[Manual:Extension/BlueSpiceConfigManager|Special:BlueSpiceConfigManager]] under &amp;quot;Authentication&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[de:Setup:Installationsanleitung/Docker]]&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Reference:BlueSpiceInterwikiSearch&amp;diff=14644</id>
		<title>Reference:BlueSpiceInterwikiSearch</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Reference:BlueSpiceInterwikiSearch&amp;diff=14644"/>
		<updated>2026-07-31T13:06:41Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{BSExtensionInfo&lt;br /&gt;
|desc=Simultaneous search in multiple wikis&lt;br /&gt;
|status=stable&lt;br /&gt;
|developer=HalloWelt&lt;br /&gt;
|type=BlueSpice&lt;br /&gt;
|edition=BlueSpice pro (deactivated), BlueSpice farm (deactivated)&lt;br /&gt;
|compatible=BlueSpice&lt;br /&gt;
|license=GPL v3&lt;br /&gt;
|docu=Manual:Extension/BlueSpiceInterwikiSearch&lt;br /&gt;
|active=Yes&lt;br /&gt;
|features=&lt;br /&gt;
&#039;&#039;&#039;InterwikiSearch&#039;&#039;&#039; alows simultaneously searching other BlueSpice wikis.&lt;br /&gt;
==Usage / features==&lt;br /&gt;
If BlueSpiceInterwikiSearch is enabled and configured on the wiki, the &amp;lt;code&amp;gt;Special:SearchCenter&amp;lt;/code&amp;gt;, shows results from other wikis. Results are shown as buttons on top of the results list.&lt;br /&gt;
&lt;br /&gt;
==Technical information==&lt;br /&gt;
===Configuration===&lt;br /&gt;
To set up this service, wiki administrator must add following settings into LocalSettings.php:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$GLOBALS[&#039;bsgBlueSpiceInterwikiSearch&#039;][&#039;Wiki_name&#039;] = [&lt;br /&gt;
   &amp;quot;name&amp;quot; =&amp;gt; &amp;quot;Wiki name&amp;quot;, // Will be displayed as the wiki name in the results&lt;br /&gt;
   &amp;quot;api-endpoint&amp;quot; =&amp;gt; &amp;quot;http://other.wiki.com/w/api.php&amp;quot;,&lt;br /&gt;
   &amp;quot;search-on-wiki-url&amp;quot; =&amp;gt; &amp;quot;http://other.wiki.com/wiki/Special:SearchCenter&amp;quot; // URL to the SearchCenter SpecialPage on target wiki&lt;br /&gt;
];&lt;br /&gt;
&amp;lt;/pre&amp;gt;{{Messagebox|boxtype=note|Note text=This does not apply to [[Manual:Extension/BlueSpiceWikiFarm|BlueSpiceWikiFarm]] users, BlueSpiceInterwikiSearch within a WikiFarm is handled separately.}}&lt;br /&gt;
&lt;br /&gt;
== Demo ==&lt;br /&gt;
&lt;br /&gt;
Try out InterwikiSearch in our [https://en.demo.bluespice.com demo]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{wcagCheck&lt;br /&gt;
|wcagStatus=2-testing complete&lt;br /&gt;
|wcagCheckedfor=Web, Authoring tool&lt;br /&gt;
|wcagTestdate=2022-10-10&lt;br /&gt;
|wcagLevel=AA&lt;br /&gt;
|wcagSupport=partially supports&lt;br /&gt;
|wcagWorkaround=no&lt;br /&gt;
|wcagComments=Interwiki links are commonly not used. Only relevant for wikis that connect search to other wikis.&lt;br /&gt;
&lt;br /&gt;
Web:  screen reader needs label for interwiki search results announced. Ticket: erm30061&lt;br /&gt;
&lt;br /&gt;
Authoring tool: Standard ext-js pagination issue: buttons not announced to screen readers.&lt;br /&gt;
|extensionType=extended&lt;br /&gt;
|extensionFocus=reader&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Security:Security_Advisories/BSSA-2026-05&amp;diff=14616</id>
		<title>Security:Security Advisories/BSSA-2026-05</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Security:Security_Advisories/BSSA-2026-05&amp;diff=14616"/>
		<updated>2026-07-27T12:50:07Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|Date&lt;br /&gt;
|2026-07-27&lt;br /&gt;
|-&lt;br /&gt;
|Severity&lt;br /&gt;
|reported &amp;quot;high&amp;quot;, BlueSpice assessment: &#039;&#039;&#039;not affected / low&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|Affected&lt;br /&gt;
|&amp;lt;code&amp;gt;bluespice/search&amp;lt;/code&amp;gt; Docker image (all versions)&lt;br /&gt;
&amp;lt;code&amp;gt;bluespice/ai&amp;lt;/code&amp;gt; Docker image (5.3.x)&lt;br /&gt;
|-&lt;br /&gt;
|Fixed in&lt;br /&gt;
|Unknown&lt;br /&gt;
|-&lt;br /&gt;
|CVE&lt;br /&gt;
|&lt;br /&gt;
* [https://access.redhat.com/security/cve/cve-2025-14813 CVE-2025-14813]&lt;br /&gt;
* [https://nvd.nist.gov/vuln/detail/CVE-2025-65896 CVE-2025-65896]&lt;br /&gt;
* [https://nvd.nist.gov/vuln/detail/CVE-2026-59873 CVE-2026-59873]&lt;br /&gt;
* [https://advisories.gitlab.com/composer/phpoffice/phpspreadsheet/CVE-2026-59933/ CVE-2026-59933]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Problem==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!&#039;&#039;&#039;CVE&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Component&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Type of vulnerability&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;BlueSpice 5&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2025-14813&lt;br /&gt;
|&amp;lt;code&amp;gt;bluespice/search&amp;lt;/code&amp;gt;&lt;br /&gt;
|Use of a Broken or Risky Cryptographic Algorithm&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |not affected&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2025-65896&lt;br /&gt;
|&amp;lt;code&amp;gt;bluespice/ai&amp;lt;/code&amp;gt;&lt;br /&gt;
|SQL Injection via dictionary as params&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |not affected&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2026-59873&lt;br /&gt;
|&amp;lt;code&amp;gt;bluespice/ai&amp;lt;/code&amp;gt;,  &amp;lt;code&amp;gt;bluespice/chat&amp;lt;/code&amp;gt;,  &amp;lt;code&amp;gt;bluespice/formula&amp;lt;/code&amp;gt;,   &amp;lt;code&amp;gt;bluespice/wire&amp;lt;/code&amp;gt;&lt;br /&gt;
|Allocation of Resources Without Limits or Throttling&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |not affected&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2026-59933&lt;br /&gt;
|&lt;br /&gt;
* Extension:BlueSpiceUEModuleTable2Excel&lt;br /&gt;
* Extension:DataTransfer&lt;br /&gt;
* Extension:SemanticResultFormats&lt;br /&gt;
|&lt;br /&gt;
* Uncontrolled Resource Consumption&lt;br /&gt;
* Loop with Unreachable Exit Condition (&#039;Infinite Loop&#039;)&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |low&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Impact assessment==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
!CVE&lt;br /&gt;
!Assessment&lt;br /&gt;
!Mitigation without update&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |CVE-2025-14813&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |The code is only used by Tika when processing Encrypted PDFs and Office files, which we don&#039;t support. In addition the code affected in particular is probably not used and the described attack vector (&amp;quot;capture ciphertext&amp;quot;) and impact (&amp;quot;perform cryptanalysis and uncover the underlying data&amp;quot;) is not applicable in this use case. &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |No action required.&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2025-65896&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Asyncmy is only used as the DB API layer for SQLAlchemy to connect to MySQL, SQLAlchemy enforces a &amp;quot;format&amp;quot; parameter style, which only uses &amp;quot;%s&amp;quot; placeholder strings for SQL queries. This is opposed to inserting values via a dictionary, meaning no impact from this CVE is possible.&lt;br /&gt;
|No action required.&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2026-59873&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |None of the code makes use of the affected package / code (&amp;lt;code&amp;gt;node-tar&amp;lt;/code&amp;gt;). In all but  &amp;lt;code&amp;gt;bluespice/formula&amp;lt;/code&amp;gt; it is just part of the base image content. In  &amp;lt;code&amp;gt;bluespice/formula&amp;lt;/code&amp;gt;, it is a transient dependency, but also not used. Not even in the dependency code.&lt;br /&gt;
|No action required.&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2026-59933&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Extension:BlueSpiceUEModuleTable2Excel and Extension:SemanticResultFormats don&#039;t use affected code at all. Only Extension:DataTransfer may be affected.&lt;br /&gt;
|If concerned temporarily disable Special:ImportSpreadsheet via &amp;lt;code&amp;gt;$DATA/wiki/bluespice/pre-init-settings.php&amp;lt;/code&amp;gt;.&lt;br /&gt;
 \Hooks::register( &#039;SpecialPage_initList&#039;, static function( &amp;amp;$specialPages ) {&lt;br /&gt;
     unset( $list[&#039;ImportSpreadsheet&#039;] );&lt;br /&gt;
 });&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Solution ==&lt;br /&gt;
No immediate action required. If concerned about CVE-2026-59933, apply the temporary fix. CVE-2026-59933 will be fixed in one of the next patch releases.&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Security:Security_Advisories/BSSA-2026-05&amp;diff=14612</id>
		<title>Security:Security Advisories/BSSA-2026-05</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Security:Security_Advisories/BSSA-2026-05&amp;diff=14612"/>
		<updated>2026-07-27T09:45:17Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|Date&lt;br /&gt;
|2026-07-27&lt;br /&gt;
|-&lt;br /&gt;
|Severity&lt;br /&gt;
|reported &amp;quot;high&amp;quot;, BlueSpice assessment: &#039;&#039;&#039;not affected / low&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|Affected&lt;br /&gt;
|&amp;lt;code&amp;gt;bluespice/search&amp;lt;/code&amp;gt; Docker image (all versions)&lt;br /&gt;
&amp;lt;code&amp;gt;bluespice/ai&amp;lt;/code&amp;gt; Docker image (5.3.x)&lt;br /&gt;
|-&lt;br /&gt;
|Fixed in&lt;br /&gt;
|Unknown&lt;br /&gt;
|-&lt;br /&gt;
|CVE&lt;br /&gt;
|&lt;br /&gt;
* [https://access.redhat.com/security/cve/cve-2025-14813 CVE-2025-14813]&lt;br /&gt;
* [https://nvd.nist.gov/vuln/detail/CVE-2025-65896 CVE-2025-65896]&lt;br /&gt;
* [https://nvd.nist.gov/vuln/detail/CVE-2026-59873 CVE-2026-59873]&lt;br /&gt;
* [https://advisories.gitlab.com/composer/phpoffice/phpspreadsheet/CVE-2026-59933/ CVE-2026-59933]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Problem==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!&#039;&#039;&#039;CVE&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Component&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Type of vulnerability&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;BlueSpice 5&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2025-14813&lt;br /&gt;
|&amp;lt;code&amp;gt;bluespice/search&amp;lt;/code&amp;gt;&lt;br /&gt;
|Use of a Broken or Risky Cryptographic Algorithm&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |not affected&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2025-65896&lt;br /&gt;
|&amp;lt;code&amp;gt;bluespice/ai&amp;lt;/code&amp;gt;&lt;br /&gt;
|SQL Injection via dictionary as params&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |not affected&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2026-59873&lt;br /&gt;
|&amp;lt;code&amp;gt;bluespice/ai&amp;lt;/code&amp;gt;,  &amp;lt;code&amp;gt;bluespice/chat&amp;lt;/code&amp;gt;,  &amp;lt;code&amp;gt;bluespice/formula&amp;lt;/code&amp;gt;,   &amp;lt;code&amp;gt;bluespice/wire&amp;lt;/code&amp;gt;&lt;br /&gt;
|Allocation of Resources Without Limits or Throttling&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |not affected&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2026-59933&lt;br /&gt;
|&lt;br /&gt;
* Extension:BlueSpiceUEModuleTable2Excel&lt;br /&gt;
* Extension:DataTransfer&lt;br /&gt;
* Extension:SemanticResultFormats&lt;br /&gt;
|&lt;br /&gt;
* Uncontrolled Resource Consumption&lt;br /&gt;
* Loop with Unreachable Exit Condition (&#039;Infinite Loop&#039;)&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |low&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Impact assessment==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
!CVE&lt;br /&gt;
!Assessment&lt;br /&gt;
!Mitigation without update&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |CVE-2025-14813&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |The code is only used by Tika when processing Encrypted PDFs and Office files, which we don&#039;t support. In addition the code affected in particular is probably not used and the described attack vector (&amp;quot;capture ciphertext&amp;quot;) and impact (&amp;quot;perform cryptanalysis and uncover the underlying data&amp;quot;) is not applicable in this use case. &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |No action required.&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2025-65896&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Asyncmy is only used as the DB API layer for SQLAlchemy to connect to MySQL, SQLAlchemy enforces a &amp;quot;format&amp;quot; parameter style, which only uses &amp;quot;%s&amp;quot; placeholder strings for SQL queries. This is opposed to inserting values via a dictionary, meaning no impact from this CVE is possible.&lt;br /&gt;
|No action required.&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2026-59873&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |None of the code makes use of the affected package / code (&amp;lt;code&amp;gt;node-tar&amp;lt;/code&amp;gt;). In all but  &amp;lt;code&amp;gt;bluespice/formula&amp;lt;/code&amp;gt; it is just part of the base image content. In  &amp;lt;code&amp;gt;bluespice/formula&amp;lt;/code&amp;gt;, it is a transient dependency, but also not used. Not even in the dependency code.&lt;br /&gt;
|No action required.&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2026-59933&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Extension:BlueSpiceUEModuleTable2Excel and Extension:SemanticResultFormats don&#039;t use affected code at all. Only Extension:DataTransfer may be affected.&lt;br /&gt;
|If concerned temporarily disable Special:ImportSpreadsheet via &amp;lt;code&amp;gt;$DATA/wiki/bluespice/pre-init-settings.php&amp;lt;/code&amp;gt;.&lt;br /&gt;
 \Hooks::register( &#039;SpecialPage_initList&#039;, static function( &amp;amp;$specialPages ) {&lt;br /&gt;
     unset( $list[&#039;ImportSpreadsheet&#039;] );&lt;br /&gt;
 });&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Solution ==&lt;br /&gt;
No immediate action required.&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Security:Security_Advisories/BSSA-2026-05&amp;diff=14611</id>
		<title>Security:Security Advisories/BSSA-2026-05</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Security:Security_Advisories/BSSA-2026-05&amp;diff=14611"/>
		<updated>2026-07-27T09:26:21Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|Date&lt;br /&gt;
|2026-07-17&lt;br /&gt;
|-&lt;br /&gt;
|Severity&lt;br /&gt;
|reported &amp;quot;high&amp;quot;, BlueSpice assessment: &#039;&#039;&#039;not affected&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|Affected&lt;br /&gt;
|&amp;lt;code&amp;gt;bluespice/search&amp;lt;/code&amp;gt; Docker image (all versions)&lt;br /&gt;
&amp;lt;code&amp;gt;bluespice/ai&amp;lt;/code&amp;gt; Docker image (5.3.x)&lt;br /&gt;
|-&lt;br /&gt;
|Fixed in&lt;br /&gt;
|Unknown&lt;br /&gt;
|-&lt;br /&gt;
|CVE&lt;br /&gt;
|&lt;br /&gt;
* [https://access.redhat.com/security/cve/cve-2025-14813 CVE-2025-14813]&lt;br /&gt;
* [https://nvd.nist.gov/vuln/detail/CVE-2025-65896 CVE-2025-65896]&lt;br /&gt;
* [https://nvd.nist.gov/vuln/detail/CVE-2026-59873 CVE-2026-59873]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Problem==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!&#039;&#039;&#039;CVE&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Component&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Type of vulnerability&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;BlueSpice 5&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2025-14813&lt;br /&gt;
|&amp;lt;code&amp;gt;bluespice/search&amp;lt;/code&amp;gt;&lt;br /&gt;
|Use of a Broken or Risky Cryptographic Algorithm&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |not affected&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2025-65896&lt;br /&gt;
|&amp;lt;code&amp;gt;bluespice/ai&amp;lt;/code&amp;gt;&lt;br /&gt;
|SQL Injection via dictionary as params&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |not affected&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2026-59873&lt;br /&gt;
|&amp;lt;code&amp;gt;bluespice/ai&amp;lt;/code&amp;gt;,  &amp;lt;code&amp;gt;bluespice/chat&amp;lt;/code&amp;gt;,  &amp;lt;code&amp;gt;bluespice/formula&amp;lt;/code&amp;gt;,   &amp;lt;code&amp;gt;bluespice/wire&amp;lt;/code&amp;gt;&lt;br /&gt;
|Allocation of Resources Without Limits or Throttling&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |not affected&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Impact assessment==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
!CVE&lt;br /&gt;
!Assessment&lt;br /&gt;
!Mitigation without update&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |CVE-2025-14813&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |The code is only used by Tika when processing Encrypted PDFs and Office files, which we don&#039;t support. In addition the code affected in particular is probably not used and the described attack vector (&amp;quot;capture ciphertext&amp;quot;) and impact (&amp;quot;perform cryptanalysis and uncover the underlying data&amp;quot;) is not applicable in this use case. &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |No action required.&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2025-65896&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Asyncmy is only used as the DB API layer for SQLAlchemy to connect to MySQL, SQLAlchemy enforces a &amp;quot;format&amp;quot; parameter style, which only uses &amp;quot;%s&amp;quot; placeholder strings for SQL queries. This is opposed to inserting values via a dictionary, meaning no impact from this CVE is possible.&lt;br /&gt;
|No action required.&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2026-59873&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |None of the code makes use of the affected package / code (&amp;lt;code&amp;gt;node-tar&amp;lt;/code&amp;gt;). In all but  &amp;lt;code&amp;gt;bluespice/formula&amp;lt;/code&amp;gt; it is just part of the base image content. In  &amp;lt;code&amp;gt;bluespice/formula&amp;lt;/code&amp;gt;, it is a transient dependency, but also not used. Not even in the dependency code.&lt;br /&gt;
|No action required.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Solution ==&lt;br /&gt;
No immediate action required.&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Security:Security_Advisories/BSSA-2026-05&amp;diff=14440</id>
		<title>Security:Security Advisories/BSSA-2026-05</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Security:Security_Advisories/BSSA-2026-05&amp;diff=14440"/>
		<updated>2026-07-17T13:39:04Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|Date&lt;br /&gt;
|2026-07-17&lt;br /&gt;
|-&lt;br /&gt;
|Severity&lt;br /&gt;
|reported &amp;quot;high&amp;quot;, BlueSpice assessment: &#039;&#039;&#039;not affected&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|Affected&lt;br /&gt;
|&amp;lt;code&amp;gt;bluespice/search&amp;lt;/code&amp;gt; Docker image (all versions)&lt;br /&gt;
|-&lt;br /&gt;
|Fixed in&lt;br /&gt;
|Unknown&lt;br /&gt;
|-&lt;br /&gt;
|CVE&lt;br /&gt;
|&lt;br /&gt;
* [https://access.redhat.com/security/cve/cve-2025-14813 CVE-2025-14813]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Problem==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!&#039;&#039;&#039;CVE&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Component&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Type of vulnerability&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;BlueSpice 5&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2025-14813&lt;br /&gt;
|&amp;lt;code&amp;gt;bluespice/search&amp;lt;/code&amp;gt;&lt;br /&gt;
|Use of a Broken or Risky Cryptographic Algorithm&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |not affected&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Impact assessment==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
!CVE&lt;br /&gt;
!Assessment&lt;br /&gt;
!Mitigation without update&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |CVE-2025-14813&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |The code is only used by Tika when processing Encrypted PDFs and Office files, which we don&#039;t support. In addition the code affected in particular is probably not used and the described attack vector (&amp;quot;capture ciphertext&amp;quot;) and impact (&amp;quot;perform cryptanalysis and uncover the underlying data&amp;quot;) is not applicable in this use case. &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |No action required.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Solution ==&lt;br /&gt;
No immediate action required.&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Security:Security_Advisories/BSSA-2026-05&amp;diff=14437</id>
		<title>Security:Security Advisories/BSSA-2026-05</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Security:Security_Advisories/BSSA-2026-05&amp;diff=14437"/>
		<updated>2026-07-17T13:36:47Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: Created page with &amp;quot;{| class=&amp;quot;wikitable&amp;quot; |+ ! ! |- |Date |2026-06-22 |- |Severity |reported &amp;quot;high&amp;quot;, BlueSpice assessment: &amp;#039;&amp;#039;&amp;#039;not affected&amp;#039;&amp;#039;&amp;#039; |- |Affected |&amp;lt;code&amp;gt;bluespice/migrate-confluence&amp;lt;/code&amp;gt; Docker image (all versions) |- |Fixed in |Next regular update |- |CVE | * [https://nvd.nist.gov/vuln/detail/CVE-2026-8376 CVE-2026-8376] |}  ==Problem== {| class=&amp;quot;wikitable&amp;quot; !&amp;#039;&amp;#039;&amp;#039;CVE&amp;#039;&amp;#039;&amp;#039; !&amp;#039;&amp;#039;&amp;#039;Component&amp;#039;&amp;#039;&amp;#039; !&amp;#039;&amp;#039;&amp;#039;Type of vulnerability&amp;#039;&amp;#039;&amp;#039; !&amp;#039;&amp;#039;&amp;#039;BlueSpice 5&amp;#039;&amp;#039;&amp;#039; |- |CVE-2026-8376 |&amp;lt;code&amp;gt;bluespice/migrate-confl...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|Date&lt;br /&gt;
|2026-06-22&lt;br /&gt;
|-&lt;br /&gt;
|Severity&lt;br /&gt;
|reported &amp;quot;high&amp;quot;, BlueSpice assessment: &#039;&#039;&#039;not affected&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|Affected&lt;br /&gt;
|&amp;lt;code&amp;gt;bluespice/migrate-confluence&amp;lt;/code&amp;gt; Docker image (all versions)&lt;br /&gt;
|-&lt;br /&gt;
|Fixed in&lt;br /&gt;
|Next regular update&lt;br /&gt;
|-&lt;br /&gt;
|CVE&lt;br /&gt;
|&lt;br /&gt;
* [https://nvd.nist.gov/vuln/detail/CVE-2026-8376 CVE-2026-8376]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Problem==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!&#039;&#039;&#039;CVE&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Component&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Type of vulnerability&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;BlueSpice 5&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2026-8376&lt;br /&gt;
|&amp;lt;code&amp;gt;bluespice/migrate-confluence&amp;lt;/code&amp;gt;&lt;br /&gt;
|Heap Buffer Overflow (Perl regex compilation, 32-bit only)&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |not affected&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Impact assessment==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
!CVE&lt;br /&gt;
!Assessment&lt;br /&gt;
!Mitigation without update&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |CVE-2026-8376&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Not affected. The vulnerability only applies to 32-bit Perl builds; the &amp;lt;code&amp;gt;bluespice/migrate-confluence&amp;lt;/code&amp;gt; Docker image uses a 64-bit base image and therefore runs a 64-bit Perl. Additionally, the regular expressions used in the application are part of the application logic and cannot be injected by an attacker.&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |No action required.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Solution ==&lt;br /&gt;
No immediate action required. The affected library will be updated in the next regular release.&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Development/SAML_2.0_IdP&amp;diff=14413</id>
		<title>Development/SAML 2.0 IdP</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Development/SAML_2.0_IdP&amp;diff=14413"/>
		<updated>2026-07-14T11:34:22Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Create the following files and folders within your &amp;lt;code&amp;gt;$DATADIR&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
└── saml-idp&lt;br /&gt;
    ├── saml-config.php&lt;br /&gt;
    ├── saml-sp-metadata.php&lt;br /&gt;
    └── saml-users.php&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add the following content to the files&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;saml-config.php&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
// See https://github.com/kristophjunge/docker-test-saml-idp/blob/master/config/simplesamlphp/config.php&lt;br /&gt;
&lt;br /&gt;
$idPbaseUrl = &#039;https://&#039; . getenv( &#039;DEV_SHARED_IDP_HOST&#039; );&lt;br /&gt;
$config = [&lt;br /&gt;
	&#039;baseurlpath&#039; =&amp;gt; $idPbaseUrl . &#039;/_samlidp/simplesaml/&#039;,&lt;br /&gt;
	&#039;certdir&#039; =&amp;gt; &#039;cert/&#039;,&lt;br /&gt;
	&#039;loggingdir&#039; =&amp;gt; &#039;log/&#039;,&lt;br /&gt;
	&#039;datadir&#039; =&amp;gt; &#039;data/&#039;,&lt;br /&gt;
	&#039;tempdir&#039; =&amp;gt; &#039;/tmp/simplesaml&#039;,&lt;br /&gt;
	&#039;debug&#039; =&amp;gt; true,&lt;br /&gt;
	&#039;showerrors&#039; =&amp;gt; true,&lt;br /&gt;
	&#039;errorreporting&#039; =&amp;gt; true,&lt;br /&gt;
	&#039;debug.validatexml&#039; =&amp;gt; false,&lt;br /&gt;
	&#039;auth.adminpassword&#039; =&amp;gt; &#039;secret&#039;,&lt;br /&gt;
	&#039;admin.protectindexpage&#039; =&amp;gt; false,&lt;br /&gt;
	&#039;admin.protectmetadata&#039; =&amp;gt; false,&lt;br /&gt;
	&#039;secretsalt&#039; =&amp;gt; &#039;defaultsecretsalt&#039;,&lt;br /&gt;
	&#039;technicalcontact_name&#039; =&amp;gt; &#039;Administrator&#039;,&lt;br /&gt;
	&#039;technicalcontact_email&#039; =&amp;gt; &#039;na@example.invalid&#039;,&lt;br /&gt;
	&#039;timezone&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;logging.level&#039; =&amp;gt; SimpleSAML_Logger::DEBUG,&lt;br /&gt;
	&#039;logging.handler&#039; =&amp;gt; &#039;errorlog&#039;,&lt;br /&gt;
	&#039;logging.facility&#039; =&amp;gt; 168,&lt;br /&gt;
	&#039;logging.processname&#039; =&amp;gt; &#039;simplesamlphp&#039;,&lt;br /&gt;
	&#039;logging.logfile&#039; =&amp;gt; &#039;simplesamlphp.log&#039;,&lt;br /&gt;
	&#039;statistics.out&#039; =&amp;gt; [],&lt;br /&gt;
	&#039;database.dsn&#039; =&amp;gt; &#039;mysql:host=localhost;dbname=saml&#039;,&lt;br /&gt;
	&#039;database.username&#039; =&amp;gt; &#039;simplesamlphp&#039;,&lt;br /&gt;
	&#039;database.password&#039; =&amp;gt; &#039;secret&#039;,&lt;br /&gt;
	&#039;database.prefix&#039; =&amp;gt; &#039;&#039;,&lt;br /&gt;
	&#039;database.persistent&#039; =&amp;gt; false,&lt;br /&gt;
	&#039;database.slaves&#039; =&amp;gt; [],&lt;br /&gt;
	&#039;enable.saml20-idp&#039; =&amp;gt; true,&lt;br /&gt;
	&#039;enable.shib13-idp&#039; =&amp;gt; true,&lt;br /&gt;
	&#039;enable.adfs-idp&#039; =&amp;gt; false,&lt;br /&gt;
	&#039;enable.wsfed-sp&#039; =&amp;gt; false,&lt;br /&gt;
	&#039;enable.authmemcookie&#039; =&amp;gt; false,&lt;br /&gt;
	&#039;session.duration&#039; =&amp;gt; 28800,&lt;br /&gt;
	&#039;session.datastore.timeout&#039; =&amp;gt; 14400,&lt;br /&gt;
	&#039;session.state.timeout&#039; =&amp;gt; 3600,&lt;br /&gt;
	&#039;session.cookie.name&#039; =&amp;gt; &#039;SimpleSAMLSessionIDIdp&#039;,&lt;br /&gt;
	&#039;session.cookie.lifetime&#039; =&amp;gt; 0,&lt;br /&gt;
	&#039;session.cookie.path&#039; =&amp;gt; &#039;/&#039;,&lt;br /&gt;
	&#039;session.cookie.domain&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;session.cookie.secure&#039; =&amp;gt; false,&lt;br /&gt;
	&#039;enable.http_post&#039; =&amp;gt; false,&lt;br /&gt;
	&#039;session.phpsession.cookiename&#039; =&amp;gt; &#039;PHPSESSIDIDP&#039;,&lt;br /&gt;
	&#039;session.phpsession.savepath&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;session.phpsession.httponly&#039; =&amp;gt; true,&lt;br /&gt;
	&#039;session.authtoken.cookiename&#039; =&amp;gt; &#039;SimpleSAMLAuthTokenIdp&#039;,&lt;br /&gt;
	&#039;session.rememberme.enable&#039; =&amp;gt; false,&lt;br /&gt;
	&#039;session.rememberme.checked&#039; =&amp;gt; false,&lt;br /&gt;
	&#039;session.rememberme.lifetime&#039; =&amp;gt; 1209600,&lt;br /&gt;
	&#039;language.available&#039; =&amp;gt;&lt;br /&gt;
	[&lt;br /&gt;
		0 =&amp;gt; &#039;en&#039;,&lt;br /&gt;
		1 =&amp;gt; &#039;no&#039;,&lt;br /&gt;
		2 =&amp;gt; &#039;nn&#039;,&lt;br /&gt;
		3 =&amp;gt; &#039;se&#039;,&lt;br /&gt;
		4 =&amp;gt; &#039;da&#039;,&lt;br /&gt;
		5 =&amp;gt; &#039;de&#039;,&lt;br /&gt;
		6 =&amp;gt; &#039;sv&#039;,&lt;br /&gt;
		7 =&amp;gt; &#039;fi&#039;,&lt;br /&gt;
		8 =&amp;gt; &#039;es&#039;,&lt;br /&gt;
		9 =&amp;gt; &#039;fr&#039;,&lt;br /&gt;
		10 =&amp;gt; &#039;it&#039;,&lt;br /&gt;
		11 =&amp;gt; &#039;nl&#039;,&lt;br /&gt;
		12 =&amp;gt; &#039;lb&#039;,&lt;br /&gt;
		13 =&amp;gt; &#039;cs&#039;,&lt;br /&gt;
		14 =&amp;gt; &#039;sl&#039;,&lt;br /&gt;
		15 =&amp;gt; &#039;lt&#039;,&lt;br /&gt;
		16 =&amp;gt; &#039;hr&#039;,&lt;br /&gt;
		17 =&amp;gt; &#039;hu&#039;,&lt;br /&gt;
		18 =&amp;gt; &#039;pl&#039;,&lt;br /&gt;
		19 =&amp;gt; &#039;pt&#039;,&lt;br /&gt;
		20 =&amp;gt; &#039;pt-br&#039;,&lt;br /&gt;
		21 =&amp;gt; &#039;tr&#039;,&lt;br /&gt;
		22 =&amp;gt; &#039;ja&#039;,&lt;br /&gt;
		23 =&amp;gt; &#039;zh&#039;,&lt;br /&gt;
		24 =&amp;gt; &#039;zh-tw&#039;,&lt;br /&gt;
		25 =&amp;gt; &#039;ru&#039;,&lt;br /&gt;
		26 =&amp;gt; &#039;et&#039;,&lt;br /&gt;
		27 =&amp;gt; &#039;he&#039;,&lt;br /&gt;
		28 =&amp;gt; &#039;id&#039;,&lt;br /&gt;
		29 =&amp;gt; &#039;sr&#039;,&lt;br /&gt;
		30 =&amp;gt; &#039;lv&#039;,&lt;br /&gt;
		31 =&amp;gt; &#039;ro&#039;,&lt;br /&gt;
		32 =&amp;gt; &#039;eu&#039;,&lt;br /&gt;
	],&lt;br /&gt;
	&#039;language.rtl&#039; =&amp;gt;&lt;br /&gt;
	[&lt;br /&gt;
		0 =&amp;gt; &#039;ar&#039;,&lt;br /&gt;
		1 =&amp;gt; &#039;dv&#039;,&lt;br /&gt;
		2 =&amp;gt; &#039;fa&#039;,&lt;br /&gt;
		3 =&amp;gt; &#039;ur&#039;,&lt;br /&gt;
		4 =&amp;gt; &#039;he&#039;,&lt;br /&gt;
	],&lt;br /&gt;
	&#039;language.default&#039; =&amp;gt; &#039;en&#039;,&lt;br /&gt;
	&#039;language.parameter.name&#039; =&amp;gt; &#039;language&#039;,&lt;br /&gt;
	&#039;language.parameter.setcookie&#039; =&amp;gt; true,&lt;br /&gt;
	&#039;language.cookie.name&#039; =&amp;gt; &#039;language&#039;,&lt;br /&gt;
	&#039;language.cookie.domain&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;language.cookie.path&#039; =&amp;gt; &#039;/&#039;,&lt;br /&gt;
	&#039;language.cookie.lifetime&#039; =&amp;gt; 77760000,&lt;br /&gt;
	&#039;attributes.extradictionary&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;theme.use&#039; =&amp;gt; &#039;default&#039;,&lt;br /&gt;
	&#039;default-wsfed-idp&#039; =&amp;gt; &#039;urn:federation:pingfederate:localhost&#039;,&lt;br /&gt;
	&#039;idpdisco.enableremember&#039; =&amp;gt; true,&lt;br /&gt;
	&#039;idpdisco.rememberchecked&#039; =&amp;gt; true,&lt;br /&gt;
	&#039;idpdisco.validate&#039; =&amp;gt; true,&lt;br /&gt;
	&#039;idpdisco.extDiscoveryStorage&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;idpdisco.layout&#039; =&amp;gt; &#039;dropdown&#039;,&lt;br /&gt;
	&#039;shib13.signresponse&#039; =&amp;gt; true,&lt;br /&gt;
	&#039;authproc.idp&#039; =&amp;gt;&lt;br /&gt;
	[&lt;br /&gt;
		30 =&amp;gt; &#039;core:LanguageAdaptor&#039;,&lt;br /&gt;
		45 =&amp;gt;&lt;br /&gt;
		[&lt;br /&gt;
			&#039;class&#039; =&amp;gt; &#039;core:StatisticsWithAttribute&#039;,&lt;br /&gt;
			&#039;attributename&#039; =&amp;gt; &#039;realm&#039;,&lt;br /&gt;
			&#039;type&#039; =&amp;gt; &#039;saml20-idp-SSO&#039;,&lt;br /&gt;
		],&lt;br /&gt;
		50 =&amp;gt; &#039;core:AttributeLimit&#039;,&lt;br /&gt;
		99 =&amp;gt; &#039;core:LanguageAdaptor&#039;,&lt;br /&gt;
	],&lt;br /&gt;
	&#039;authproc.sp&#039; =&amp;gt;&lt;br /&gt;
	[&lt;br /&gt;
		90 =&amp;gt; &#039;core:LanguageAdaptor&#039;,&lt;br /&gt;
	],&lt;br /&gt;
	&#039;metadata.sources&#039; =&amp;gt;&lt;br /&gt;
	[&lt;br /&gt;
		[&lt;br /&gt;
			&#039;type&#039; =&amp;gt; &#039;flatfile&#039;,&lt;br /&gt;
		],&lt;br /&gt;
	],&lt;br /&gt;
	&#039;store.type&#039; =&amp;gt; &#039;phpsession&#039;,&lt;br /&gt;
	&#039;store.sql.dsn&#039; =&amp;gt; &#039;sqlite:/path/to/sqlitedatabase.sq3&#039;,&lt;br /&gt;
	&#039;store.sql.username&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;store.sql.password&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;store.sql.prefix&#039; =&amp;gt; &#039;SimpleSAMLphp&#039;,&lt;br /&gt;
	&#039;memcache_store.servers&#039; =&amp;gt;&lt;br /&gt;
	[&lt;br /&gt;
		[&lt;br /&gt;
			[&lt;br /&gt;
				&#039;hostname&#039; =&amp;gt; &#039;localhost&#039;,&lt;br /&gt;
			],&lt;br /&gt;
		],&lt;br /&gt;
	],&lt;br /&gt;
	&#039;memcache_store.prefix&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;memcache_store.expires&#039; =&amp;gt; 129600,&lt;br /&gt;
	&#039;metadata.sign.enable&#039; =&amp;gt; false,&lt;br /&gt;
	&#039;metadata.sign.privatekey&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;metadata.sign.privatekey_pass&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;metadata.sign.certificate&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;proxy&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;trusted.url.domains&#039; =&amp;gt; [],&lt;br /&gt;
];&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;saml-sp-metadata.php&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
#SIMPLESAMLPHP_SP_ENTITY_ID: https://${DEV_SHARED_IDP_HOST}/simplesaml/saml2/idp/metadata.php&lt;br /&gt;
#SIMPLESAMLPHP_SP_ASSERTION_CONSUMER_SERVICE: https://${DEV_PROD_EU_HOST}/_sp/module.php/saml/sp/saml2-acs.php/default-sp&lt;br /&gt;
#SIMPLESAMLPHP_SP_SINGLE_LOGOUT_SERVICE: https://${DEV_PROD_EU_HOST}/_sp/module.php/saml/sp/saml2-logout.php/default-sp&lt;br /&gt;
&lt;br /&gt;
$idpHost = getenv( &#039;DEV_SHARED_IDP_HOST&#039; );&lt;br /&gt;
$spHosts = getenv( &#039;DEV_SP_HOSTS&#039; ) ?? &#039;&#039;;&lt;br /&gt;
$spHosts = explode( &#039;,&#039;, $spHosts );&lt;br /&gt;
$spHosts = array_map( &#039;trim&#039;, $spHosts );&lt;br /&gt;
&lt;br /&gt;
$metadata = [];&lt;br /&gt;
&lt;br /&gt;
foreach ( $spHosts as $spHostAndName ) {&lt;br /&gt;
	$spParts = explode( &#039;###&#039;, $spHostAndName );&lt;br /&gt;
	$spHost = $spParts[0];&lt;br /&gt;
	$spName = $spParts[1];&lt;br /&gt;
	$metadata[&amp;quot;https://$spHost&amp;quot;] = array(&lt;br /&gt;
		&#039;AssertionConsumerService&#039; =&amp;gt; &amp;quot;https://$spHost/_sp/module.php/saml/sp/saml2-acs.php/$spName&amp;quot;,&lt;br /&gt;
		&#039;SingleLogoutService&#039; =&amp;gt; &amp;quot;https://$spHost/_sp/module.php/saml/sp/saml2-logout.php/$spName&amp;quot;,&lt;br /&gt;
	);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;saml-users.php&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
// See https://github.com/kristophjunge/docker-test-saml-idp/blob/master/config/simplesamlphp/authsources.php&lt;br /&gt;
&lt;br /&gt;
$pass = getenv( &#039;DB_ROOT_PASS&#039; );&lt;br /&gt;
&lt;br /&gt;
$config = [&lt;br /&gt;
	&#039;admin&#039; =&amp;gt; [&lt;br /&gt;
		&#039;core:AdminPassword&#039;,&lt;br /&gt;
	],&lt;br /&gt;
	&#039;example-userpass&#039; =&amp;gt; [&lt;br /&gt;
		// First element must be a string which identifies the authentication source.&lt;br /&gt;
		&#039;exampleauth:UserPass&#039;,&lt;br /&gt;
&lt;br /&gt;
		&amp;quot;alice@example.invalid:$pass&amp;quot; =&amp;gt; [&lt;br /&gt;
			&#039;username&#039; =&amp;gt; [ &#039;alice@example.invalid&#039; ],&lt;br /&gt;
			&#039;name&#039; =&amp;gt; [ &#039;Alice&#039; ],&lt;br /&gt;
			&#039;email&#039; =&amp;gt; [ &#039;alice@example.invalid&#039; ],&lt;br /&gt;
			&#039;groups&#039; =&amp;gt; [ &#039;wiki-contributor&#039;, &#039;wiki-admin&#039; ]&lt;br /&gt;
		],&lt;br /&gt;
		&amp;quot;bob@example.invalid:$pass&amp;quot; =&amp;gt; [&lt;br /&gt;
			&#039;username&#039; =&amp;gt; [ &#039;bob@example.invalid&#039; ],&lt;br /&gt;
			&#039;name&#039; =&amp;gt; [ &#039;Bob&#039; ],&lt;br /&gt;
			&#039;email&#039; =&amp;gt; [ &#039;bob@example.invalid&#039; ],&lt;br /&gt;
			&#039;groups&#039; =&amp;gt; [ &#039;wiki-contributor&#039; ]&lt;br /&gt;
		],&lt;br /&gt;
		&amp;quot;charlie@example.invalid:$pass&amp;quot; =&amp;gt; [&lt;br /&gt;
			&#039;username&#039; =&amp;gt; [ &#039;charlie@example.invalid&#039; ],&lt;br /&gt;
			&#039;name&#039; =&amp;gt; [ &#039;Charlie&#039; ],&lt;br /&gt;
			&#039;email&#039; =&amp;gt; [ &#039;charlie@example.invalid&#039; ],&lt;br /&gt;
			&#039;groups&#039; =&amp;gt; [ &#039;wiki-admin&#039; ]&lt;br /&gt;
		]&lt;br /&gt;
	],&lt;br /&gt;
];&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In your &amp;lt;code&amp;gt;docker-compose.override.yml&amp;lt;/code&amp;gt; add&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
  samlidp:&lt;br /&gt;
    image: kristophjunge/test-saml-idp&lt;br /&gt;
    container_name: ${COMPOSE_PROJECT_NAME:-bluespice}-samlidp&lt;br /&gt;
    volumes:&lt;br /&gt;
      - ${DATADIR}/saml-idp/saml-config.php:/var/www/simplesamlphp/config/config.php&lt;br /&gt;
      - ${DATADIR}/saml-idp/saml-users.php:/var/www/simplesamlphp/config/authsources.php&lt;br /&gt;
      - ${DATADIR}/saml-idp/saml-sp-metadata.php:/var/www/simplesamlphp/metadata/saml20-sp-remote.php&lt;br /&gt;
    environment:&lt;br /&gt;
      VIRTUAL_HOST: ${WIKI_HOST}&lt;br /&gt;
      VIRTUAL_PATH: /_samlidp/&lt;br /&gt;
      VIRTUAL_PORT: 8080&lt;br /&gt;
      VIRTUAL_DEST: /&lt;br /&gt;
      DEV_SHARED_IDP_HOST: ${WIKI_HOST}&lt;br /&gt;
      DEV_SP_HOSTS: ${WIKI_HOST}###default-sp&lt;br /&gt;
    restart: no&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
After starting the stack with &amp;lt;code&amp;gt;./bluespice-deploy up -d&amp;lt;/code&amp;gt; you can&lt;br /&gt;
* access the IdP via https://localhost/_samlidp/simplesaml/module.php/core/frontpage_welcome.php (metadata at https://localhost/_samlidp/simplesaml/saml2/idp/metadata.php )&lt;br /&gt;
* test authentication on the SP via https://localhost/_sp/module.php/admin/test/default-sp (metadata at https://localhost/_sp/module.php/saml/sp/metadata/default-sp )&lt;br /&gt;
&lt;br /&gt;
To wire your wiki application, create a new file &amp;lt;code&amp;gt;settings.d/099-SAML-dev.local.php&amp;lt;/code&amp;gt; within your &amp;lt;code&amp;gt;$CODEDIR&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
$GLOBALS[&#039;wgExtensionFunctions&#039;][] = function () {&lt;br /&gt;
	$GLOBALS[&#039;wgPluggableAuth_EnableAutoLogin&#039;] = true;&lt;br /&gt;
	$GLOBALS[&#039;wgPluggableAuth_Config&#039;][&#039;Log in with SAML&#039;] = [&lt;br /&gt;
		&#039;plugin&#039; =&amp;gt; &#039;SimpleSAMLphp&#039;,&lt;br /&gt;
		&#039;data&#039; =&amp;gt; [&lt;br /&gt;
			&#039;authSourceId&#039; =&amp;gt; &#039;default-sp&#039;,&lt;br /&gt;
			&#039;usernameAttribute&#039; =&amp;gt; &#039;name&#039;,&lt;br /&gt;
			&#039;realNameAttribute&#039; =&amp;gt; &#039;name&#039;,&lt;br /&gt;
			&#039;emailAttribute&#039; =&amp;gt; &#039;email&#039;&lt;br /&gt;
		],&lt;br /&gt;
		&#039;groupsyncs&#039; =&amp;gt; [&lt;br /&gt;
			[&lt;br /&gt;
				&#039;type&#039; =&amp;gt; &#039;mapped&#039;,&lt;br /&gt;
					&#039;map&#039; =&amp;gt; [&lt;br /&gt;
						&#039;editor&#039; =&amp;gt; [&lt;br /&gt;
							&#039;groups&#039; =&amp;gt; &#039;wiki-contributor&#039;&lt;br /&gt;
						],&lt;br /&gt;
						&#039;sysop&#039; =&amp;gt; [&lt;br /&gt;
							&#039;groups&#039; =&amp;gt; &#039;wiki-admin&#039;&lt;br /&gt;
						]&lt;br /&gt;
					]&lt;br /&gt;
			]&lt;br /&gt;
		]&lt;br /&gt;
&lt;br /&gt;
	];&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Development/SAML_2.0_IdP&amp;diff=14412</id>
		<title>Development/SAML 2.0 IdP</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Development/SAML_2.0_IdP&amp;diff=14412"/>
		<updated>2026-07-14T11:33:17Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Create the following files and folders within your &amp;lt;code&amp;gt;$DATADIR&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
└── saml-idp&lt;br /&gt;
    ├── saml-config.php&lt;br /&gt;
    ├── saml-sp-metadata.php&lt;br /&gt;
    └── saml-users.php&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add the following content to the files&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;saml-config.php&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
// See https://github.com/kristophjunge/docker-test-saml-idp/blob/master/config/simplesamlphp/config.php&lt;br /&gt;
&lt;br /&gt;
$idPbaseUrl = &#039;https://&#039; . getenv( &#039;DEV_SHARED_IDP_HOST&#039; );&lt;br /&gt;
$config = [&lt;br /&gt;
	&#039;baseurlpath&#039; =&amp;gt; $idPbaseUrl . &#039;/_samlidp/simplesaml/&#039;,&lt;br /&gt;
	&#039;certdir&#039; =&amp;gt; &#039;cert/&#039;,&lt;br /&gt;
	&#039;loggingdir&#039; =&amp;gt; &#039;log/&#039;,&lt;br /&gt;
	&#039;datadir&#039; =&amp;gt; &#039;data/&#039;,&lt;br /&gt;
	&#039;tempdir&#039; =&amp;gt; &#039;/tmp/simplesaml&#039;,&lt;br /&gt;
	&#039;debug&#039; =&amp;gt; true,&lt;br /&gt;
	&#039;showerrors&#039; =&amp;gt; true,&lt;br /&gt;
	&#039;errorreporting&#039; =&amp;gt; true,&lt;br /&gt;
	&#039;debug.validatexml&#039; =&amp;gt; false,&lt;br /&gt;
	&#039;auth.adminpassword&#039; =&amp;gt; &#039;secret&#039;,&lt;br /&gt;
	&#039;admin.protectindexpage&#039; =&amp;gt; false,&lt;br /&gt;
	&#039;admin.protectmetadata&#039; =&amp;gt; false,&lt;br /&gt;
	&#039;secretsalt&#039; =&amp;gt; &#039;defaultsecretsalt&#039;,&lt;br /&gt;
	&#039;technicalcontact_name&#039; =&amp;gt; &#039;Administrator&#039;,&lt;br /&gt;
	&#039;technicalcontact_email&#039; =&amp;gt; &#039;na@example.invalid&#039;,&lt;br /&gt;
	&#039;timezone&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;logging.level&#039; =&amp;gt; SimpleSAML_Logger::DEBUG,&lt;br /&gt;
	&#039;logging.handler&#039; =&amp;gt; &#039;errorlog&#039;,&lt;br /&gt;
	&#039;logging.facility&#039; =&amp;gt; 168,&lt;br /&gt;
	&#039;logging.processname&#039; =&amp;gt; &#039;simplesamlphp&#039;,&lt;br /&gt;
	&#039;logging.logfile&#039; =&amp;gt; &#039;simplesamlphp.log&#039;,&lt;br /&gt;
	&#039;statistics.out&#039; =&amp;gt; [],&lt;br /&gt;
	&#039;database.dsn&#039; =&amp;gt; &#039;mysql:host=localhost;dbname=saml&#039;,&lt;br /&gt;
	&#039;database.username&#039; =&amp;gt; &#039;simplesamlphp&#039;,&lt;br /&gt;
	&#039;database.password&#039; =&amp;gt; &#039;secret&#039;,&lt;br /&gt;
	&#039;database.prefix&#039; =&amp;gt; &#039;&#039;,&lt;br /&gt;
	&#039;database.persistent&#039; =&amp;gt; false,&lt;br /&gt;
	&#039;database.slaves&#039; =&amp;gt; [],&lt;br /&gt;
	&#039;enable.saml20-idp&#039; =&amp;gt; true,&lt;br /&gt;
	&#039;enable.shib13-idp&#039; =&amp;gt; true,&lt;br /&gt;
	&#039;enable.adfs-idp&#039; =&amp;gt; false,&lt;br /&gt;
	&#039;enable.wsfed-sp&#039; =&amp;gt; false,&lt;br /&gt;
	&#039;enable.authmemcookie&#039; =&amp;gt; false,&lt;br /&gt;
	&#039;session.duration&#039; =&amp;gt; 28800,&lt;br /&gt;
	&#039;session.datastore.timeout&#039; =&amp;gt; 14400,&lt;br /&gt;
	&#039;session.state.timeout&#039; =&amp;gt; 3600,&lt;br /&gt;
	&#039;session.cookie.name&#039; =&amp;gt; &#039;SimpleSAMLSessionIDIdp&#039;,&lt;br /&gt;
	&#039;session.cookie.lifetime&#039; =&amp;gt; 0,&lt;br /&gt;
	&#039;session.cookie.path&#039; =&amp;gt; &#039;/&#039;,&lt;br /&gt;
	&#039;session.cookie.domain&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;session.cookie.secure&#039; =&amp;gt; false,&lt;br /&gt;
	&#039;enable.http_post&#039; =&amp;gt; false,&lt;br /&gt;
	&#039;session.phpsession.cookiename&#039; =&amp;gt; &#039;PHPSESSIDIDP&#039;,&lt;br /&gt;
	&#039;session.phpsession.savepath&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;session.phpsession.httponly&#039; =&amp;gt; true,&lt;br /&gt;
	&#039;session.authtoken.cookiename&#039; =&amp;gt; &#039;SimpleSAMLAuthTokenIdp&#039;,&lt;br /&gt;
	&#039;session.rememberme.enable&#039; =&amp;gt; false,&lt;br /&gt;
	&#039;session.rememberme.checked&#039; =&amp;gt; false,&lt;br /&gt;
	&#039;session.rememberme.lifetime&#039; =&amp;gt; 1209600,&lt;br /&gt;
	&#039;language.available&#039; =&amp;gt;&lt;br /&gt;
	[&lt;br /&gt;
		0 =&amp;gt; &#039;en&#039;,&lt;br /&gt;
		1 =&amp;gt; &#039;no&#039;,&lt;br /&gt;
		2 =&amp;gt; &#039;nn&#039;,&lt;br /&gt;
		3 =&amp;gt; &#039;se&#039;,&lt;br /&gt;
		4 =&amp;gt; &#039;da&#039;,&lt;br /&gt;
		5 =&amp;gt; &#039;de&#039;,&lt;br /&gt;
		6 =&amp;gt; &#039;sv&#039;,&lt;br /&gt;
		7 =&amp;gt; &#039;fi&#039;,&lt;br /&gt;
		8 =&amp;gt; &#039;es&#039;,&lt;br /&gt;
		9 =&amp;gt; &#039;fr&#039;,&lt;br /&gt;
		10 =&amp;gt; &#039;it&#039;,&lt;br /&gt;
		11 =&amp;gt; &#039;nl&#039;,&lt;br /&gt;
		12 =&amp;gt; &#039;lb&#039;,&lt;br /&gt;
		13 =&amp;gt; &#039;cs&#039;,&lt;br /&gt;
		14 =&amp;gt; &#039;sl&#039;,&lt;br /&gt;
		15 =&amp;gt; &#039;lt&#039;,&lt;br /&gt;
		16 =&amp;gt; &#039;hr&#039;,&lt;br /&gt;
		17 =&amp;gt; &#039;hu&#039;,&lt;br /&gt;
		18 =&amp;gt; &#039;pl&#039;,&lt;br /&gt;
		19 =&amp;gt; &#039;pt&#039;,&lt;br /&gt;
		20 =&amp;gt; &#039;pt-br&#039;,&lt;br /&gt;
		21 =&amp;gt; &#039;tr&#039;,&lt;br /&gt;
		22 =&amp;gt; &#039;ja&#039;,&lt;br /&gt;
		23 =&amp;gt; &#039;zh&#039;,&lt;br /&gt;
		24 =&amp;gt; &#039;zh-tw&#039;,&lt;br /&gt;
		25 =&amp;gt; &#039;ru&#039;,&lt;br /&gt;
		26 =&amp;gt; &#039;et&#039;,&lt;br /&gt;
		27 =&amp;gt; &#039;he&#039;,&lt;br /&gt;
		28 =&amp;gt; &#039;id&#039;,&lt;br /&gt;
		29 =&amp;gt; &#039;sr&#039;,&lt;br /&gt;
		30 =&amp;gt; &#039;lv&#039;,&lt;br /&gt;
		31 =&amp;gt; &#039;ro&#039;,&lt;br /&gt;
		32 =&amp;gt; &#039;eu&#039;,&lt;br /&gt;
	],&lt;br /&gt;
	&#039;language.rtl&#039; =&amp;gt;&lt;br /&gt;
	[&lt;br /&gt;
		0 =&amp;gt; &#039;ar&#039;,&lt;br /&gt;
		1 =&amp;gt; &#039;dv&#039;,&lt;br /&gt;
		2 =&amp;gt; &#039;fa&#039;,&lt;br /&gt;
		3 =&amp;gt; &#039;ur&#039;,&lt;br /&gt;
		4 =&amp;gt; &#039;he&#039;,&lt;br /&gt;
	],&lt;br /&gt;
	&#039;language.default&#039; =&amp;gt; &#039;en&#039;,&lt;br /&gt;
	&#039;language.parameter.name&#039; =&amp;gt; &#039;language&#039;,&lt;br /&gt;
	&#039;language.parameter.setcookie&#039; =&amp;gt; true,&lt;br /&gt;
	&#039;language.cookie.name&#039; =&amp;gt; &#039;language&#039;,&lt;br /&gt;
	&#039;language.cookie.domain&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;language.cookie.path&#039; =&amp;gt; &#039;/&#039;,&lt;br /&gt;
	&#039;language.cookie.lifetime&#039; =&amp;gt; 77760000,&lt;br /&gt;
	&#039;attributes.extradictionary&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;theme.use&#039; =&amp;gt; &#039;default&#039;,&lt;br /&gt;
	&#039;default-wsfed-idp&#039; =&amp;gt; &#039;urn:federation:pingfederate:localhost&#039;,&lt;br /&gt;
	&#039;idpdisco.enableremember&#039; =&amp;gt; true,&lt;br /&gt;
	&#039;idpdisco.rememberchecked&#039; =&amp;gt; true,&lt;br /&gt;
	&#039;idpdisco.validate&#039; =&amp;gt; true,&lt;br /&gt;
	&#039;idpdisco.extDiscoveryStorage&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;idpdisco.layout&#039; =&amp;gt; &#039;dropdown&#039;,&lt;br /&gt;
	&#039;shib13.signresponse&#039; =&amp;gt; true,&lt;br /&gt;
	&#039;authproc.idp&#039; =&amp;gt;&lt;br /&gt;
	[&lt;br /&gt;
		30 =&amp;gt; &#039;core:LanguageAdaptor&#039;,&lt;br /&gt;
		45 =&amp;gt;&lt;br /&gt;
		[&lt;br /&gt;
			&#039;class&#039; =&amp;gt; &#039;core:StatisticsWithAttribute&#039;,&lt;br /&gt;
			&#039;attributename&#039; =&amp;gt; &#039;realm&#039;,&lt;br /&gt;
			&#039;type&#039; =&amp;gt; &#039;saml20-idp-SSO&#039;,&lt;br /&gt;
		],&lt;br /&gt;
		50 =&amp;gt; &#039;core:AttributeLimit&#039;,&lt;br /&gt;
		99 =&amp;gt; &#039;core:LanguageAdaptor&#039;,&lt;br /&gt;
	],&lt;br /&gt;
	&#039;authproc.sp&#039; =&amp;gt;&lt;br /&gt;
	[&lt;br /&gt;
		90 =&amp;gt; &#039;core:LanguageAdaptor&#039;,&lt;br /&gt;
	],&lt;br /&gt;
	&#039;metadata.sources&#039; =&amp;gt;&lt;br /&gt;
	[&lt;br /&gt;
		[&lt;br /&gt;
			&#039;type&#039; =&amp;gt; &#039;flatfile&#039;,&lt;br /&gt;
		],&lt;br /&gt;
	],&lt;br /&gt;
	&#039;store.type&#039; =&amp;gt; &#039;phpsession&#039;,&lt;br /&gt;
	&#039;store.sql.dsn&#039; =&amp;gt; &#039;sqlite:/path/to/sqlitedatabase.sq3&#039;,&lt;br /&gt;
	&#039;store.sql.username&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;store.sql.password&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;store.sql.prefix&#039; =&amp;gt; &#039;SimpleSAMLphp&#039;,&lt;br /&gt;
	&#039;memcache_store.servers&#039; =&amp;gt;&lt;br /&gt;
	[&lt;br /&gt;
		[&lt;br /&gt;
			[&lt;br /&gt;
				&#039;hostname&#039; =&amp;gt; &#039;localhost&#039;,&lt;br /&gt;
			],&lt;br /&gt;
		],&lt;br /&gt;
	],&lt;br /&gt;
	&#039;memcache_store.prefix&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;memcache_store.expires&#039; =&amp;gt; 129600,&lt;br /&gt;
	&#039;metadata.sign.enable&#039; =&amp;gt; false,&lt;br /&gt;
	&#039;metadata.sign.privatekey&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;metadata.sign.privatekey_pass&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;metadata.sign.certificate&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;proxy&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;trusted.url.domains&#039; =&amp;gt; [],&lt;br /&gt;
];&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;saml-sp-metadata.php&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
#SIMPLESAMLPHP_SP_ENTITY_ID: https://${DEV_SHARED_IDP_HOST}/simplesaml/saml2/idp/metadata.php&lt;br /&gt;
#SIMPLESAMLPHP_SP_ASSERTION_CONSUMER_SERVICE: https://${DEV_PROD_EU_HOST}/_sp/module.php/saml/sp/saml2-acs.php/default-sp&lt;br /&gt;
#SIMPLESAMLPHP_SP_SINGLE_LOGOUT_SERVICE: https://${DEV_PROD_EU_HOST}/_sp/module.php/saml/sp/saml2-logout.php/default-sp&lt;br /&gt;
&lt;br /&gt;
# Test authn: https://mydev.localhost/_sp/module.php/admin/test/default-sp&lt;br /&gt;
&lt;br /&gt;
$idpHost = getenv( &#039;DEV_SHARED_IDP_HOST&#039; );&lt;br /&gt;
$spHosts = getenv( &#039;DEV_SP_HOSTS&#039; ) ?? &#039;&#039;;&lt;br /&gt;
$spHosts = explode( &#039;,&#039;, $spHosts );&lt;br /&gt;
$spHosts = array_map( &#039;trim&#039;, $spHosts );&lt;br /&gt;
&lt;br /&gt;
$metadata = [];&lt;br /&gt;
&lt;br /&gt;
foreach ( $spHosts as $spHostAndName ) {&lt;br /&gt;
	$spParts = explode( &#039;###&#039;, $spHostAndName );&lt;br /&gt;
	$spHost = $spParts[0];&lt;br /&gt;
	$spName = $spParts[1];&lt;br /&gt;
	$metadata[&amp;quot;https://$spHost&amp;quot;] = array(&lt;br /&gt;
		&#039;AssertionConsumerService&#039; =&amp;gt; &amp;quot;https://$spHost/_sp/module.php/saml/sp/saml2-acs.php/$spName&amp;quot;,&lt;br /&gt;
		&#039;SingleLogoutService&#039; =&amp;gt; &amp;quot;https://$spHost/_sp/module.php/saml/sp/saml2-logout.php/$spName&amp;quot;,&lt;br /&gt;
	);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;saml-users.php&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
// See https://github.com/kristophjunge/docker-test-saml-idp/blob/master/config/simplesamlphp/authsources.php&lt;br /&gt;
&lt;br /&gt;
$pass = getenv( &#039;DB_ROOT_PASS&#039; );&lt;br /&gt;
&lt;br /&gt;
$config = [&lt;br /&gt;
	&#039;admin&#039; =&amp;gt; [&lt;br /&gt;
		&#039;core:AdminPassword&#039;,&lt;br /&gt;
	],&lt;br /&gt;
	&#039;example-userpass&#039; =&amp;gt; [&lt;br /&gt;
		// First element must be a string which identifies the authentication source.&lt;br /&gt;
		&#039;exampleauth:UserPass&#039;,&lt;br /&gt;
&lt;br /&gt;
		&amp;quot;alice@example.invalid:$pass&amp;quot; =&amp;gt; [&lt;br /&gt;
			&#039;username&#039; =&amp;gt; [ &#039;alice@example.invalid&#039; ],&lt;br /&gt;
			&#039;name&#039; =&amp;gt; [ &#039;Alice&#039; ],&lt;br /&gt;
			&#039;email&#039; =&amp;gt; [ &#039;alice@example.invalid&#039; ],&lt;br /&gt;
			&#039;groups&#039; =&amp;gt; [ &#039;wiki-contributor&#039;, &#039;wiki-admin&#039; ]&lt;br /&gt;
		],&lt;br /&gt;
		&amp;quot;bob@example.invalid:$pass&amp;quot; =&amp;gt; [&lt;br /&gt;
			&#039;username&#039; =&amp;gt; [ &#039;bob@example.invalid&#039; ],&lt;br /&gt;
			&#039;name&#039; =&amp;gt; [ &#039;Bob&#039; ],&lt;br /&gt;
			&#039;email&#039; =&amp;gt; [ &#039;bob@example.invalid&#039; ],&lt;br /&gt;
			&#039;groups&#039; =&amp;gt; [ &#039;wiki-contributor&#039; ]&lt;br /&gt;
		],&lt;br /&gt;
		&amp;quot;charlie@example.invalid:$pass&amp;quot; =&amp;gt; [&lt;br /&gt;
			&#039;username&#039; =&amp;gt; [ &#039;charlie@example.invalid&#039; ],&lt;br /&gt;
			&#039;name&#039; =&amp;gt; [ &#039;Charlie&#039; ],&lt;br /&gt;
			&#039;email&#039; =&amp;gt; [ &#039;charlie@example.invalid&#039; ],&lt;br /&gt;
			&#039;groups&#039; =&amp;gt; [ &#039;wiki-admin&#039; ]&lt;br /&gt;
		]&lt;br /&gt;
	],&lt;br /&gt;
];&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In your &amp;lt;code&amp;gt;docker-compose.override.yml&amp;lt;/code&amp;gt; add&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
  samlidp:&lt;br /&gt;
    image: kristophjunge/test-saml-idp&lt;br /&gt;
    container_name: ${COMPOSE_PROJECT_NAME:-bluespice}-samlidp&lt;br /&gt;
    volumes:&lt;br /&gt;
      - ${DATADIR}/saml-idp/saml-config.php:/var/www/simplesamlphp/config/config.php&lt;br /&gt;
      - ${DATADIR}/saml-idp/saml-users.php:/var/www/simplesamlphp/config/authsources.php&lt;br /&gt;
      - ${DATADIR}/saml-idp/saml-sp-metadata.php:/var/www/simplesamlphp/metadata/saml20-sp-remote.php&lt;br /&gt;
    environment:&lt;br /&gt;
      VIRTUAL_HOST: ${WIKI_HOST}&lt;br /&gt;
      VIRTUAL_PATH: /_samlidp/&lt;br /&gt;
      VIRTUAL_PORT: 8080&lt;br /&gt;
      VIRTUAL_DEST: /&lt;br /&gt;
      DEV_SHARED_IDP_HOST: ${WIKI_HOST}&lt;br /&gt;
      DEV_SP_HOSTS: ${WIKI_HOST}###default-sp&lt;br /&gt;
    restart: no&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
After starting the stack with &amp;lt;code&amp;gt;./bluespice-deploy up -d&amp;lt;/code&amp;gt; you can&lt;br /&gt;
* access the IdP via https://localhost/_samlidp/simplesaml/module.php/core/frontpage_welcome.php (metadata at https://localhost/_samlidp/simplesaml/saml2/idp/metadata.php )&lt;br /&gt;
* test authentication on the SP via https://localhost/_sp/module.php/admin/test/default-sp (metadata at https://localhost/_sp/module.php/saml/sp/metadata/default-sp )&lt;br /&gt;
&lt;br /&gt;
To wire your wiki application, create a new file &amp;lt;code&amp;gt;settings.d/099-SAML-dev.local.php&amp;lt;/code&amp;gt; within your &amp;lt;code&amp;gt;$CODEDIR&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
$GLOBALS[&#039;wgExtensionFunctions&#039;][] = function () {&lt;br /&gt;
	$GLOBALS[&#039;wgPluggableAuth_EnableAutoLogin&#039;] = true;&lt;br /&gt;
	$GLOBALS[&#039;wgPluggableAuth_Config&#039;][&#039;Log in with SAML&#039;] = [&lt;br /&gt;
		&#039;plugin&#039; =&amp;gt; &#039;SimpleSAMLphp&#039;,&lt;br /&gt;
		&#039;data&#039; =&amp;gt; [&lt;br /&gt;
			&#039;authSourceId&#039; =&amp;gt; &#039;default-sp&#039;,&lt;br /&gt;
			&#039;usernameAttribute&#039; =&amp;gt; &#039;name&#039;,&lt;br /&gt;
			&#039;realNameAttribute&#039; =&amp;gt; &#039;name&#039;,&lt;br /&gt;
			&#039;emailAttribute&#039; =&amp;gt; &#039;email&#039;&lt;br /&gt;
		],&lt;br /&gt;
		&#039;groupsyncs&#039; =&amp;gt; [&lt;br /&gt;
			[&lt;br /&gt;
				&#039;type&#039; =&amp;gt; &#039;mapped&#039;,&lt;br /&gt;
					&#039;map&#039; =&amp;gt; [&lt;br /&gt;
						&#039;editor&#039; =&amp;gt; [&lt;br /&gt;
							&#039;groups&#039; =&amp;gt; &#039;wiki-contributor&#039;&lt;br /&gt;
						],&lt;br /&gt;
						&#039;sysop&#039; =&amp;gt; [&lt;br /&gt;
							&#039;groups&#039; =&amp;gt; &#039;wiki-admin&#039;&lt;br /&gt;
						]&lt;br /&gt;
					]&lt;br /&gt;
			]&lt;br /&gt;
		]&lt;br /&gt;
&lt;br /&gt;
	];&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Development/SAML_2.0_IdP&amp;diff=14411</id>
		<title>Development/SAML 2.0 IdP</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Development/SAML_2.0_IdP&amp;diff=14411"/>
		<updated>2026-07-14T11:31:56Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Create the following files and folders within your &amp;lt;code&amp;gt;$DATADIR&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
└── saml-idp&lt;br /&gt;
    ├── saml-config.php&lt;br /&gt;
    ├── saml-sp-metadata.php&lt;br /&gt;
    └── saml-users.php&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add the following content to the files&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;saml-config.php&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
// See https://github.com/kristophjunge/docker-test-saml-idp/blob/master/config/simplesamlphp/config.php&lt;br /&gt;
&lt;br /&gt;
$idPbaseUrl = &#039;https://&#039; . getenv( &#039;DEV_SHARED_IDP_HOST&#039; );&lt;br /&gt;
$config = [&lt;br /&gt;
	&#039;baseurlpath&#039; =&amp;gt; $idPbaseUrl . &#039;/_samlidp/simplesaml/&#039;,&lt;br /&gt;
	&#039;certdir&#039; =&amp;gt; &#039;cert/&#039;,&lt;br /&gt;
	&#039;loggingdir&#039; =&amp;gt; &#039;log/&#039;,&lt;br /&gt;
	&#039;datadir&#039; =&amp;gt; &#039;data/&#039;,&lt;br /&gt;
	&#039;tempdir&#039; =&amp;gt; &#039;/tmp/simplesaml&#039;,&lt;br /&gt;
	&#039;debug&#039; =&amp;gt; true,&lt;br /&gt;
	&#039;showerrors&#039; =&amp;gt; true,&lt;br /&gt;
	&#039;errorreporting&#039; =&amp;gt; true,&lt;br /&gt;
	&#039;debug.validatexml&#039; =&amp;gt; false,&lt;br /&gt;
	&#039;auth.adminpassword&#039; =&amp;gt; &#039;secret&#039;,&lt;br /&gt;
	&#039;admin.protectindexpage&#039; =&amp;gt; false,&lt;br /&gt;
	&#039;admin.protectmetadata&#039; =&amp;gt; false,&lt;br /&gt;
	&#039;secretsalt&#039; =&amp;gt; &#039;defaultsecretsalt&#039;,&lt;br /&gt;
	&#039;technicalcontact_name&#039; =&amp;gt; &#039;Administrator&#039;,&lt;br /&gt;
	&#039;technicalcontact_email&#039; =&amp;gt; &#039;na@example.invalid&#039;,&lt;br /&gt;
	&#039;timezone&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;logging.level&#039; =&amp;gt; SimpleSAML_Logger::DEBUG,&lt;br /&gt;
	&#039;logging.handler&#039; =&amp;gt; &#039;errorlog&#039;,&lt;br /&gt;
	&#039;logging.facility&#039; =&amp;gt; 168,&lt;br /&gt;
	&#039;logging.processname&#039; =&amp;gt; &#039;simplesamlphp&#039;,&lt;br /&gt;
	&#039;logging.logfile&#039; =&amp;gt; &#039;simplesamlphp.log&#039;,&lt;br /&gt;
	&#039;statistics.out&#039; =&amp;gt; [],&lt;br /&gt;
	&#039;database.dsn&#039; =&amp;gt; &#039;mysql:host=localhost;dbname=saml&#039;,&lt;br /&gt;
	&#039;database.username&#039; =&amp;gt; &#039;simplesamlphp&#039;,&lt;br /&gt;
	&#039;database.password&#039; =&amp;gt; &#039;secret&#039;,&lt;br /&gt;
	&#039;database.prefix&#039; =&amp;gt; &#039;&#039;,&lt;br /&gt;
	&#039;database.persistent&#039; =&amp;gt; false,&lt;br /&gt;
	&#039;database.slaves&#039; =&amp;gt; [],&lt;br /&gt;
	&#039;enable.saml20-idp&#039; =&amp;gt; true,&lt;br /&gt;
	&#039;enable.shib13-idp&#039; =&amp;gt; true,&lt;br /&gt;
	&#039;enable.adfs-idp&#039; =&amp;gt; false,&lt;br /&gt;
	&#039;enable.wsfed-sp&#039; =&amp;gt; false,&lt;br /&gt;
	&#039;enable.authmemcookie&#039; =&amp;gt; false,&lt;br /&gt;
	&#039;session.duration&#039; =&amp;gt; 28800,&lt;br /&gt;
	&#039;session.datastore.timeout&#039; =&amp;gt; 14400,&lt;br /&gt;
	&#039;session.state.timeout&#039; =&amp;gt; 3600,&lt;br /&gt;
	&#039;session.cookie.name&#039; =&amp;gt; &#039;SimpleSAMLSessionIDIdp&#039;,&lt;br /&gt;
	&#039;session.cookie.lifetime&#039; =&amp;gt; 0,&lt;br /&gt;
	&#039;session.cookie.path&#039; =&amp;gt; &#039;/&#039;,&lt;br /&gt;
	&#039;session.cookie.domain&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;session.cookie.secure&#039; =&amp;gt; false,&lt;br /&gt;
	&#039;enable.http_post&#039; =&amp;gt; false,&lt;br /&gt;
	&#039;session.phpsession.cookiename&#039; =&amp;gt; &#039;PHPSESSIDIDP&#039;,&lt;br /&gt;
	&#039;session.phpsession.savepath&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;session.phpsession.httponly&#039; =&amp;gt; true,&lt;br /&gt;
	&#039;session.authtoken.cookiename&#039; =&amp;gt; &#039;SimpleSAMLAuthTokenIdp&#039;,&lt;br /&gt;
	&#039;session.rememberme.enable&#039; =&amp;gt; false,&lt;br /&gt;
	&#039;session.rememberme.checked&#039; =&amp;gt; false,&lt;br /&gt;
	&#039;session.rememberme.lifetime&#039; =&amp;gt; 1209600,&lt;br /&gt;
	&#039;language.available&#039; =&amp;gt;&lt;br /&gt;
	[&lt;br /&gt;
		0 =&amp;gt; &#039;en&#039;,&lt;br /&gt;
		1 =&amp;gt; &#039;no&#039;,&lt;br /&gt;
		2 =&amp;gt; &#039;nn&#039;,&lt;br /&gt;
		3 =&amp;gt; &#039;se&#039;,&lt;br /&gt;
		4 =&amp;gt; &#039;da&#039;,&lt;br /&gt;
		5 =&amp;gt; &#039;de&#039;,&lt;br /&gt;
		6 =&amp;gt; &#039;sv&#039;,&lt;br /&gt;
		7 =&amp;gt; &#039;fi&#039;,&lt;br /&gt;
		8 =&amp;gt; &#039;es&#039;,&lt;br /&gt;
		9 =&amp;gt; &#039;fr&#039;,&lt;br /&gt;
		10 =&amp;gt; &#039;it&#039;,&lt;br /&gt;
		11 =&amp;gt; &#039;nl&#039;,&lt;br /&gt;
		12 =&amp;gt; &#039;lb&#039;,&lt;br /&gt;
		13 =&amp;gt; &#039;cs&#039;,&lt;br /&gt;
		14 =&amp;gt; &#039;sl&#039;,&lt;br /&gt;
		15 =&amp;gt; &#039;lt&#039;,&lt;br /&gt;
		16 =&amp;gt; &#039;hr&#039;,&lt;br /&gt;
		17 =&amp;gt; &#039;hu&#039;,&lt;br /&gt;
		18 =&amp;gt; &#039;pl&#039;,&lt;br /&gt;
		19 =&amp;gt; &#039;pt&#039;,&lt;br /&gt;
		20 =&amp;gt; &#039;pt-br&#039;,&lt;br /&gt;
		21 =&amp;gt; &#039;tr&#039;,&lt;br /&gt;
		22 =&amp;gt; &#039;ja&#039;,&lt;br /&gt;
		23 =&amp;gt; &#039;zh&#039;,&lt;br /&gt;
		24 =&amp;gt; &#039;zh-tw&#039;,&lt;br /&gt;
		25 =&amp;gt; &#039;ru&#039;,&lt;br /&gt;
		26 =&amp;gt; &#039;et&#039;,&lt;br /&gt;
		27 =&amp;gt; &#039;he&#039;,&lt;br /&gt;
		28 =&amp;gt; &#039;id&#039;,&lt;br /&gt;
		29 =&amp;gt; &#039;sr&#039;,&lt;br /&gt;
		30 =&amp;gt; &#039;lv&#039;,&lt;br /&gt;
		31 =&amp;gt; &#039;ro&#039;,&lt;br /&gt;
		32 =&amp;gt; &#039;eu&#039;,&lt;br /&gt;
	],&lt;br /&gt;
	&#039;language.rtl&#039; =&amp;gt;&lt;br /&gt;
	[&lt;br /&gt;
		0 =&amp;gt; &#039;ar&#039;,&lt;br /&gt;
		1 =&amp;gt; &#039;dv&#039;,&lt;br /&gt;
		2 =&amp;gt; &#039;fa&#039;,&lt;br /&gt;
		3 =&amp;gt; &#039;ur&#039;,&lt;br /&gt;
		4 =&amp;gt; &#039;he&#039;,&lt;br /&gt;
	],&lt;br /&gt;
	&#039;language.default&#039; =&amp;gt; &#039;en&#039;,&lt;br /&gt;
	&#039;language.parameter.name&#039; =&amp;gt; &#039;language&#039;,&lt;br /&gt;
	&#039;language.parameter.setcookie&#039; =&amp;gt; true,&lt;br /&gt;
	&#039;language.cookie.name&#039; =&amp;gt; &#039;language&#039;,&lt;br /&gt;
	&#039;language.cookie.domain&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;language.cookie.path&#039; =&amp;gt; &#039;/&#039;,&lt;br /&gt;
	&#039;language.cookie.lifetime&#039; =&amp;gt; 77760000,&lt;br /&gt;
	&#039;attributes.extradictionary&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;theme.use&#039; =&amp;gt; &#039;default&#039;,&lt;br /&gt;
	&#039;default-wsfed-idp&#039; =&amp;gt; &#039;urn:federation:pingfederate:localhost&#039;,&lt;br /&gt;
	&#039;idpdisco.enableremember&#039; =&amp;gt; true,&lt;br /&gt;
	&#039;idpdisco.rememberchecked&#039; =&amp;gt; true,&lt;br /&gt;
	&#039;idpdisco.validate&#039; =&amp;gt; true,&lt;br /&gt;
	&#039;idpdisco.extDiscoveryStorage&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;idpdisco.layout&#039; =&amp;gt; &#039;dropdown&#039;,&lt;br /&gt;
	&#039;shib13.signresponse&#039; =&amp;gt; true,&lt;br /&gt;
	&#039;authproc.idp&#039; =&amp;gt;&lt;br /&gt;
	[&lt;br /&gt;
		30 =&amp;gt; &#039;core:LanguageAdaptor&#039;,&lt;br /&gt;
		45 =&amp;gt;&lt;br /&gt;
		[&lt;br /&gt;
			&#039;class&#039; =&amp;gt; &#039;core:StatisticsWithAttribute&#039;,&lt;br /&gt;
			&#039;attributename&#039; =&amp;gt; &#039;realm&#039;,&lt;br /&gt;
			&#039;type&#039; =&amp;gt; &#039;saml20-idp-SSO&#039;,&lt;br /&gt;
		],&lt;br /&gt;
		50 =&amp;gt; &#039;core:AttributeLimit&#039;,&lt;br /&gt;
		99 =&amp;gt; &#039;core:LanguageAdaptor&#039;,&lt;br /&gt;
	],&lt;br /&gt;
	&#039;authproc.sp&#039; =&amp;gt;&lt;br /&gt;
	[&lt;br /&gt;
		90 =&amp;gt; &#039;core:LanguageAdaptor&#039;,&lt;br /&gt;
	],&lt;br /&gt;
	&#039;metadata.sources&#039; =&amp;gt;&lt;br /&gt;
	[&lt;br /&gt;
		[&lt;br /&gt;
			&#039;type&#039; =&amp;gt; &#039;flatfile&#039;,&lt;br /&gt;
		],&lt;br /&gt;
	],&lt;br /&gt;
	&#039;store.type&#039; =&amp;gt; &#039;phpsession&#039;,&lt;br /&gt;
	&#039;store.sql.dsn&#039; =&amp;gt; &#039;sqlite:/path/to/sqlitedatabase.sq3&#039;,&lt;br /&gt;
	&#039;store.sql.username&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;store.sql.password&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;store.sql.prefix&#039; =&amp;gt; &#039;SimpleSAMLphp&#039;,&lt;br /&gt;
	&#039;memcache_store.servers&#039; =&amp;gt;&lt;br /&gt;
	[&lt;br /&gt;
		[&lt;br /&gt;
			[&lt;br /&gt;
				&#039;hostname&#039; =&amp;gt; &#039;localhost&#039;,&lt;br /&gt;
			],&lt;br /&gt;
		],&lt;br /&gt;
	],&lt;br /&gt;
	&#039;memcache_store.prefix&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;memcache_store.expires&#039; =&amp;gt; 129600,&lt;br /&gt;
	&#039;metadata.sign.enable&#039; =&amp;gt; false,&lt;br /&gt;
	&#039;metadata.sign.privatekey&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;metadata.sign.privatekey_pass&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;metadata.sign.certificate&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;proxy&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;trusted.url.domains&#039; =&amp;gt; [],&lt;br /&gt;
];&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;saml-sp-metadata.php&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
#SIMPLESAMLPHP_SP_ENTITY_ID: https://${DEV_SHARED_IDP_HOST}/simplesaml/saml2/idp/metadata.php&lt;br /&gt;
#SIMPLESAMLPHP_SP_ASSERTION_CONSUMER_SERVICE: https://${DEV_PROD_EU_HOST}/_sp/module.php/saml/sp/saml2-acs.php/default-sp&lt;br /&gt;
#SIMPLESAMLPHP_SP_SINGLE_LOGOUT_SERVICE: https://${DEV_PROD_EU_HOST}/_sp/module.php/saml/sp/saml2-logout.php/default-sp&lt;br /&gt;
&lt;br /&gt;
# Test authn: https://mydev.localhost/_sp/module.php/admin/test/default-sp&lt;br /&gt;
&lt;br /&gt;
$idpHost = getenv( &#039;DEV_SHARED_IDP_HOST&#039; );&lt;br /&gt;
$spHosts = getenv( &#039;DEV_SP_HOSTS&#039; ) ?? &#039;&#039;;&lt;br /&gt;
$spHosts = explode( &#039;,&#039;, $spHosts );&lt;br /&gt;
$spHosts = array_map( &#039;trim&#039;, $spHosts );&lt;br /&gt;
&lt;br /&gt;
$metadata = [];&lt;br /&gt;
&lt;br /&gt;
foreach ( $spHosts as $spHostAndName ) {&lt;br /&gt;
	$spParts = explode( &#039;###&#039;, $spHostAndName );&lt;br /&gt;
	$spHost = $spParts[0];&lt;br /&gt;
	$spName = $spParts[1];&lt;br /&gt;
	$metadata[&amp;quot;https://$spHost&amp;quot;] = array(&lt;br /&gt;
		&#039;AssertionConsumerService&#039; =&amp;gt; &amp;quot;https://$spHost/_sp/module.php/saml/sp/saml2-acs.php/$spName&amp;quot;,&lt;br /&gt;
		&#039;SingleLogoutService&#039; =&amp;gt; &amp;quot;https://$spHost/_sp/module.php/saml/sp/saml2-logout.php/$spName&amp;quot;,&lt;br /&gt;
	);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;saml-users.php&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
// See https://github.com/kristophjunge/docker-test-saml-idp/blob/master/config/simplesamlphp/authsources.php&lt;br /&gt;
&lt;br /&gt;
$pass = getenv( &#039;DB_ROOT_PASS&#039; );&lt;br /&gt;
&lt;br /&gt;
$config = [&lt;br /&gt;
	&#039;admin&#039; =&amp;gt; [&lt;br /&gt;
		&#039;core:AdminPassword&#039;,&lt;br /&gt;
	],&lt;br /&gt;
	&#039;example-userpass&#039; =&amp;gt; [&lt;br /&gt;
		// First element must be a string which identifies the authentication source.&lt;br /&gt;
		&#039;exampleauth:UserPass&#039;,&lt;br /&gt;
&lt;br /&gt;
		&amp;quot;alice@example.invalid:$pass&amp;quot; =&amp;gt; [&lt;br /&gt;
			&#039;username&#039; =&amp;gt; [ &#039;alice@example.invalid&#039; ],&lt;br /&gt;
			&#039;name&#039; =&amp;gt; [ &#039;Alice&#039; ],&lt;br /&gt;
			&#039;email&#039; =&amp;gt; [ &#039;alice@example.invalid&#039; ],&lt;br /&gt;
			&#039;groups&#039; =&amp;gt; [ &#039;wiki-contributor&#039;, &#039;wiki-admin&#039; ]&lt;br /&gt;
		],&lt;br /&gt;
		&amp;quot;bob@example.invalid:$pass&amp;quot; =&amp;gt; [&lt;br /&gt;
			&#039;username&#039; =&amp;gt; [ &#039;bob@example.invalid&#039; ],&lt;br /&gt;
			&#039;name&#039; =&amp;gt; [ &#039;Bob&#039; ],&lt;br /&gt;
			&#039;email&#039; =&amp;gt; [ &#039;bob@example.invalid&#039; ],&lt;br /&gt;
			&#039;groups&#039; =&amp;gt; [ &#039;wiki-contributor&#039; ]&lt;br /&gt;
		],&lt;br /&gt;
		&amp;quot;charlie@example.invalid:$pass&amp;quot; =&amp;gt; [&lt;br /&gt;
			&#039;username&#039; =&amp;gt; [ &#039;charlie@example.invalid&#039; ],&lt;br /&gt;
			&#039;name&#039; =&amp;gt; [ &#039;Charlie&#039; ],&lt;br /&gt;
			&#039;email&#039; =&amp;gt; [ &#039;charlie@example.invalid&#039; ],&lt;br /&gt;
			&#039;groups&#039; =&amp;gt; [ &#039;wiki-admin&#039; ]&lt;br /&gt;
		]&lt;br /&gt;
	],&lt;br /&gt;
];&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In your &amp;lt;code&amp;gt;docker-compose.override.yml&amp;lt;/code&amp;gt; add&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
  samlidp:&lt;br /&gt;
    image: kristophjunge/test-saml-idp&lt;br /&gt;
    container_name: ${COMPOSE_PROJECT_NAME:-bluespice}-samlidp&lt;br /&gt;
    volumes:&lt;br /&gt;
      - ${DATADIR}/saml-idp/saml-config.php:/var/www/simplesamlphp/config/config.php&lt;br /&gt;
      - ${DATADIR}/saml-idp/saml-users.php:/var/www/simplesamlphp/config/authsources.php&lt;br /&gt;
      - ${DATADIR}/saml-idp/saml-sp-metadata.php:/var/www/simplesamlphp/metadata/saml20-sp-remote.php&lt;br /&gt;
    environment:&lt;br /&gt;
      VIRTUAL_HOST: ${WIKI_HOST}&lt;br /&gt;
      VIRTUAL_PATH: /_samlidp/&lt;br /&gt;
      VIRTUAL_PORT: 8080&lt;br /&gt;
      VIRTUAL_DEST: /&lt;br /&gt;
      DEV_SHARED_IDP_HOST: ${WIKI_HOST}&lt;br /&gt;
      DEV_SP_HOSTS: ${WIKI_HOST}###default-sp&lt;br /&gt;
    restart: no&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
After starting the stack with &amp;lt;code&amp;gt;./bluespice-deploy up -d&amp;lt;/code&amp;gt; you can&lt;br /&gt;
* access the IdP via https://localhost/_samlidp/simplesaml/module.php/core/frontpage_welcome.php (metadata at https://localhost/_samlidp/simplesaml/saml2/idp/metadata.php )&lt;br /&gt;
* test authentication on the SP via https://localhost/_sp/module.php/admin/test/default-sp (metadata at https://localhost/_sp/module.php/saml/sp/metadata/default-sp )&lt;br /&gt;
&lt;br /&gt;
To wire your wiki application, create a new file &amp;lt;code&amp;gt;settings.d/099-SAML-dev.local.php&amp;lt;/code&amp;gt; within your &amp;lt;code&amp;gt;$CODEDIR&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
$GLOBALS[&#039;wgExtensionFunctions&#039;][] = function () {&lt;br /&gt;
	$GLOBALS[&#039;wgPluggableAuth_EnableAutoLogin&#039;] = true;&lt;br /&gt;
	$GLOBALS[&#039;wgPluggableAuth_Config&#039;][&#039;Log in with SAML&#039;] = [&lt;br /&gt;
		&#039;plugin&#039; =&amp;gt; &#039;SimpleSAMLphp&#039;,&lt;br /&gt;
		&#039;data&#039; =&amp;gt; [&lt;br /&gt;
			&#039;authSourceId&#039; =&amp;gt; &#039;default-sp&#039;,&lt;br /&gt;
			&#039;usernameAttribute&#039; =&amp;gt; &#039;username&#039;,&lt;br /&gt;
			&#039;realNameAttribute&#039; =&amp;gt; &#039;name&#039;,&lt;br /&gt;
			&#039;emailAttribute&#039; =&amp;gt; &#039;email&#039;&lt;br /&gt;
		],&lt;br /&gt;
		&#039;groupsyncs&#039; =&amp;gt; [&lt;br /&gt;
			[&lt;br /&gt;
				&#039;type&#039; =&amp;gt; &#039;mapped&#039;,&lt;br /&gt;
					&#039;map&#039; =&amp;gt; [&lt;br /&gt;
						&#039;editor&#039; =&amp;gt; [&lt;br /&gt;
							&#039;groups&#039; =&amp;gt; &#039;wiki-contributor&#039;&lt;br /&gt;
						],&lt;br /&gt;
						&#039;sysop&#039; =&amp;gt; [&lt;br /&gt;
							&#039;groups&#039; =&amp;gt; &#039;wiki-admin&#039;&lt;br /&gt;
						]&lt;br /&gt;
					]&lt;br /&gt;
			]&lt;br /&gt;
		]&lt;br /&gt;
&lt;br /&gt;
	];&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Development/SAML_2.0_IdP&amp;diff=14410</id>
		<title>Development/SAML 2.0 IdP</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Development/SAML_2.0_IdP&amp;diff=14410"/>
		<updated>2026-07-14T11:25:38Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Create the following files and folders within your &amp;lt;code&amp;gt;$DATADIR&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
└── saml-idp&lt;br /&gt;
    ├── saml-config.php&lt;br /&gt;
    ├── saml-sp-metadata.php&lt;br /&gt;
    └── saml-users.php&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add the following content to the files&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;saml-config.php&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
// See https://github.com/kristophjunge/docker-test-saml-idp/blob/master/config/simplesamlphp/config.php&lt;br /&gt;
&lt;br /&gt;
$idPbaseUrl = &#039;https://&#039; . getenv( &#039;DEV_SHARED_IDP_HOST&#039; );&lt;br /&gt;
$config = [&lt;br /&gt;
	&#039;baseurlpath&#039; =&amp;gt; $idPbaseUrl . &#039;/_samlidp/simplesaml/&#039;,&lt;br /&gt;
	&#039;certdir&#039; =&amp;gt; &#039;cert/&#039;,&lt;br /&gt;
	&#039;loggingdir&#039; =&amp;gt; &#039;log/&#039;,&lt;br /&gt;
	&#039;datadir&#039; =&amp;gt; &#039;data/&#039;,&lt;br /&gt;
	&#039;tempdir&#039; =&amp;gt; &#039;/tmp/simplesaml&#039;,&lt;br /&gt;
	&#039;debug&#039; =&amp;gt; true,&lt;br /&gt;
	&#039;showerrors&#039; =&amp;gt; true,&lt;br /&gt;
	&#039;errorreporting&#039; =&amp;gt; true,&lt;br /&gt;
	&#039;debug.validatexml&#039; =&amp;gt; false,&lt;br /&gt;
	&#039;auth.adminpassword&#039; =&amp;gt; &#039;secret&#039;,&lt;br /&gt;
	&#039;admin.protectindexpage&#039; =&amp;gt; false,&lt;br /&gt;
	&#039;admin.protectmetadata&#039; =&amp;gt; false,&lt;br /&gt;
	&#039;secretsalt&#039; =&amp;gt; &#039;defaultsecretsalt&#039;,&lt;br /&gt;
	&#039;technicalcontact_name&#039; =&amp;gt; &#039;Administrator&#039;,&lt;br /&gt;
	&#039;technicalcontact_email&#039; =&amp;gt; &#039;na@example.invalid&#039;,&lt;br /&gt;
	&#039;timezone&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;logging.level&#039; =&amp;gt; SimpleSAML_Logger::DEBUG,&lt;br /&gt;
	&#039;logging.handler&#039; =&amp;gt; &#039;errorlog&#039;,&lt;br /&gt;
	&#039;logging.facility&#039; =&amp;gt; 168,&lt;br /&gt;
	&#039;logging.processname&#039; =&amp;gt; &#039;simplesamlphp&#039;,&lt;br /&gt;
	&#039;logging.logfile&#039; =&amp;gt; &#039;simplesamlphp.log&#039;,&lt;br /&gt;
	&#039;statistics.out&#039; =&amp;gt; [],&lt;br /&gt;
	&#039;database.dsn&#039; =&amp;gt; &#039;mysql:host=localhost;dbname=saml&#039;,&lt;br /&gt;
	&#039;database.username&#039; =&amp;gt; &#039;simplesamlphp&#039;,&lt;br /&gt;
	&#039;database.password&#039; =&amp;gt; &#039;secret&#039;,&lt;br /&gt;
	&#039;database.prefix&#039; =&amp;gt; &#039;&#039;,&lt;br /&gt;
	&#039;database.persistent&#039; =&amp;gt; false,&lt;br /&gt;
	&#039;database.slaves&#039; =&amp;gt; [],&lt;br /&gt;
	&#039;enable.saml20-idp&#039; =&amp;gt; true,&lt;br /&gt;
	&#039;enable.shib13-idp&#039; =&amp;gt; true,&lt;br /&gt;
	&#039;enable.adfs-idp&#039; =&amp;gt; false,&lt;br /&gt;
	&#039;enable.wsfed-sp&#039; =&amp;gt; false,&lt;br /&gt;
	&#039;enable.authmemcookie&#039; =&amp;gt; false,&lt;br /&gt;
	&#039;session.duration&#039; =&amp;gt; 28800,&lt;br /&gt;
	&#039;session.datastore.timeout&#039; =&amp;gt; 14400,&lt;br /&gt;
	&#039;session.state.timeout&#039; =&amp;gt; 3600,&lt;br /&gt;
	&#039;session.cookie.name&#039; =&amp;gt; &#039;SimpleSAMLSessionIDIdp&#039;,&lt;br /&gt;
	&#039;session.cookie.lifetime&#039; =&amp;gt; 0,&lt;br /&gt;
	&#039;session.cookie.path&#039; =&amp;gt; &#039;/&#039;,&lt;br /&gt;
	&#039;session.cookie.domain&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;session.cookie.secure&#039; =&amp;gt; false,&lt;br /&gt;
	&#039;enable.http_post&#039; =&amp;gt; false,&lt;br /&gt;
	&#039;session.phpsession.cookiename&#039; =&amp;gt; &#039;PHPSESSIDIDP&#039;,&lt;br /&gt;
	&#039;session.phpsession.savepath&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;session.phpsession.httponly&#039; =&amp;gt; true,&lt;br /&gt;
	&#039;session.authtoken.cookiename&#039; =&amp;gt; &#039;SimpleSAMLAuthTokenIdp&#039;,&lt;br /&gt;
	&#039;session.rememberme.enable&#039; =&amp;gt; false,&lt;br /&gt;
	&#039;session.rememberme.checked&#039; =&amp;gt; false,&lt;br /&gt;
	&#039;session.rememberme.lifetime&#039; =&amp;gt; 1209600,&lt;br /&gt;
	&#039;language.available&#039; =&amp;gt;&lt;br /&gt;
	[&lt;br /&gt;
		0 =&amp;gt; &#039;en&#039;,&lt;br /&gt;
		1 =&amp;gt; &#039;no&#039;,&lt;br /&gt;
		2 =&amp;gt; &#039;nn&#039;,&lt;br /&gt;
		3 =&amp;gt; &#039;se&#039;,&lt;br /&gt;
		4 =&amp;gt; &#039;da&#039;,&lt;br /&gt;
		5 =&amp;gt; &#039;de&#039;,&lt;br /&gt;
		6 =&amp;gt; &#039;sv&#039;,&lt;br /&gt;
		7 =&amp;gt; &#039;fi&#039;,&lt;br /&gt;
		8 =&amp;gt; &#039;es&#039;,&lt;br /&gt;
		9 =&amp;gt; &#039;fr&#039;,&lt;br /&gt;
		10 =&amp;gt; &#039;it&#039;,&lt;br /&gt;
		11 =&amp;gt; &#039;nl&#039;,&lt;br /&gt;
		12 =&amp;gt; &#039;lb&#039;,&lt;br /&gt;
		13 =&amp;gt; &#039;cs&#039;,&lt;br /&gt;
		14 =&amp;gt; &#039;sl&#039;,&lt;br /&gt;
		15 =&amp;gt; &#039;lt&#039;,&lt;br /&gt;
		16 =&amp;gt; &#039;hr&#039;,&lt;br /&gt;
		17 =&amp;gt; &#039;hu&#039;,&lt;br /&gt;
		18 =&amp;gt; &#039;pl&#039;,&lt;br /&gt;
		19 =&amp;gt; &#039;pt&#039;,&lt;br /&gt;
		20 =&amp;gt; &#039;pt-br&#039;,&lt;br /&gt;
		21 =&amp;gt; &#039;tr&#039;,&lt;br /&gt;
		22 =&amp;gt; &#039;ja&#039;,&lt;br /&gt;
		23 =&amp;gt; &#039;zh&#039;,&lt;br /&gt;
		24 =&amp;gt; &#039;zh-tw&#039;,&lt;br /&gt;
		25 =&amp;gt; &#039;ru&#039;,&lt;br /&gt;
		26 =&amp;gt; &#039;et&#039;,&lt;br /&gt;
		27 =&amp;gt; &#039;he&#039;,&lt;br /&gt;
		28 =&amp;gt; &#039;id&#039;,&lt;br /&gt;
		29 =&amp;gt; &#039;sr&#039;,&lt;br /&gt;
		30 =&amp;gt; &#039;lv&#039;,&lt;br /&gt;
		31 =&amp;gt; &#039;ro&#039;,&lt;br /&gt;
		32 =&amp;gt; &#039;eu&#039;,&lt;br /&gt;
	],&lt;br /&gt;
	&#039;language.rtl&#039; =&amp;gt;&lt;br /&gt;
	[&lt;br /&gt;
		0 =&amp;gt; &#039;ar&#039;,&lt;br /&gt;
		1 =&amp;gt; &#039;dv&#039;,&lt;br /&gt;
		2 =&amp;gt; &#039;fa&#039;,&lt;br /&gt;
		3 =&amp;gt; &#039;ur&#039;,&lt;br /&gt;
		4 =&amp;gt; &#039;he&#039;,&lt;br /&gt;
	],&lt;br /&gt;
	&#039;language.default&#039; =&amp;gt; &#039;en&#039;,&lt;br /&gt;
	&#039;language.parameter.name&#039; =&amp;gt; &#039;language&#039;,&lt;br /&gt;
	&#039;language.parameter.setcookie&#039; =&amp;gt; true,&lt;br /&gt;
	&#039;language.cookie.name&#039; =&amp;gt; &#039;language&#039;,&lt;br /&gt;
	&#039;language.cookie.domain&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;language.cookie.path&#039; =&amp;gt; &#039;/&#039;,&lt;br /&gt;
	&#039;language.cookie.lifetime&#039; =&amp;gt; 77760000,&lt;br /&gt;
	&#039;attributes.extradictionary&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;theme.use&#039; =&amp;gt; &#039;default&#039;,&lt;br /&gt;
	&#039;default-wsfed-idp&#039; =&amp;gt; &#039;urn:federation:pingfederate:localhost&#039;,&lt;br /&gt;
	&#039;idpdisco.enableremember&#039; =&amp;gt; true,&lt;br /&gt;
	&#039;idpdisco.rememberchecked&#039; =&amp;gt; true,&lt;br /&gt;
	&#039;idpdisco.validate&#039; =&amp;gt; true,&lt;br /&gt;
	&#039;idpdisco.extDiscoveryStorage&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;idpdisco.layout&#039; =&amp;gt; &#039;dropdown&#039;,&lt;br /&gt;
	&#039;shib13.signresponse&#039; =&amp;gt; true,&lt;br /&gt;
	&#039;authproc.idp&#039; =&amp;gt;&lt;br /&gt;
	[&lt;br /&gt;
		30 =&amp;gt; &#039;core:LanguageAdaptor&#039;,&lt;br /&gt;
		45 =&amp;gt;&lt;br /&gt;
		[&lt;br /&gt;
			&#039;class&#039; =&amp;gt; &#039;core:StatisticsWithAttribute&#039;,&lt;br /&gt;
			&#039;attributename&#039; =&amp;gt; &#039;realm&#039;,&lt;br /&gt;
			&#039;type&#039; =&amp;gt; &#039;saml20-idp-SSO&#039;,&lt;br /&gt;
		],&lt;br /&gt;
		50 =&amp;gt; &#039;core:AttributeLimit&#039;,&lt;br /&gt;
		99 =&amp;gt; &#039;core:LanguageAdaptor&#039;,&lt;br /&gt;
	],&lt;br /&gt;
	&#039;authproc.sp&#039; =&amp;gt;&lt;br /&gt;
	[&lt;br /&gt;
		90 =&amp;gt; &#039;core:LanguageAdaptor&#039;,&lt;br /&gt;
	],&lt;br /&gt;
	&#039;metadata.sources&#039; =&amp;gt;&lt;br /&gt;
	[&lt;br /&gt;
		[&lt;br /&gt;
			&#039;type&#039; =&amp;gt; &#039;flatfile&#039;,&lt;br /&gt;
		],&lt;br /&gt;
	],&lt;br /&gt;
	&#039;store.type&#039; =&amp;gt; &#039;phpsession&#039;,&lt;br /&gt;
	&#039;store.sql.dsn&#039; =&amp;gt; &#039;sqlite:/path/to/sqlitedatabase.sq3&#039;,&lt;br /&gt;
	&#039;store.sql.username&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;store.sql.password&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;store.sql.prefix&#039; =&amp;gt; &#039;SimpleSAMLphp&#039;,&lt;br /&gt;
	&#039;memcache_store.servers&#039; =&amp;gt;&lt;br /&gt;
	[&lt;br /&gt;
		[&lt;br /&gt;
			[&lt;br /&gt;
				&#039;hostname&#039; =&amp;gt; &#039;localhost&#039;,&lt;br /&gt;
			],&lt;br /&gt;
		],&lt;br /&gt;
	],&lt;br /&gt;
	&#039;memcache_store.prefix&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;memcache_store.expires&#039; =&amp;gt; 129600,&lt;br /&gt;
	&#039;metadata.sign.enable&#039; =&amp;gt; false,&lt;br /&gt;
	&#039;metadata.sign.privatekey&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;metadata.sign.privatekey_pass&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;metadata.sign.certificate&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;proxy&#039; =&amp;gt; NULL,&lt;br /&gt;
	&#039;trusted.url.domains&#039; =&amp;gt; [],&lt;br /&gt;
];&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;saml-sp-metadata.php&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
#SIMPLESAMLPHP_SP_ENTITY_ID: https://${DEV_SHARED_IDP_HOST}/simplesaml/saml2/idp/metadata.php&lt;br /&gt;
#SIMPLESAMLPHP_SP_ASSERTION_CONSUMER_SERVICE: https://${DEV_PROD_EU_HOST}/_sp/module.php/saml/sp/saml2-acs.php/default-sp&lt;br /&gt;
#SIMPLESAMLPHP_SP_SINGLE_LOGOUT_SERVICE: https://${DEV_PROD_EU_HOST}/_sp/module.php/saml/sp/saml2-logout.php/default-sp&lt;br /&gt;
&lt;br /&gt;
# Test authn: https://mydev.localhost/_sp/module.php/admin/test/default-sp&lt;br /&gt;
&lt;br /&gt;
$idpHost = getenv( &#039;DEV_SHARED_IDP_HOST&#039; );&lt;br /&gt;
$spHosts = getenv( &#039;DEV_SP_HOSTS&#039; ) ?? &#039;&#039;;&lt;br /&gt;
$spHosts = explode( &#039;,&#039;, $spHosts );&lt;br /&gt;
$spHosts = array_map( &#039;trim&#039;, $spHosts );&lt;br /&gt;
&lt;br /&gt;
$metadata = [];&lt;br /&gt;
&lt;br /&gt;
foreach ( $spHosts as $spHostAndName ) {&lt;br /&gt;
	$spParts = explode( &#039;###&#039;, $spHostAndName );&lt;br /&gt;
	$spHost = $spParts[0];&lt;br /&gt;
	$spName = $spParts[1];&lt;br /&gt;
	$metadata[&amp;quot;https://$spHost&amp;quot;] = array(&lt;br /&gt;
		&#039;AssertionConsumerService&#039; =&amp;gt; &amp;quot;https://$spHost/_sp/module.php/saml/sp/saml2-acs.php/$spName&amp;quot;,&lt;br /&gt;
		&#039;SingleLogoutService&#039; =&amp;gt; &amp;quot;https://$spHost/_sp/module.php/saml/sp/saml2-logout.php/$spName&amp;quot;,&lt;br /&gt;
	);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;saml-users.php&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
// See https://github.com/kristophjunge/docker-test-saml-idp/blob/master/config/simplesamlphp/authsources.php&lt;br /&gt;
&lt;br /&gt;
$pass = getenv( &#039;DB_ROOT_PASS&#039; );&lt;br /&gt;
&lt;br /&gt;
$config = [&lt;br /&gt;
	&#039;admin&#039; =&amp;gt; [&lt;br /&gt;
		&#039;core:AdminPassword&#039;,&lt;br /&gt;
	],&lt;br /&gt;
	&#039;example-userpass&#039; =&amp;gt; [&lt;br /&gt;
		// First element must be a string which identifies the authentication source.&lt;br /&gt;
		&#039;exampleauth:UserPass&#039;,&lt;br /&gt;
&lt;br /&gt;
		&amp;quot;alice@example.invalid:$pass&amp;quot; =&amp;gt; [&lt;br /&gt;
			&#039;username&#039; =&amp;gt; [ &#039;alice@example.invalid&#039; ],&lt;br /&gt;
			&#039;name&#039; =&amp;gt; [ &#039;Alice&#039; ],&lt;br /&gt;
			&#039;email&#039; =&amp;gt; [ &#039;alice@example.invalid&#039; ],&lt;br /&gt;
			&#039;groups&#039; =&amp;gt; [ &#039;wiki-contributor&#039;, &#039;wiki-admin&#039; ]&lt;br /&gt;
		],&lt;br /&gt;
		&amp;quot;bob@example.invalid:$pass&amp;quot; =&amp;gt; [&lt;br /&gt;
			&#039;username&#039; =&amp;gt; [ &#039;bob@example.invalid&#039; ],&lt;br /&gt;
			&#039;name&#039; =&amp;gt; [ &#039;Bob&#039; ],&lt;br /&gt;
			&#039;email&#039; =&amp;gt; [ &#039;bob@example.invalid&#039; ],&lt;br /&gt;
			&#039;groups&#039; =&amp;gt; [ &#039;wiki-contributor&#039; ]&lt;br /&gt;
		],&lt;br /&gt;
		&amp;quot;charlie@example.invalid:$pass&amp;quot; =&amp;gt; [&lt;br /&gt;
			&#039;username&#039; =&amp;gt; [ &#039;charlie@example.invalid&#039; ],&lt;br /&gt;
			&#039;name&#039; =&amp;gt; [ &#039;Charlie&#039; ],&lt;br /&gt;
			&#039;email&#039; =&amp;gt; [ &#039;charlie@example.invalid&#039; ],&lt;br /&gt;
			&#039;groups&#039; =&amp;gt; [ &#039;wiki-admin&#039; ]&lt;br /&gt;
		]&lt;br /&gt;
	],&lt;br /&gt;
];&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In your &amp;lt;code&amp;gt;docker-compose.override.yml&amp;lt;/code&amp;gt; add&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
  samlidp:&lt;br /&gt;
    image: kristophjunge/test-saml-idp&lt;br /&gt;
    container_name: ${COMPOSE_PROJECT_NAME:-bluespice}-samlidp&lt;br /&gt;
    volumes:&lt;br /&gt;
      - ${DATADIR}/saml-idp/saml-config.php:/var/www/simplesamlphp/config/config.php&lt;br /&gt;
      - ${DATADIR}/saml-idp/saml-users.php:/var/www/simplesamlphp/config/authsources.php&lt;br /&gt;
      - ${DATADIR}/saml-idp/saml-sp-metadata.php:/var/www/simplesamlphp/metadata/saml20-sp-remote.php&lt;br /&gt;
    environment:&lt;br /&gt;
      VIRTUAL_HOST: ${WIKI_HOST}&lt;br /&gt;
      VIRTUAL_PATH: /_samlidp/&lt;br /&gt;
      VIRTUAL_PORT: 8080&lt;br /&gt;
      VIRTUAL_DEST: /&lt;br /&gt;
      DEV_SHARED_IDP_HOST: ${WIKI_HOST}&lt;br /&gt;
      DEV_SP_HOSTS: ${WIKI_HOST}###default-sp&lt;br /&gt;
    restart: no&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
After&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Within your &amp;lt;code&amp;gt;$CODEDIR&amp;lt;/code&amp;gt;, create a new file&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;settings.d/099-SAML-dev.local.php&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
$GLOBALS[&#039;wgExtensionFunctions&#039;][] = function () {&lt;br /&gt;
	$GLOBALS[&#039;wgPluggableAuth_EnableAutoLogin&#039;] = true;&lt;br /&gt;
	$GLOBALS[&#039;wgPluggableAuth_Config&#039;][&#039;Log in with SAML&#039;] = [&lt;br /&gt;
		&#039;plugin&#039; =&amp;gt; &#039;SimpleSAMLphp&#039;,&lt;br /&gt;
		&#039;data&#039; =&amp;gt; [&lt;br /&gt;
			&#039;authSourceId&#039; =&amp;gt; &#039;default-sp&#039;,&lt;br /&gt;
			&#039;usernameAttribute&#039; =&amp;gt; &#039;username&#039;,&lt;br /&gt;
			&#039;realNameAttribute&#039; =&amp;gt; &#039;name&#039;,&lt;br /&gt;
			&#039;emailAttribute&#039; =&amp;gt; &#039;email&#039;&lt;br /&gt;
		],&lt;br /&gt;
		&#039;groupsyncs&#039; =&amp;gt; [&lt;br /&gt;
			[&lt;br /&gt;
				&#039;type&#039; =&amp;gt; &#039;mapped&#039;,&lt;br /&gt;
					&#039;map&#039; =&amp;gt; [&lt;br /&gt;
						&#039;editor&#039; =&amp;gt; [&lt;br /&gt;
							&#039;groups&#039; =&amp;gt; &#039;wiki-contributor&#039;&lt;br /&gt;
						],&lt;br /&gt;
						&#039;sysop&#039; =&amp;gt; [&lt;br /&gt;
							&#039;groups&#039; =&amp;gt; &#039;wiki-admin&#039;&lt;br /&gt;
						]&lt;br /&gt;
					]&lt;br /&gt;
			]&lt;br /&gt;
		]&lt;br /&gt;
&lt;br /&gt;
	];&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Development/SAML_2.0_IdP&amp;diff=14409</id>
		<title>Development/SAML 2.0 IdP</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Development/SAML_2.0_IdP&amp;diff=14409"/>
		<updated>2026-07-14T11:24:36Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Create the following files and folders within your &amp;lt;code&amp;gt;$DATADIR&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
└── saml-idp&lt;br /&gt;
    ├── saml-config.php&lt;br /&gt;
    ├── saml-sp-metadata.php&lt;br /&gt;
    └── saml-users.php&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add the following content to the files&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;saml-sp-metadata.php&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
#SIMPLESAMLPHP_SP_ENTITY_ID: https://${DEV_SHARED_IDP_HOST}/simplesaml/saml2/idp/metadata.php&lt;br /&gt;
#SIMPLESAMLPHP_SP_ASSERTION_CONSUMER_SERVICE: https://${DEV_PROD_EU_HOST}/_sp/module.php/saml/sp/saml2-acs.php/default-sp&lt;br /&gt;
#SIMPLESAMLPHP_SP_SINGLE_LOGOUT_SERVICE: https://${DEV_PROD_EU_HOST}/_sp/module.php/saml/sp/saml2-logout.php/default-sp&lt;br /&gt;
&lt;br /&gt;
# Test authn: https://mydev.localhost/_sp/module.php/admin/test/default-sp&lt;br /&gt;
&lt;br /&gt;
$idpHost = getenv( &#039;DEV_SHARED_IDP_HOST&#039; );&lt;br /&gt;
$spHosts = getenv( &#039;DEV_SP_HOSTS&#039; ) ?? &#039;&#039;;&lt;br /&gt;
$spHosts = explode( &#039;,&#039;, $spHosts );&lt;br /&gt;
$spHosts = array_map( &#039;trim&#039;, $spHosts );&lt;br /&gt;
&lt;br /&gt;
$metadata = [];&lt;br /&gt;
&lt;br /&gt;
foreach ( $spHosts as $spHostAndName ) {&lt;br /&gt;
	$spParts = explode( &#039;###&#039;, $spHostAndName );&lt;br /&gt;
	$spHost = $spParts[0];&lt;br /&gt;
	$spName = $spParts[1];&lt;br /&gt;
	$metadata[&amp;quot;https://$spHost&amp;quot;] = array(&lt;br /&gt;
		&#039;AssertionConsumerService&#039; =&amp;gt; &amp;quot;https://$spHost/_sp/module.php/saml/sp/saml2-acs.php/$spName&amp;quot;,&lt;br /&gt;
		&#039;SingleLogoutService&#039; =&amp;gt; &amp;quot;https://$spHost/_sp/module.php/saml/sp/saml2-logout.php/$spName&amp;quot;,&lt;br /&gt;
	);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;saml-sp-metadata.php&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
#SIMPLESAMLPHP_SP_ENTITY_ID: https://${DEV_SHARED_IDP_HOST}/simplesaml/saml2/idp/metadata.php&lt;br /&gt;
#SIMPLESAMLPHP_SP_ASSERTION_CONSUMER_SERVICE: https://${DEV_PROD_EU_HOST}/_sp/module.php/saml/sp/saml2-acs.php/default-sp&lt;br /&gt;
#SIMPLESAMLPHP_SP_SINGLE_LOGOUT_SERVICE: https://${DEV_PROD_EU_HOST}/_sp/module.php/saml/sp/saml2-logout.php/default-sp&lt;br /&gt;
&lt;br /&gt;
# Test authn: https://mydev.localhost/_sp/module.php/admin/test/default-sp&lt;br /&gt;
&lt;br /&gt;
$idpHost = getenv( &#039;DEV_SHARED_IDP_HOST&#039; );&lt;br /&gt;
$spHosts = getenv( &#039;DEV_SP_HOSTS&#039; ) ?? &#039;&#039;;&lt;br /&gt;
$spHosts = explode( &#039;,&#039;, $spHosts );&lt;br /&gt;
$spHosts = array_map( &#039;trim&#039;, $spHosts );&lt;br /&gt;
&lt;br /&gt;
$metadata = [];&lt;br /&gt;
&lt;br /&gt;
foreach ( $spHosts as $spHostAndName ) {&lt;br /&gt;
	$spParts = explode( &#039;###&#039;, $spHostAndName );&lt;br /&gt;
	$spHost = $spParts[0];&lt;br /&gt;
	$spName = $spParts[1];&lt;br /&gt;
	$metadata[&amp;quot;https://$spHost&amp;quot;] = array(&lt;br /&gt;
		&#039;AssertionConsumerService&#039; =&amp;gt; &amp;quot;https://$spHost/_sp/module.php/saml/sp/saml2-acs.php/$spName&amp;quot;,&lt;br /&gt;
		&#039;SingleLogoutService&#039; =&amp;gt; &amp;quot;https://$spHost/_sp/module.php/saml/sp/saml2-logout.php/$spName&amp;quot;,&lt;br /&gt;
	);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;saml-users.php&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
// See https://github.com/kristophjunge/docker-test-saml-idp/blob/master/config/simplesamlphp/authsources.php&lt;br /&gt;
&lt;br /&gt;
$pass = getenv( &#039;DB_ROOT_PASS&#039; );&lt;br /&gt;
&lt;br /&gt;
$config = [&lt;br /&gt;
	&#039;admin&#039; =&amp;gt; [&lt;br /&gt;
		&#039;core:AdminPassword&#039;,&lt;br /&gt;
	],&lt;br /&gt;
	&#039;example-userpass&#039; =&amp;gt; [&lt;br /&gt;
		// First element must be a string which identifies the authentication source.&lt;br /&gt;
		&#039;exampleauth:UserPass&#039;,&lt;br /&gt;
&lt;br /&gt;
		&amp;quot;alice@example.invalid:$pass&amp;quot; =&amp;gt; [&lt;br /&gt;
			&#039;username&#039; =&amp;gt; [ &#039;alice@example.invalid&#039; ],&lt;br /&gt;
			&#039;name&#039; =&amp;gt; [ &#039;Alice&#039; ],&lt;br /&gt;
			&#039;email&#039; =&amp;gt; [ &#039;alice@example.invalid&#039; ],&lt;br /&gt;
			&#039;groups&#039; =&amp;gt; [ &#039;wiki-contributor&#039;, &#039;wiki-admin&#039; ]&lt;br /&gt;
		],&lt;br /&gt;
		&amp;quot;bob@example.invalid:$pass&amp;quot; =&amp;gt; [&lt;br /&gt;
			&#039;username&#039; =&amp;gt; [ &#039;bob@example.invalid&#039; ],&lt;br /&gt;
			&#039;name&#039; =&amp;gt; [ &#039;Bob&#039; ],&lt;br /&gt;
			&#039;email&#039; =&amp;gt; [ &#039;bob@example.invalid&#039; ],&lt;br /&gt;
			&#039;groups&#039; =&amp;gt; [ &#039;wiki-contributor&#039; ]&lt;br /&gt;
		],&lt;br /&gt;
		&amp;quot;charlie@example.invalid:$pass&amp;quot; =&amp;gt; [&lt;br /&gt;
			&#039;username&#039; =&amp;gt; [ &#039;charlie@example.invalid&#039; ],&lt;br /&gt;
			&#039;name&#039; =&amp;gt; [ &#039;Charlie&#039; ],&lt;br /&gt;
			&#039;email&#039; =&amp;gt; [ &#039;charlie@example.invalid&#039; ],&lt;br /&gt;
			&#039;groups&#039; =&amp;gt; [ &#039;wiki-admin&#039; ]&lt;br /&gt;
		]&lt;br /&gt;
	],&lt;br /&gt;
];&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In your &amp;lt;code&amp;gt;docker-compose.override.yml&amp;lt;/code&amp;gt; add&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
  samlidp:&lt;br /&gt;
    image: kristophjunge/test-saml-idp&lt;br /&gt;
    container_name: ${COMPOSE_PROJECT_NAME:-bluespice}-samlidp&lt;br /&gt;
    volumes:&lt;br /&gt;
      - ${DATADIR}/saml-idp/saml-config.php:/var/www/simplesamlphp/config/config.php&lt;br /&gt;
      - ${DATADIR}/saml-idp/saml-users.php:/var/www/simplesamlphp/config/authsources.php&lt;br /&gt;
      - ${DATADIR}/saml-idp/saml-sp-metadata.php:/var/www/simplesamlphp/metadata/saml20-sp-remote.php&lt;br /&gt;
    environment:&lt;br /&gt;
      VIRTUAL_HOST: ${WIKI_HOST}&lt;br /&gt;
      VIRTUAL_PATH: /_samlidp/&lt;br /&gt;
      VIRTUAL_PORT: 8080&lt;br /&gt;
      VIRTUAL_DEST: /&lt;br /&gt;
      DEV_SHARED_IDP_HOST: ${WIKI_HOST}&lt;br /&gt;
      DEV_SP_HOSTS: ${WIKI_HOST}###default-sp&lt;br /&gt;
    restart: no&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
After&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Within your &amp;lt;code&amp;gt;$CODEDIR&amp;lt;/code&amp;gt;, create a new file&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;settings.d/099-SAML-dev.local.php&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
$GLOBALS[&#039;wgExtensionFunctions&#039;][] = function () {&lt;br /&gt;
	$GLOBALS[&#039;wgPluggableAuth_EnableAutoLogin&#039;] = true;&lt;br /&gt;
	$GLOBALS[&#039;wgPluggableAuth_Config&#039;][&#039;Log in with SAML&#039;] = [&lt;br /&gt;
		&#039;plugin&#039; =&amp;gt; &#039;SimpleSAMLphp&#039;,&lt;br /&gt;
		&#039;data&#039; =&amp;gt; [&lt;br /&gt;
			&#039;authSourceId&#039; =&amp;gt; &#039;default-sp&#039;,&lt;br /&gt;
			&#039;usernameAttribute&#039; =&amp;gt; &#039;username&#039;,&lt;br /&gt;
			&#039;realNameAttribute&#039; =&amp;gt; &#039;name&#039;,&lt;br /&gt;
			&#039;emailAttribute&#039; =&amp;gt; &#039;email&#039;&lt;br /&gt;
		],&lt;br /&gt;
		&#039;groupsyncs&#039; =&amp;gt; [&lt;br /&gt;
			[&lt;br /&gt;
				&#039;type&#039; =&amp;gt; &#039;mapped&#039;,&lt;br /&gt;
					&#039;map&#039; =&amp;gt; [&lt;br /&gt;
						&#039;editor&#039; =&amp;gt; [&lt;br /&gt;
							&#039;groups&#039; =&amp;gt; &#039;wiki-contributor&#039;&lt;br /&gt;
						],&lt;br /&gt;
						&#039;sysop&#039; =&amp;gt; [&lt;br /&gt;
							&#039;groups&#039; =&amp;gt; &#039;wiki-admin&#039;&lt;br /&gt;
						]&lt;br /&gt;
					]&lt;br /&gt;
			]&lt;br /&gt;
		]&lt;br /&gt;
&lt;br /&gt;
	];&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Development/SAML_2.0_IdP&amp;diff=14408</id>
		<title>Development/SAML 2.0 IdP</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Development/SAML_2.0_IdP&amp;diff=14408"/>
		<updated>2026-07-14T11:22:35Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: Created page with &amp;quot;Create the following files and folders within your &amp;lt;code&amp;gt;$DATADIR&amp;lt;/code&amp;gt; &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt; └── saml-idp     ├── saml-config.php     ├── saml-sp-metadata.php     └── saml-users.php  &amp;lt;/syntaxhighlight&amp;gt;  Add the following content to the files  &amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt; &amp;lt;code&amp;gt;saml-sp-metadata.php&amp;lt;/code&amp;gt; &amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&amp;lt;?php  #SIMPLESAMLPHP_SP_ENTITY_ID: https://${D...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Create the following files and folders within your &amp;lt;code&amp;gt;$DATADIR&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
└── saml-idp&lt;br /&gt;
    ├── saml-config.php&lt;br /&gt;
    ├── saml-sp-metadata.php&lt;br /&gt;
    └── saml-users.php&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add the following content to the files&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;saml-sp-metadata.php&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
#SIMPLESAMLPHP_SP_ENTITY_ID: https://${DEV_SHARED_IDP_HOST}/simplesaml/saml2/idp/metadata.php&lt;br /&gt;
#SIMPLESAMLPHP_SP_ASSERTION_CONSUMER_SERVICE: https://${DEV_PROD_EU_HOST}/_sp/module.php/saml/sp/saml2-acs.php/default-sp&lt;br /&gt;
#SIMPLESAMLPHP_SP_SINGLE_LOGOUT_SERVICE: https://${DEV_PROD_EU_HOST}/_sp/module.php/saml/sp/saml2-logout.php/default-sp&lt;br /&gt;
&lt;br /&gt;
# Test authn: https://mydev.localhost/_sp/module.php/admin/test/default-sp&lt;br /&gt;
&lt;br /&gt;
$idpHost = getenv( &#039;DEV_SHARED_IDP_HOST&#039; );&lt;br /&gt;
$spHosts = getenv( &#039;DEV_SP_HOSTS&#039; ) ?? &#039;&#039;;&lt;br /&gt;
$spHosts = explode( &#039;,&#039;, $spHosts );&lt;br /&gt;
$spHosts = array_map( &#039;trim&#039;, $spHosts );&lt;br /&gt;
&lt;br /&gt;
$metadata = [];&lt;br /&gt;
&lt;br /&gt;
foreach ( $spHosts as $spHostAndName ) {&lt;br /&gt;
	$spParts = explode( &#039;###&#039;, $spHostAndName );&lt;br /&gt;
	$spHost = $spParts[0];&lt;br /&gt;
	$spName = $spParts[1];&lt;br /&gt;
	$metadata[&amp;quot;https://$spHost&amp;quot;] = array(&lt;br /&gt;
		&#039;AssertionConsumerService&#039; =&amp;gt; &amp;quot;https://$spHost/_sp/module.php/saml/sp/saml2-acs.php/$spName&amp;quot;,&lt;br /&gt;
		&#039;SingleLogoutService&#039; =&amp;gt; &amp;quot;https://$spHost/_sp/module.php/saml/sp/saml2-logout.php/$spName&amp;quot;,&lt;br /&gt;
	);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;saml-users.php&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
// See https://github.com/kristophjunge/docker-test-saml-idp/blob/master/config/simplesamlphp/authsources.php&lt;br /&gt;
&lt;br /&gt;
$pass = getenv( &#039;DB_ROOT_PASS&#039; );&lt;br /&gt;
&lt;br /&gt;
$config = [&lt;br /&gt;
	&#039;admin&#039; =&amp;gt; [&lt;br /&gt;
		&#039;core:AdminPassword&#039;,&lt;br /&gt;
	],&lt;br /&gt;
	&#039;example-userpass&#039; =&amp;gt; [&lt;br /&gt;
		// First element must be a string which identifies the authentication source.&lt;br /&gt;
		&#039;exampleauth:UserPass&#039;,&lt;br /&gt;
&lt;br /&gt;
		&amp;quot;alice@example.invalid:$pass&amp;quot; =&amp;gt; [&lt;br /&gt;
			&#039;username&#039; =&amp;gt; [ &#039;alice@example.invalid&#039; ],&lt;br /&gt;
			&#039;name&#039; =&amp;gt; [ &#039;Alice&#039; ],&lt;br /&gt;
			&#039;email&#039; =&amp;gt; [ &#039;alice@example.invalid&#039; ],&lt;br /&gt;
			&#039;groups&#039; =&amp;gt; [ &#039;wiki-contributor&#039;, &#039;wiki-admin&#039; ]&lt;br /&gt;
		],&lt;br /&gt;
		&amp;quot;bob@example.invalid:$pass&amp;quot; =&amp;gt; [&lt;br /&gt;
			&#039;username&#039; =&amp;gt; [ &#039;bob@example.invalid&#039; ],&lt;br /&gt;
			&#039;name&#039; =&amp;gt; [ &#039;Bob&#039; ],&lt;br /&gt;
			&#039;email&#039; =&amp;gt; [ &#039;bob@example.invalid&#039; ],&lt;br /&gt;
			&#039;groups&#039; =&amp;gt; [ &#039;wiki-contributor&#039; ]&lt;br /&gt;
		],&lt;br /&gt;
		&amp;quot;charlie@example.invalid:$pass&amp;quot; =&amp;gt; [&lt;br /&gt;
			&#039;username&#039; =&amp;gt; [ &#039;charlie@example.invalid&#039; ],&lt;br /&gt;
			&#039;name&#039; =&amp;gt; [ &#039;Charlie&#039; ],&lt;br /&gt;
			&#039;email&#039; =&amp;gt; [ &#039;charlie@example.invalid&#039; ],&lt;br /&gt;
			&#039;groups&#039; =&amp;gt; [ &#039;wiki-admin&#039; ]&lt;br /&gt;
		]&lt;br /&gt;
	],&lt;br /&gt;
];&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In your &amp;lt;code&amp;gt;docker-compose.override.yml&amp;lt;/code&amp;gt; add&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
  samlidp:&lt;br /&gt;
    image: kristophjunge/test-saml-idp&lt;br /&gt;
    container_name: ${COMPOSE_PROJECT_NAME:-bluespice}-samlidp&lt;br /&gt;
    volumes:&lt;br /&gt;
      - ${DATADIR}/saml-idp/saml-config.php:/var/www/simplesamlphp/config/config.php&lt;br /&gt;
      - ${DATADIR}/saml-idp/saml-users.php:/var/www/simplesamlphp/config/authsources.php&lt;br /&gt;
      - ${DATADIR}/saml-idp/saml-sp-metadata.php:/var/www/simplesamlphp/metadata/saml20-sp-remote.php&lt;br /&gt;
    environment:&lt;br /&gt;
      VIRTUAL_HOST: ${WIKI_HOST}&lt;br /&gt;
      VIRTUAL_PATH: /_samlidp/&lt;br /&gt;
      VIRTUAL_PORT: 8080&lt;br /&gt;
      VIRTUAL_DEST: /&lt;br /&gt;
      DEV_SHARED_IDP_HOST: ${WIKI_HOST}&lt;br /&gt;
      DEV_SP_HOSTS: ${WIKI_HOST}###default-sp&lt;br /&gt;
    restart: no&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
After&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Within your &amp;lt;code&amp;gt;$CODEDIR&amp;lt;/code&amp;gt;, create a new file&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;settings.d/099-SAML-dev.local.php&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&amp;lt;?php&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
$GLOBALS[&#039;wgExtensionFunctions&#039;][] = function () {&lt;br /&gt;
	$GLOBALS[&#039;wgPluggableAuth_EnableAutoLogin&#039;] = true;&lt;br /&gt;
	$GLOBALS[&#039;wgPluggableAuth_Config&#039;][&#039;Log in with SAML&#039;] = [&lt;br /&gt;
		&#039;plugin&#039; =&amp;gt; &#039;SimpleSAMLphp&#039;,&lt;br /&gt;
		&#039;data&#039; =&amp;gt; [&lt;br /&gt;
			&#039;authSourceId&#039; =&amp;gt; &#039;default-sp&#039;,&lt;br /&gt;
			&#039;usernameAttribute&#039; =&amp;gt; &#039;username&#039;,&lt;br /&gt;
			&#039;realNameAttribute&#039; =&amp;gt; &#039;name&#039;,&lt;br /&gt;
			&#039;emailAttribute&#039; =&amp;gt; &#039;email&#039;&lt;br /&gt;
		],&lt;br /&gt;
		&#039;groupsyncs&#039; =&amp;gt; [&lt;br /&gt;
			[&lt;br /&gt;
				&#039;type&#039; =&amp;gt; &#039;mapped&#039;,&lt;br /&gt;
					&#039;map&#039; =&amp;gt; [&lt;br /&gt;
						&#039;editor&#039; =&amp;gt; [&lt;br /&gt;
							&#039;groups&#039; =&amp;gt; &#039;wiki-contributor&#039;&lt;br /&gt;
						],&lt;br /&gt;
						&#039;sysop&#039; =&amp;gt; [&lt;br /&gt;
							&#039;groups&#039; =&amp;gt; &#039;wiki-admin&#039;&lt;br /&gt;
						]&lt;br /&gt;
					]&lt;br /&gt;
			]&lt;br /&gt;
		]&lt;br /&gt;
&lt;br /&gt;
	];&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Development&amp;diff=14407</id>
		<title>Development</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Development&amp;diff=14407"/>
		<updated>2026-07-14T11:09:24Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Textbox|boxtype=warning|header=Do not apply to production environments!|text=This page contains information about how to set up a &#039;&#039;&#039;local development environment&#039;&#039;&#039; for BlueSpice. None of this is supposed to be used on an production system!|icon=yes}}&lt;br /&gt;
&lt;br /&gt;
== Local development environment based on &amp;lt;code&amp;gt;bluespice-deploy&amp;lt;/code&amp;gt; ==&lt;br /&gt;
A developer can use the [[Setup:Installation Guide/Docker|default deployment stack]] and alter is to quickly set up a development environment. To do so, first clone the stack to your local machine and navigate into it:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
git clone -b 5.2.x git@github.com:hallowelt/bluespice-deploy.git&lt;br /&gt;
cd bluespice-deploy/compose&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create a proper &amp;lt;code&amp;gt;.env&amp;lt;/code&amp;gt; file from the &amp;lt;code&amp;gt;.env.sample&amp;lt;/code&amp;gt; and alter/add the following lines:  &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
DATADIR=~/workspace/REL1_43-5.2.x/data&lt;br /&gt;
CODEDIR=~/workspace/REL1_43-5.2.x/code&lt;br /&gt;
SMTP_HOST=mailhog&lt;br /&gt;
SMTP_PORT=1025&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create a &amp;lt;code&amp;gt;docker-compose.override.yml&amp;lt;/code&amp;gt; file with the following content:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
x-common-dev: &amp;amp;x-common&lt;br /&gt;
  image: docker.bluespice.com/bluespice-qa/wiki:latest&lt;br /&gt;
  volumes:&lt;br /&gt;
    - ${CODEDIR}:/app/bluespice/w/&lt;br /&gt;
&lt;br /&gt;
services:&lt;br /&gt;
&lt;br /&gt;
  wiki-installer:&lt;br /&gt;
    &amp;lt;&amp;lt;: *x-common&lt;br /&gt;
&lt;br /&gt;
  wiki-web:&lt;br /&gt;
    &amp;lt;&amp;lt;: *x-common&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  wiki-task:&lt;br /&gt;
    &amp;lt;&amp;lt;: *x-common&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  mailhog:&lt;br /&gt;
    image: mailhog/mailhog&lt;br /&gt;
    container_name: ${COMPOSE_PROJECT_NAME:-bluespice}-mailhog&lt;br /&gt;
    environment:&lt;br /&gt;
      VIRTUAL_HOST: ${WIKI_HOST}&lt;br /&gt;
      VIRTUAL_PATH: /_mailhog/&lt;br /&gt;
      VIRTUAL_PORT: 8025&lt;br /&gt;
      VIRTUAL_DEST: /&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  cache:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  collabpads:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  collabpads-database:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  database:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  diagram:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  formula:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  pdf:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  proxy:&lt;br /&gt;
    restart: no&lt;br /&gt;
  &lt;br /&gt;
  search:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  wire:&lt;br /&gt;
    restart: no&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will make the stack use your local codebase from &amp;lt;code&amp;gt;$CODEDIR&amp;lt;/code&amp;gt; and also expose a Mailhog web interface on &amp;lt;code&amp;gt;$Wiki_HOST/_mailhog&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
​In addition, if you want to work with a custom build of the &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; container, you can add an &amp;lt;code&amp;gt;image:&amp;lt;/code&amp;gt; entry to the respective services. Example&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
  wiki-installer:&lt;br /&gt;
    image: bluespice/wiki:dev&lt;br /&gt;
...&lt;br /&gt;
  wiki-web:&lt;br /&gt;
    image: bluespice/wiki:dev&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
  wiki-task:&lt;br /&gt;
    image: bluespice/wiki:dev&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;or you set&amp;lt;blockquote&amp;gt;BLUESPICE_WIKI_IMAGE=bluespice/wiki:dev&amp;lt;/blockquote&amp;gt;in your &amp;lt;code&amp;gt;.env&amp;lt;/code&amp;gt;-File&lt;br /&gt;
&lt;br /&gt;
=== Add S3 &amp;lt;code&amp;gt;filestore&amp;lt;/code&amp;gt; service ===&lt;br /&gt;
&lt;br /&gt;
See [[Development/S3 filestore service|S3 filestore service]]&lt;br /&gt;
&lt;br /&gt;
=== Add SAML 2.0 IdP ===&lt;br /&gt;
&lt;br /&gt;
See [[Development/SAML 2.0 IdP|SAML 2.0 IdP]]&lt;br /&gt;
&lt;br /&gt;
== Local development environment based on &amp;lt;code&amp;gt;bluespice-containers&amp;lt;/code&amp;gt; ==&lt;br /&gt;
As an alternative, one can use https://github.com/BlueSpice-Wiki/bluespice-containers . This is especially useful when working on the various individual services.&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Development/S3_filestore_service&amp;diff=14406</id>
		<title>Development/S3 filestore service</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Development/S3_filestore_service&amp;diff=14406"/>
		<updated>2026-07-14T11:08:39Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: Created page with &amp;quot;When working on the S3 filestore features, a developer needs a local S3 service. One can add the following to &amp;lt;code&amp;gt;docker-compose.override.yml&amp;lt;/code&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt; x-common-dev: &amp;amp;x-common ...   environment:     FILESTORE_HOST: filestore     FILESTORE_PORT: 9000     FILESTORE_PROTOCOL: http     FILESTORE_ACCESS_KEY: ${FILESTORE_ACCESS_KEY}     FILESTORE_SECRET_KEY: ${FILESTORE_SECRET_KEY}     FILESTORE_BUCKET_NAME: ${FILESTORE_BUCKET_NAME:-bluespice}     F...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;When working on the S3 filestore features, a developer needs a local S3 service. One can add the following to &amp;lt;code&amp;gt;docker-compose.override.yml&amp;lt;/code&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
x-common-dev: &amp;amp;x-common&lt;br /&gt;
...&lt;br /&gt;
  environment:&lt;br /&gt;
    FILESTORE_HOST: filestore&lt;br /&gt;
    FILESTORE_PORT: 9000&lt;br /&gt;
    FILESTORE_PROTOCOL: http&lt;br /&gt;
    FILESTORE_ACCESS_KEY: ${FILESTORE_ACCESS_KEY}&lt;br /&gt;
    FILESTORE_SECRET_KEY: ${FILESTORE_SECRET_KEY}&lt;br /&gt;
    FILESTORE_BUCKET_NAME: ${FILESTORE_BUCKET_NAME:-bluespice}&lt;br /&gt;
    FILESTORE_REGION: ${FILESTORE_REGION:-eu-north-1}&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
  filestore:&lt;br /&gt;
    image: minio/minio:latest&lt;br /&gt;
    container_name: ${COMPOSE_PROJECT_NAME:-bluespice}-filestore&lt;br /&gt;
    command: server /data --console-address &amp;quot;:9001&amp;quot;&lt;br /&gt;
    environment:&lt;br /&gt;
      MINIO_ROOT_USER: ${FILESTORE_ACCESS_KEY}&lt;br /&gt;
      MINIO_ROOT_PASSWORD: ${FILESTORE_SECRET_KEY}&lt;br /&gt;
    ports:&lt;br /&gt;
      - &amp;quot;9000:9000&amp;quot;&lt;br /&gt;
      - &amp;quot;9001:9001&amp;quot;&lt;br /&gt;
    volumes:&lt;br /&gt;
      - ${DATADIR}/filestore:/data&lt;br /&gt;
    restart: no&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;In &amp;lt;code&amp;gt;.env&amp;lt;/code&amp;gt;, add&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;FILESTORE_ACCESS_KEY=...&lt;br /&gt;
FILESTORE_SECRET_KEY=...&lt;br /&gt;
FILESTORE_BUCKET_NAME=bluespice&lt;br /&gt;
FILESTORE_REGION=eu-north-1&amp;lt;/syntaxhighlight&amp;gt;After a &amp;lt;code&amp;gt;./bluespice-deploy up -d&amp;lt;/code&amp;gt; you can access the MINIO webinterface in your browser at &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://localhost:9001&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. Use the values of &amp;lt;code&amp;gt;FILESTORE_ACCESS_KEY&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;FILESTORE_SECRET_KEY&amp;lt;/code&amp;gt; to log in.&lt;br /&gt;
&lt;br /&gt;
You will need to &#039;&#039;manually create&#039;&#039; a bucket with the name of &amp;lt;code&amp;gt;FILESTORE_BUCKET_NAME&amp;lt;/code&amp;gt;.&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Development&amp;diff=14405</id>
		<title>Development</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Development&amp;diff=14405"/>
		<updated>2026-07-14T11:08:29Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Textbox|boxtype=warning|header=Do not apply to production environments!|text=This page contains information about how to set up a &#039;&#039;&#039;local development environment&#039;&#039;&#039; for BlueSpice. None of this is supposed to be used on an production system!|icon=yes}}&lt;br /&gt;
&lt;br /&gt;
== Local development environment based on &amp;lt;code&amp;gt;bluespice-deploy&amp;lt;/code&amp;gt; ==&lt;br /&gt;
A developer can use the [[Setup:Installation Guide/Docker|default deployment stack]] and alter is to quickly set up a development environment. To do so, first clone the stack to your local machine and navigate into it:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
git clone -b 5.2.x git@github.com:hallowelt/bluespice-deploy.git&lt;br /&gt;
cd bluespice-deploy/compose&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create a proper &amp;lt;code&amp;gt;.env&amp;lt;/code&amp;gt; file from the &amp;lt;code&amp;gt;.env.sample&amp;lt;/code&amp;gt; and alter/add the following lines:  &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
DATADIR=~/workspace/REL1_43-5.2.x/data&lt;br /&gt;
CODEDIR=~/workspace/REL1_43-5.2.x/code&lt;br /&gt;
SMTP_HOST=mailhog&lt;br /&gt;
SMTP_PORT=1025&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create a &amp;lt;code&amp;gt;docker-compose.override.yml&amp;lt;/code&amp;gt; file with the following content:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
x-common-dev: &amp;amp;x-common&lt;br /&gt;
  image: docker.bluespice.com/bluespice-qa/wiki:latest&lt;br /&gt;
  volumes:&lt;br /&gt;
    - ${CODEDIR}:/app/bluespice/w/&lt;br /&gt;
&lt;br /&gt;
services:&lt;br /&gt;
&lt;br /&gt;
  wiki-installer:&lt;br /&gt;
    &amp;lt;&amp;lt;: *x-common&lt;br /&gt;
&lt;br /&gt;
  wiki-web:&lt;br /&gt;
    &amp;lt;&amp;lt;: *x-common&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  wiki-task:&lt;br /&gt;
    &amp;lt;&amp;lt;: *x-common&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  mailhog:&lt;br /&gt;
    image: mailhog/mailhog&lt;br /&gt;
    container_name: ${COMPOSE_PROJECT_NAME:-bluespice}-mailhog&lt;br /&gt;
    environment:&lt;br /&gt;
      VIRTUAL_HOST: ${WIKI_HOST}&lt;br /&gt;
      VIRTUAL_PATH: /_mailhog/&lt;br /&gt;
      VIRTUAL_PORT: 8025&lt;br /&gt;
      VIRTUAL_DEST: /&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  cache:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  collabpads:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  collabpads-database:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  database:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  diagram:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  formula:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  pdf:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  proxy:&lt;br /&gt;
    restart: no&lt;br /&gt;
  &lt;br /&gt;
  search:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  wire:&lt;br /&gt;
    restart: no&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will make the stack use your local codebase from &amp;lt;code&amp;gt;$CODEDIR&amp;lt;/code&amp;gt; and also expose a Mailhog web interface on &amp;lt;code&amp;gt;$Wiki_HOST/_mailhog&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
​In addition, if you want to work with a custom build of the &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; container, you can add an &amp;lt;code&amp;gt;image:&amp;lt;/code&amp;gt; entry to the respective services. Example&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
  wiki-installer:&lt;br /&gt;
    image: bluespice/wiki:dev&lt;br /&gt;
...&lt;br /&gt;
  wiki-web:&lt;br /&gt;
    image: bluespice/wiki:dev&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
  wiki-task:&lt;br /&gt;
    image: bluespice/wiki:dev&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;or you set&amp;lt;blockquote&amp;gt;BLUESPICE_WIKI_IMAGE=bluespice/wiki:dev&amp;lt;/blockquote&amp;gt;in your &amp;lt;code&amp;gt;.env&amp;lt;/code&amp;gt;-File&lt;br /&gt;
&lt;br /&gt;
=== Add S3 &amp;lt;code&amp;gt;filestore&amp;lt;/code&amp;gt; service ===&lt;br /&gt;
&lt;br /&gt;
See [[Development/S3 filestore service|S3 filestore service]]&lt;br /&gt;
&lt;br /&gt;
== Local development environment based on &amp;lt;code&amp;gt;bluespice-containers&amp;lt;/code&amp;gt; ==&lt;br /&gt;
As an alternative, one can use https://github.com/BlueSpice-Wiki/bluespice-containers . This is especially useful when working on the various individual services.&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Development&amp;diff=14404</id>
		<title>Development</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Development&amp;diff=14404"/>
		<updated>2026-07-10T06:17:57Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: /* Add S3 filestore service */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Textbox|boxtype=warning|header=Do not apply to production environments!|text=This page contains information about how to set up a &#039;&#039;&#039;local development environment&#039;&#039;&#039; for BlueSpice. None of this is supposed to be used on an production system!|icon=yes}}&lt;br /&gt;
&lt;br /&gt;
== Local development environment based on &amp;lt;code&amp;gt;bluespice-deploy&amp;lt;/code&amp;gt; ==&lt;br /&gt;
A developer can use the [[Setup:Installation Guide/Docker|default deployment stack]] and alter is to quickly set up a development environment. To do so, first clone the stack to your local machine and navigate into it:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
git clone -b 5.2.x git@github.com:hallowelt/bluespice-deploy.git&lt;br /&gt;
cd bluespice-deploy/compose&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create a proper &amp;lt;code&amp;gt;.env&amp;lt;/code&amp;gt; file from the &amp;lt;code&amp;gt;.env.sample&amp;lt;/code&amp;gt; and alter/add the following lines:  &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
DATADIR=~/workspace/REL1_43-5.2.x/data&lt;br /&gt;
CODEDIR=~/workspace/REL1_43-5.2.x/code&lt;br /&gt;
SMTP_HOST=mailhog&lt;br /&gt;
SMTP_PORT=1025&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create a &amp;lt;code&amp;gt;docker-compose.override.yml&amp;lt;/code&amp;gt; file with the following content:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
x-common-dev: &amp;amp;x-common&lt;br /&gt;
  image: docker.bluespice.com/bluespice-qa/wiki:latest&lt;br /&gt;
  volumes:&lt;br /&gt;
    - ${CODEDIR}:/app/bluespice/w/&lt;br /&gt;
&lt;br /&gt;
services:&lt;br /&gt;
&lt;br /&gt;
  wiki-installer:&lt;br /&gt;
    &amp;lt;&amp;lt;: *x-common&lt;br /&gt;
&lt;br /&gt;
  wiki-web:&lt;br /&gt;
    &amp;lt;&amp;lt;: *x-common&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  wiki-task:&lt;br /&gt;
    &amp;lt;&amp;lt;: *x-common&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  mailhog:&lt;br /&gt;
    image: mailhog/mailhog&lt;br /&gt;
    container_name: ${COMPOSE_PROJECT_NAME:-bluespice}-mailhog&lt;br /&gt;
    environment:&lt;br /&gt;
      VIRTUAL_HOST: ${WIKI_HOST}&lt;br /&gt;
      VIRTUAL_PATH: /_mailhog/&lt;br /&gt;
      VIRTUAL_PORT: 8025&lt;br /&gt;
      VIRTUAL_DEST: /&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  cache:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  collabpads:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  collabpads-database:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  database:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  diagram:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  formula:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  pdf:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  proxy:&lt;br /&gt;
    restart: no&lt;br /&gt;
  &lt;br /&gt;
  search:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  wire:&lt;br /&gt;
    restart: no&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will make the stack use your local codebase from &amp;lt;code&amp;gt;$CODEDIR&amp;lt;/code&amp;gt; and also expose a Mailhog web interface on &amp;lt;code&amp;gt;$Wiki_HOST/_mailhog&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
​In addition, if you want to work with a custom build of the &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; container, you can add an &amp;lt;code&amp;gt;image:&amp;lt;/code&amp;gt; entry to the respective services. Example&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
  wiki-installer:&lt;br /&gt;
    image: bluespice/wiki:dev&lt;br /&gt;
...&lt;br /&gt;
  wiki-web:&lt;br /&gt;
    image: bluespice/wiki:dev&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
  wiki-task:&lt;br /&gt;
    image: bluespice/wiki:dev&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;or you set&amp;lt;blockquote&amp;gt;BLUESPICE_WIKI_IMAGE=bluespice/wiki:dev&amp;lt;/blockquote&amp;gt;in your &amp;lt;code&amp;gt;.env&amp;lt;/code&amp;gt;-File&lt;br /&gt;
&lt;br /&gt;
=== Add S3 &amp;lt;code&amp;gt;filestore&amp;lt;/code&amp;gt; service ===&lt;br /&gt;
When working on the S3 filestore features, a developer needs a local S3 service. One can add the following to &amp;lt;code&amp;gt;docker-compose.override.yml&amp;lt;/code&amp;gt; &amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
x-common-dev: &amp;amp;x-common&lt;br /&gt;
...&lt;br /&gt;
  environment:&lt;br /&gt;
    FILESTORE_HOST: filestore&lt;br /&gt;
    FILESTORE_PORT: 9000&lt;br /&gt;
    FILESTORE_PROTOCOL: http&lt;br /&gt;
    FILESTORE_ACCESS_KEY: ${FILESTORE_ACCESS_KEY}&lt;br /&gt;
    FILESTORE_SECRET_KEY: ${FILESTORE_SECRET_KEY}&lt;br /&gt;
    FILESTORE_BUCKET_NAME: ${FILESTORE_BUCKET_NAME:-bluespice}&lt;br /&gt;
    FILESTORE_REGION: ${FILESTORE_REGION:-eu-north-1}&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
  filestore:&lt;br /&gt;
    image: minio/minio:latest&lt;br /&gt;
    container_name: ${COMPOSE_PROJECT_NAME:-bluespice}-filestore&lt;br /&gt;
    command: server /data --console-address &amp;quot;:9001&amp;quot;&lt;br /&gt;
    environment:&lt;br /&gt;
      MINIO_ROOT_USER: ${FILESTORE_ACCESS_KEY}&lt;br /&gt;
      MINIO_ROOT_PASSWORD: ${FILESTORE_SECRET_KEY}&lt;br /&gt;
    ports:&lt;br /&gt;
      - &amp;quot;9000:9000&amp;quot;&lt;br /&gt;
      - &amp;quot;9001:9001&amp;quot;&lt;br /&gt;
    volumes:&lt;br /&gt;
      - ${DATADIR}/filestore:/data&lt;br /&gt;
    restart: no&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;In &amp;lt;code&amp;gt;.env&amp;lt;/code&amp;gt;, add &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;FILESTORE_ACCESS_KEY=...&lt;br /&gt;
FILESTORE_SECRET_KEY=...&lt;br /&gt;
FILESTORE_BUCKET_NAME=bluespice&lt;br /&gt;
FILESTORE_REGION=eu-north-1&amp;lt;/syntaxhighlight&amp;gt;After a &amp;lt;code&amp;gt;./bluespice-deploy up -d&amp;lt;/code&amp;gt; you can access the MINIO webinterface in your browser at &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://localhost:9001&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. Use the values of &amp;lt;code&amp;gt;FILESTORE_ACCESS_KEY&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;FILESTORE_SECRET_KEY&amp;lt;/code&amp;gt; to log in.&lt;br /&gt;
&lt;br /&gt;
You will need to &#039;&#039;manually create&#039;&#039; a bucket with the name of &amp;lt;code&amp;gt;FILESTORE_BUCKET_NAME&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Local development environment based on &amp;lt;code&amp;gt;bluespice-containers&amp;lt;/code&amp;gt; ==&lt;br /&gt;
As an alternative, one can use https://github.com/BlueSpice-Wiki/bluespice-containers . This is especially useful when working on the various individual services.&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Development&amp;diff=14403</id>
		<title>Development</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Development&amp;diff=14403"/>
		<updated>2026-07-10T06:16:54Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: /* Add S3 filestore service */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Textbox|boxtype=warning|header=Do not apply to production environments!|text=This page contains information about how to set up a &#039;&#039;&#039;local development environment&#039;&#039;&#039; for BlueSpice. None of this is supposed to be used on an production system!|icon=yes}}&lt;br /&gt;
&lt;br /&gt;
== Local development environment based on &amp;lt;code&amp;gt;bluespice-deploy&amp;lt;/code&amp;gt; ==&lt;br /&gt;
A developer can use the [[Setup:Installation Guide/Docker|default deployment stack]] and alter is to quickly set up a development environment. To do so, first clone the stack to your local machine and navigate into it:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
git clone -b 5.2.x git@github.com:hallowelt/bluespice-deploy.git&lt;br /&gt;
cd bluespice-deploy/compose&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create a proper &amp;lt;code&amp;gt;.env&amp;lt;/code&amp;gt; file from the &amp;lt;code&amp;gt;.env.sample&amp;lt;/code&amp;gt; and alter/add the following lines:  &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
DATADIR=~/workspace/REL1_43-5.2.x/data&lt;br /&gt;
CODEDIR=~/workspace/REL1_43-5.2.x/code&lt;br /&gt;
SMTP_HOST=mailhog&lt;br /&gt;
SMTP_PORT=1025&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create a &amp;lt;code&amp;gt;docker-compose.override.yml&amp;lt;/code&amp;gt; file with the following content:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
x-common-dev: &amp;amp;x-common&lt;br /&gt;
  image: docker.bluespice.com/bluespice-qa/wiki:latest&lt;br /&gt;
  volumes:&lt;br /&gt;
    - ${CODEDIR}:/app/bluespice/w/&lt;br /&gt;
&lt;br /&gt;
services:&lt;br /&gt;
&lt;br /&gt;
  wiki-installer:&lt;br /&gt;
    &amp;lt;&amp;lt;: *x-common&lt;br /&gt;
&lt;br /&gt;
  wiki-web:&lt;br /&gt;
    &amp;lt;&amp;lt;: *x-common&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  wiki-task:&lt;br /&gt;
    &amp;lt;&amp;lt;: *x-common&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  mailhog:&lt;br /&gt;
    image: mailhog/mailhog&lt;br /&gt;
    container_name: ${COMPOSE_PROJECT_NAME:-bluespice}-mailhog&lt;br /&gt;
    environment:&lt;br /&gt;
      VIRTUAL_HOST: ${WIKI_HOST}&lt;br /&gt;
      VIRTUAL_PATH: /_mailhog/&lt;br /&gt;
      VIRTUAL_PORT: 8025&lt;br /&gt;
      VIRTUAL_DEST: /&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  cache:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  collabpads:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  collabpads-database:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  database:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  diagram:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  formula:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  pdf:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  proxy:&lt;br /&gt;
    restart: no&lt;br /&gt;
  &lt;br /&gt;
  search:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  wire:&lt;br /&gt;
    restart: no&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will make the stack use your local codebase from &amp;lt;code&amp;gt;$CODEDIR&amp;lt;/code&amp;gt; and also expose a Mailhog web interface on &amp;lt;code&amp;gt;$Wiki_HOST/_mailhog&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
​In addition, if you want to work with a custom build of the &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; container, you can add an &amp;lt;code&amp;gt;image:&amp;lt;/code&amp;gt; entry to the respective services. Example&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
  wiki-installer:&lt;br /&gt;
    image: bluespice/wiki:dev&lt;br /&gt;
...&lt;br /&gt;
  wiki-web:&lt;br /&gt;
    image: bluespice/wiki:dev&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
  wiki-task:&lt;br /&gt;
    image: bluespice/wiki:dev&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;or you set&amp;lt;blockquote&amp;gt;BLUESPICE_WIKI_IMAGE=bluespice/wiki:dev&amp;lt;/blockquote&amp;gt;in your &amp;lt;code&amp;gt;.env&amp;lt;/code&amp;gt;-File&lt;br /&gt;
&lt;br /&gt;
=== Add S3 &amp;lt;code&amp;gt;filestore&amp;lt;/code&amp;gt; service ===&lt;br /&gt;
When working on the S3 filestore features, a developer needs a local S3 service. One can add the following to &amp;lt;code&amp;gt;docker-compose.override.yml&amp;lt;/code&amp;gt; &amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
x-common-dev: &amp;amp;x-common&lt;br /&gt;
...&lt;br /&gt;
  environment:&lt;br /&gt;
    FILESTORE_HOST: filestore&lt;br /&gt;
    FILESTORE_PORT: 9000&lt;br /&gt;
    FILESTORE_PROTOCOL: http&lt;br /&gt;
    FILESTORE_ACCESS_KEY: ${FILESTORE_ACCESS_KEY}&lt;br /&gt;
    FILESTORE_SECRET_KEY: ${FILESTORE_SECRET_KEY}&lt;br /&gt;
    FILESTORE_BUCKET_NAME: ${FILESTORE_BUCKET_NAME:-bluespice}&lt;br /&gt;
    FILESTORE_REGION: ${FILESTORE_REGION:-eu-north-1}&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
  filestore:&lt;br /&gt;
    image: minio/minio:latest&lt;br /&gt;
    container_name: ${COMPOSE_PROJECT_NAME:-bluespice}-filestore&lt;br /&gt;
    command: server /data --console-address &amp;quot;:9001&amp;quot;&lt;br /&gt;
    environment:&lt;br /&gt;
      MINIO_ROOT_USER: ${FILESTORE_ACCESS_KEY}&lt;br /&gt;
      MINIO_ROOT_PASSWORD: ${FILESTORE_SECRET_KEY}&lt;br /&gt;
    ports:&lt;br /&gt;
      - &amp;quot;9000:9000&amp;quot;&lt;br /&gt;
      - &amp;quot;9001:9001&amp;quot;&lt;br /&gt;
    volumes:&lt;br /&gt;
      - ${DATADIR}/filestore:/data&lt;br /&gt;
    restart: no&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;In &amp;lt;code&amp;gt;.env&amp;lt;/code&amp;gt;, add &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
FILESTORE_ACCESS_KEY=...&lt;br /&gt;
FILESTORE_SECRET_KEY=...&lt;br /&gt;
FILESTORE_BUCKET_NAME=bluespice&lt;br /&gt;
FILESTORE_REGION=eu-north-1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;After a &amp;lt;code&amp;gt;./bluespice-deploy up -d&amp;lt;/code&amp;gt; you can access the MINIO webinterface in your browser at &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://localhost:9001&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. Use the values of &amp;lt;code&amp;gt;FILESTORE_ACCESS_KEY&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;FILESTORE_SECRET_KEY&amp;lt;/code&amp;gt; to log in.&lt;br /&gt;
&lt;br /&gt;
== Local development environment based on &amp;lt;code&amp;gt;bluespice-containers&amp;lt;/code&amp;gt; ==&lt;br /&gt;
As an alternative, one can use https://github.com/BlueSpice-Wiki/bluespice-containers . This is especially useful when working on the various individual services.&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Development&amp;diff=14402</id>
		<title>Development</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Development&amp;diff=14402"/>
		<updated>2026-07-10T06:11:56Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Textbox|boxtype=warning|header=Do not apply to production environments!|text=This page contains information about how to set up a &#039;&#039;&#039;local development environment&#039;&#039;&#039; for BlueSpice. None of this is supposed to be used on an production system!|icon=yes}}&lt;br /&gt;
&lt;br /&gt;
== Local development environment based on &amp;lt;code&amp;gt;bluespice-deploy&amp;lt;/code&amp;gt; ==&lt;br /&gt;
A developer can use the [[Setup:Installation Guide/Docker|default deployment stack]] and alter is to quickly set up a development environment. To do so, first clone the stack to your local machine and navigate into it:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
git clone -b 5.2.x git@github.com:hallowelt/bluespice-deploy.git&lt;br /&gt;
cd bluespice-deploy/compose&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create a proper &amp;lt;code&amp;gt;.env&amp;lt;/code&amp;gt; file from the &amp;lt;code&amp;gt;.env.sample&amp;lt;/code&amp;gt; and alter/add the following lines:  &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
DATADIR=~/workspace/REL1_43-5.2.x/data&lt;br /&gt;
CODEDIR=~/workspace/REL1_43-5.2.x/code&lt;br /&gt;
SMTP_HOST=mailhog&lt;br /&gt;
SMTP_PORT=1025&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create a &amp;lt;code&amp;gt;docker-compose.override.yml&amp;lt;/code&amp;gt; file with the following content:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
x-common-dev: &amp;amp;x-common&lt;br /&gt;
  image: docker.bluespice.com/bluespice-qa/wiki:latest&lt;br /&gt;
  volumes:&lt;br /&gt;
    - ${CODEDIR}:/app/bluespice/w/&lt;br /&gt;
&lt;br /&gt;
services:&lt;br /&gt;
&lt;br /&gt;
  wiki-installer:&lt;br /&gt;
    &amp;lt;&amp;lt;: *x-common&lt;br /&gt;
&lt;br /&gt;
  wiki-web:&lt;br /&gt;
    &amp;lt;&amp;lt;: *x-common&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  wiki-task:&lt;br /&gt;
    &amp;lt;&amp;lt;: *x-common&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  mailhog:&lt;br /&gt;
    image: mailhog/mailhog&lt;br /&gt;
    container_name: ${COMPOSE_PROJECT_NAME:-bluespice}-mailhog&lt;br /&gt;
    environment:&lt;br /&gt;
      VIRTUAL_HOST: ${WIKI_HOST}&lt;br /&gt;
      VIRTUAL_PATH: /_mailhog/&lt;br /&gt;
      VIRTUAL_PORT: 8025&lt;br /&gt;
      VIRTUAL_DEST: /&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  cache:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  collabpads:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  collabpads-database:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  database:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  diagram:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  formula:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  pdf:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  proxy:&lt;br /&gt;
    restart: no&lt;br /&gt;
  &lt;br /&gt;
  search:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  wire:&lt;br /&gt;
    restart: no&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will make the stack use your local codebase from &amp;lt;code&amp;gt;$CODEDIR&amp;lt;/code&amp;gt; and also expose a Mailhog web interface on &amp;lt;code&amp;gt;$Wiki_HOST/_mailhog&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
​In addition, if you want to work with a custom build of the &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; container, you can add an &amp;lt;code&amp;gt;image:&amp;lt;/code&amp;gt; entry to the respective services. Example&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
  wiki-installer:&lt;br /&gt;
    image: bluespice/wiki:dev&lt;br /&gt;
...&lt;br /&gt;
  wiki-web:&lt;br /&gt;
    image: bluespice/wiki:dev&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
  wiki-task:&lt;br /&gt;
    image: bluespice/wiki:dev&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;or you set&amp;lt;blockquote&amp;gt;BLUESPICE_WIKI_IMAGE=bluespice/wiki:dev&amp;lt;/blockquote&amp;gt;in your &amp;lt;code&amp;gt;.env&amp;lt;/code&amp;gt;-File&lt;br /&gt;
&lt;br /&gt;
=== Add S3 &amp;lt;code&amp;gt;filestore&amp;lt;/code&amp;gt; service ===&lt;br /&gt;
When working on the S3 filestore features, a developer needs a &amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
x-common-dev: &amp;amp;x-common&lt;br /&gt;
...&lt;br /&gt;
  environment:&lt;br /&gt;
    FILESTORE_HOST: filestore&lt;br /&gt;
    FILESTORE_PORT: 9000&lt;br /&gt;
    FILESTORE_PROTOCOL: http&lt;br /&gt;
    FILESTORE_ACCESS_KEY: ${FILESTORE_ACCESS_KEY}&lt;br /&gt;
    FILESTORE_SECRET_KEY: ${FILESTORE_SECRET_KEY}&lt;br /&gt;
    FILESTORE_BUCKET_NAME: ${FILESTORE_BUCKET_NAME:-bluespice}&lt;br /&gt;
    FILESTORE_REGION: ${FILESTORE_REGION:-eu-north-1}&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
  filestore:&lt;br /&gt;
    image: minio/minio:latest&lt;br /&gt;
    container_name: ${COMPOSE_PROJECT_NAME:-bluespice}-filestore&lt;br /&gt;
    command: server /data --console-address &amp;quot;:9001&amp;quot;&lt;br /&gt;
    environment:&lt;br /&gt;
      MINIO_ROOT_USER: ${FILESTORE_ACCESS_KEY}&lt;br /&gt;
      MINIO_ROOT_PASSWORD: ${FILESTORE_SECRET_KEY}&lt;br /&gt;
    ports:&lt;br /&gt;
      - &amp;quot;9000:9000&amp;quot;&lt;br /&gt;
      - &amp;quot;9001:9001&amp;quot;&lt;br /&gt;
    volumes:&lt;br /&gt;
      - ${DATADIR}/filestore:/data&lt;br /&gt;
    restart: no&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;In &amp;lt;code&amp;gt;.env&amp;lt;/code&amp;gt; &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
FILESTORE_ACCESS_KEY=...&lt;br /&gt;
FILESTORE_SECRET_KEY=...&lt;br /&gt;
FILESTORE_BUCKET_NAME=bluespice&lt;br /&gt;
FILESTORE_REGION=eu-north-1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;After a &amp;lt;code&amp;gt;/bluespice-deploy up -d&amp;lt;/code&amp;gt; you can access the MINIO webinterface in your browser at &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://localhost:9001&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. Use the values of &amp;lt;code&amp;gt;FILESTORE_ACCESS_KEY&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;FILESTORE_SECRET_KEY&amp;lt;/code&amp;gt; to log in.&lt;br /&gt;
&lt;br /&gt;
== Local development environment based on &amp;lt;code&amp;gt;bluespice-containers&amp;lt;/code&amp;gt; ==&lt;br /&gt;
As an alternative, one can use https://github.com/BlueSpice-Wiki/bluespice-containers . This is especially useful when working on the various individual services.&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Development&amp;diff=14401</id>
		<title>Development</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Development&amp;diff=14401"/>
		<updated>2026-07-10T06:08:39Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page contains information about how to set up a local development environment for BlueSpice.&lt;br /&gt;
&lt;br /&gt;
== Local development environment based on &amp;lt;code&amp;gt;bluespice-deploy&amp;lt;/code&amp;gt; ==&lt;br /&gt;
A developer can use the [[Setup:Installation Guide/Docker|default deployment stack]] and alter is to quickly set up a development environment. To do so, first clone the stack to your local machine and navigate into it:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
git clone -b 5.2.x git@github.com:hallowelt/bluespice-deploy.git&lt;br /&gt;
cd bluespice-deploy/compose&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create a proper &amp;lt;code&amp;gt;.env&amp;lt;/code&amp;gt; file from the &amp;lt;code&amp;gt;.env.sample&amp;lt;/code&amp;gt; and alter/add the following lines:  &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
DATADIR=~/workspace/REL1_43-5.2.x/data&lt;br /&gt;
CODEDIR=~/workspace/REL1_43-5.2.x/code&lt;br /&gt;
SMTP_HOST=mailhog&lt;br /&gt;
SMTP_PORT=1025&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create a &amp;lt;code&amp;gt;docker-compose.override.yml&amp;lt;/code&amp;gt; file with the following content:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
x-common-dev: &amp;amp;x-common&lt;br /&gt;
  image: docker.bluespice.com/bluespice-qa/wiki:latest&lt;br /&gt;
  volumes:&lt;br /&gt;
    - ${CODEDIR}:/app/bluespice/w/&lt;br /&gt;
&lt;br /&gt;
services:&lt;br /&gt;
&lt;br /&gt;
  wiki-installer:&lt;br /&gt;
    &amp;lt;&amp;lt;: *x-common&lt;br /&gt;
&lt;br /&gt;
  wiki-web:&lt;br /&gt;
    &amp;lt;&amp;lt;: *x-common&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  wiki-task:&lt;br /&gt;
    &amp;lt;&amp;lt;: *x-common&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  mailhog:&lt;br /&gt;
    image: mailhog/mailhog&lt;br /&gt;
    container_name: ${COMPOSE_PROJECT_NAME:-bluespice}-mailhog&lt;br /&gt;
    environment:&lt;br /&gt;
      VIRTUAL_HOST: ${WIKI_HOST}&lt;br /&gt;
      VIRTUAL_PATH: /_mailhog/&lt;br /&gt;
      VIRTUAL_PORT: 8025&lt;br /&gt;
      VIRTUAL_DEST: /&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  cache:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  collabpads:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  collabpads-database:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  database:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  diagram:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  formula:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  pdf:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  proxy:&lt;br /&gt;
    restart: no&lt;br /&gt;
  &lt;br /&gt;
  search:&lt;br /&gt;
    restart: no&lt;br /&gt;
&lt;br /&gt;
  wire:&lt;br /&gt;
    restart: no&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will make the stack use your local codebase from &amp;lt;code&amp;gt;$CODEDIR&amp;lt;/code&amp;gt; and also expose a Mailhog web interface on &amp;lt;code&amp;gt;$Wiki_HOST/_mailhog&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
​In addition, if you want to work with a custom build of the &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; container, you can add an &amp;lt;code&amp;gt;image:&amp;lt;/code&amp;gt; entry to the respective services. Example&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
  wiki-installer:&lt;br /&gt;
    image: bluespice/wiki:dev&lt;br /&gt;
...&lt;br /&gt;
  wiki-web:&lt;br /&gt;
    image: bluespice/wiki:dev&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
  wiki-task:&lt;br /&gt;
    image: bluespice/wiki:dev&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;or you set&amp;lt;blockquote&amp;gt;BLUESPICE_WIKI_IMAGE=bluespice/wiki:dev&amp;lt;/blockquote&amp;gt;in your &amp;lt;code&amp;gt;.env&amp;lt;/code&amp;gt;-File&lt;br /&gt;
&lt;br /&gt;
=== Add S3 &amp;lt;code&amp;gt;filestore&amp;lt;/code&amp;gt; service ===&lt;br /&gt;
When working on the S3 filestore features, a developer needs a &amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
x-common-dev: &amp;amp;x-common&lt;br /&gt;
...&lt;br /&gt;
  environment:&lt;br /&gt;
    FILESTORE_HOST: filestore&lt;br /&gt;
    FILESTORE_PORT: 9000&lt;br /&gt;
    FILESTORE_PROTOCOL: http&lt;br /&gt;
    FILESTORE_ACCESS_KEY: ${FILESTORE_ACCESS_KEY}&lt;br /&gt;
    FILESTORE_SECRET_KEY: ${FILESTORE_SECRET_KEY}&lt;br /&gt;
    FILESTORE_BUCKET_NAME: ${FILESTORE_BUCKET_NAME:-bluespice}&lt;br /&gt;
    FILESTORE_REGION: ${FILESTORE_REGION:-eu-north-1}&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
  filestore:&lt;br /&gt;
    image: minio/minio:latest&lt;br /&gt;
    container_name: ${COMPOSE_PROJECT_NAME:-bluespice}-filestore&lt;br /&gt;
    command: server /data --console-address &amp;quot;:9001&amp;quot;&lt;br /&gt;
    environment:&lt;br /&gt;
      MINIO_ROOT_USER: ${FILESTORE_ACCESS_KEY}&lt;br /&gt;
      MINIO_ROOT_PASSWORD: ${FILESTORE_SECRET_KEY}&lt;br /&gt;
    ports:&lt;br /&gt;
      - &amp;quot;9000:9000&amp;quot;&lt;br /&gt;
      - &amp;quot;9001:9001&amp;quot;&lt;br /&gt;
    volumes:&lt;br /&gt;
      - ${DATADIR}/filestore:/data&lt;br /&gt;
    restart: no&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;In &amp;lt;code&amp;gt;.env&amp;lt;/code&amp;gt; &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
FILESTORE_ACCESS_KEY=...&lt;br /&gt;
FILESTORE_SECRET_KEY=...&lt;br /&gt;
FILESTORE_BUCKET_NAME=bluespice&lt;br /&gt;
FILESTORE_REGION=eu-north-1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;After a &amp;lt;code&amp;gt;/bluespice-deploy up -d&amp;lt;/code&amp;gt; you can access the MINIO webinterface in your browser at &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://localhost:9001&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. Use the values of &amp;lt;code&amp;gt;FILESTORE_ACCESS_KEY&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;FILESTORE_SECRET_KEY&amp;lt;/code&amp;gt; to log in.&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Security:Security_Advisories&amp;diff=14350</id>
		<title>Security:Security Advisories</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Security:Security_Advisories&amp;diff=14350"/>
		<updated>2026-06-22T08:41:06Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
! style=&amp;quot;&amp;quot; |Release name&lt;br /&gt;
! style=&amp;quot;&amp;quot; |Release date&lt;br /&gt;
! style=&amp;quot;&amp;quot; |Title&lt;br /&gt;
! style=&amp;quot;&amp;quot; |References&lt;br /&gt;
! style=&amp;quot;&amp;quot; |Summary&lt;br /&gt;
!Severity&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2026-04|BSSA-2026-04]]&lt;br /&gt;
|2026-06-22&lt;br /&gt;
|Security vulnerabilities in Confluence Migration Tool container image&lt;br /&gt;
|[https://nvd.nist.gov/vuln/detail/CVE-2026-8376 CVE-2026-8376]&lt;br /&gt;
|Heap buffer overflow vulnerability in Perl Regexes&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2026-03|BSSA-2026-03]]&lt;br /&gt;
|2026-06-08&lt;br /&gt;
|Security vulnerabilities in containers of the Cloudogu  stack&lt;br /&gt;
|[https://nvd.nist.gov/vuln/detail/CVE-2026-31789 CVE-2026-31789], [https://nvd.nist.gov/vuln/detail/CVE-2026-43512 CVE-2026-43512], [https://nvd.nist.gov/vuln/detail/CVE-2026-7261 CVE-2026-7261]&lt;br /&gt;
|Heap buffer overflow in OpenSSL, Apache Tomcat DIGEST authentication bypass and  PHP SOAP server session persistence vulnerability&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2026-02|BSSA-2026-02]]&lt;br /&gt;
|2026-03-04&lt;br /&gt;
|Security vulnerability in BlueSpice Database container and NSFileRepo extension.&lt;br /&gt;
|[https://avd.aquasec.com/nvd/2025/cve-2025-15467 CVE-2025-15467],&lt;br /&gt;
[https://avd.aquasec.com/nvd/2026/cve-2026-24732 CVE-2026-24732]&lt;br /&gt;
|Buffer Overflow; Information disclosure&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2026-01|BSSA-2026-01]]&lt;br /&gt;
|2026-01-28&lt;br /&gt;
|Security vulnerability in BlueSpice Collabpads database container.&lt;br /&gt;
|[https://avd.aquasec.com/nvd/2025/cve-2025-14847 CVE-2025-14847]&lt;br /&gt;
|Read of uninitialized heap memory&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2025-07|BSSA-2025-07]]&lt;br /&gt;
|2025-12-10&lt;br /&gt;
|Security vulnerability in BlueSpice Search container.&lt;br /&gt;
|[https://avd.aquasec.com/nvd/2025/cve-2025-66516 CVE-2025-66516]&lt;br /&gt;
|XML Entity Injection&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2025-06|BSSA-2025-06]]&lt;br /&gt;
|2025-10-28&lt;br /&gt;
|Security vulnerabilities in various MediaWiki extensions that are actually part of the BlueSpice distribution&lt;br /&gt;
|[https://www.cve.org/CVERecord?id=CVE-2024-56171 CVE-2024-56171], [https://www.cve.org/CVERecord?id=CVE-2025-3277 CVE-2025-3277], [https://www.cve.org/CVERecord?id=CVE-2025-6965 CVE-2025-6965], [https://www.cve.org/CVERecord?id=CVE-2025-11173 CVE-2025-11173], [https://www.cve.org/CVERecord?id=CVE-2025-11175 CVE-2025-11175],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-53625 CVE-2025-53625],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-54370 CVE-2025-54370],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-54874 CVE-2025-54874],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-59839 CVE-2025-59839],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61634 CVE-2025-61634],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61635 CVE-2025-61635],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61636 CVE-2025-61636],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61637 CVE-2025-61637],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61638 CVE-2025-61638],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61639 CVE-2025-61639],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61640 CVE-2025-61640],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61641 CVE-2025-61641],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61642 CVE-2025-61642],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61643 CVE-2025-61643],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61646 CVE-2025-61646],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61652 CVE-2025-61652],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61653 CVE-2025-61653],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61655 CVE-2025-61655],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61655 CVE-2025-61655],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61656 CVE-2025-61656],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61656 CVE-2025-61656],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61657 CVE-2025-61657],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-7458 CVE-2025-7458]&lt;br /&gt;
|Denial Of Service,&lt;br /&gt;
Cross-Site Scripting (XSS),&lt;br /&gt;
Information Disclosure,&lt;br /&gt;
Bypass authn at content check,&lt;br /&gt;
Server-side Request Forgery,&lt;br /&gt;
Arbitrary Code Execution,&lt;br /&gt;
Memory Corruption,&lt;br /&gt;
Use-After-Free,&lt;br /&gt;
Arbitrary SQL Execution&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-red-bg&amp;quot; |High&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2025-05|BSSA-2025-05]]&lt;br /&gt;
|2025-09-19&lt;br /&gt;
|XSS in Extension:AtMentions, Extension:BlueSpiceAvatars, Extension:BlueSpiceWhoIsOnline and Extension:CognitiveProcessDesigner&lt;br /&gt;
|[https://www.cve.org/CVERecord?id=CVE-2025-46703 CVE-2025-46703], [https://www.cve.org/CVERecord?id=CVE-2025-48007 CVE-2025-48007], [https://www.cve.org/CVERecord?id=CVE-2025-57880 CVE-2025-57880], [https://www.cve.org/CVERecord?id=CVE-2025-58114 CVE-2025-58114]&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2025-04|BSSA-2025-04]]&lt;br /&gt;
|2025-09-18&lt;br /&gt;
|Security vulnerabilities in services &amp;lt;code&amp;gt;bluespice/search&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;bluespice/formular&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; &lt;br /&gt;
|[https://nvd.nist.gov/vuln/detail/CVE-2025-54988 CVE-2025-54988], [https://avd.aquasec.com/nvd/2025/cve-2025-7783 CVE-2025-7783], [https://avd.aquasec.com/nvd/cve-2025-58050 CVE-2025-58050], [https://avd.aquasec.com/nvd/cve-2025-49794 CVE-2025-49794], [https://avd.aquasec.com/nvd/cve-2025-49796 CVE-2025-49796]&lt;br /&gt;
|Denial-of-Service, Information Disclosure&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2025-03|BSSA-2025-03]]&lt;br /&gt;
|2025-07-28&lt;br /&gt;
|Security vulnerabilities in Extension:Scribunto, Extension:TabberNeue, Extension:TwoColConflict and Extension:Quiz&lt;br /&gt;
|[https://www.cve.org/CVERecord?id=CVE-2025-53501 CVE-2025-53501], [https://www.cve.org/CVERecord?id=CVE-2025-53494 CVE-2025-53494], [https://www.cve.org/CVERecord?id=CVE-2025-53093 CVE-2025-53093], [https://www.cve.org/CVERecord?id=CVE-2025-7057 CVE-2025-7057]&lt;br /&gt;
|Information Disclosure, &lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2025-02|BSSA-2025-02]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2025-04-17&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Security vulnerabilities in Extension:OAuth&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2025-32068 CVE-2025-32068], [https://www.cve.org/CVERecord?id=CVE-2025-32074 CVE-2025-32074]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Allows unauthorized access to the wiki, Cross-Site Scripting (XSS)&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2025-01|BSSA-2025-01]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2025-01-20&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Security vulnerabilities in Extension:DataTransfer &lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2025-23081 CVE-2025-23081]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Allows Cross Site Request Forgery, Cross-Site Scripting (XSS)&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2023-02|BSSA-2023-02]]&lt;br /&gt;
|2023-10-30&lt;br /&gt;
|Security vulnerabilities in Extension:BlueSpiceAvatars&lt;br /&gt;
|[https://www.cve.org/cverecord?id=CVE-2023-42431 CVE-2023-42431]&lt;br /&gt;
|Allows Cross-Site Scripting (XSS)&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2023-01|BSSA-2023-01]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2023-07-25&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Ghostscript vulnerability&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2023-36664 CVE-2023-36664]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Code can be executed on the server via a manipulated PDF&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-08|BSSA-2022-08]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-11-15&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector on regular pages&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-3895 CVE-2022-3895]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Arbitrary HTML injection through use of interface elements&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-07|BSSA-2022-07]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-11-15&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector on regular pages&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-3958 CVE-2022-3958]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Arbitrary HTML injection through personal menu items&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-06|BSSA-2022-06]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-11-15&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector on regular pages&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-3893 CVE-2022-3893]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Arbitrary HTML injection through the custom menu&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-05|BSSA-2022-05]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-11-15&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector on regular pages&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-42001 CVE-2022-42001]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Arbitrary HTML injection through the book navigation&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-04|BSSA-2022-04]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-11-15&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector on regular pages&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-41789 CVE-2022-41789], [https://www.cve.org/CVERecord?id=CVE-2022-41814 CVE-2022-41814], [https://www.cve.org/CVERecord?id=CVE-2022-42000 CVE-2022-42000]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Arbitrary HTML injection through user preferences&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-03|BSSA-2022-03]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-11-15&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector on regular pages&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-41611 CVE-2022-41611]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Arbitrary HTML injection through main navigation&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-02|BSSA-2022-02]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-11-15&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector on regular pages&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-2511 CVE-2022-2511]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Arbitrary HTML injection through the &#039;title&#039; parameter&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-01|BSSA-2022-01]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-01-31&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector in Search Center&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-2510 CVE-2022-2510]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |JavaScript in search field is reflected back to the browser.&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Security:Security_Advisories/BSSA-2026-04&amp;diff=14349</id>
		<title>Security:Security Advisories/BSSA-2026-04</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Security:Security_Advisories/BSSA-2026-04&amp;diff=14349"/>
		<updated>2026-06-22T08:38:42Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: Created page with &amp;quot;{| class=&amp;quot;wikitable&amp;quot; |+ ! ! |- |Date |2026-06-22 |- |Severity |reported &amp;quot;high&amp;quot;, BlueSpice assessment: &amp;#039;&amp;#039;&amp;#039;not affected&amp;#039;&amp;#039;&amp;#039; |- |Affected |&amp;lt;code&amp;gt;bluespice/migrate-confluence&amp;lt;/code&amp;gt; Docker image (all versions) |- |Fixed in |Next regular update |- |CVE | * [https://nvd.nist.gov/vuln/detail/CVE-2026-8376 CVE-2026-8376] |}  ==Problem== {| class=&amp;quot;wikitable&amp;quot; !&amp;#039;&amp;#039;&amp;#039;CVE&amp;#039;&amp;#039;&amp;#039; !&amp;#039;&amp;#039;&amp;#039;Component&amp;#039;&amp;#039;&amp;#039; !&amp;#039;&amp;#039;&amp;#039;Type of vulnerability&amp;#039;&amp;#039;&amp;#039; !&amp;#039;&amp;#039;&amp;#039;BlueSpice 5&amp;#039;&amp;#039;&amp;#039; |- |CVE-2026-8376 |&amp;lt;code&amp;gt;bluespice/migrate-confl...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|Date&lt;br /&gt;
|2026-06-22&lt;br /&gt;
|-&lt;br /&gt;
|Severity&lt;br /&gt;
|reported &amp;quot;high&amp;quot;, BlueSpice assessment: &#039;&#039;&#039;not affected&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|Affected&lt;br /&gt;
|&amp;lt;code&amp;gt;bluespice/migrate-confluence&amp;lt;/code&amp;gt; Docker image (all versions)&lt;br /&gt;
|-&lt;br /&gt;
|Fixed in&lt;br /&gt;
|Next regular update&lt;br /&gt;
|-&lt;br /&gt;
|CVE&lt;br /&gt;
|&lt;br /&gt;
* [https://nvd.nist.gov/vuln/detail/CVE-2026-8376 CVE-2026-8376]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Problem==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!&#039;&#039;&#039;CVE&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Component&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Type of vulnerability&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;BlueSpice 5&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2026-8376&lt;br /&gt;
|&amp;lt;code&amp;gt;bluespice/migrate-confluence&amp;lt;/code&amp;gt;&lt;br /&gt;
|Heap Buffer Overflow (Perl regex compilation, 32-bit only)&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |not affected&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Impact assessment==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
!CVE&lt;br /&gt;
!Assessment&lt;br /&gt;
!Mitigation without update&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |CVE-2026-8376&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Not affected. The vulnerability only applies to 32-bit Perl builds; the &amp;lt;code&amp;gt;bluespice/migrate-confluence&amp;lt;/code&amp;gt; Docker image uses a 64-bit base image and therefore runs a 64-bit Perl. Additionally, the regular expressions used in the application are part of the application logic and cannot be injected by an attacker.&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |No action required.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Solution ==&lt;br /&gt;
No immediate action required. The affected library will be updated in the next regular release.&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Security:Security_Advisories&amp;diff=14308</id>
		<title>Security:Security Advisories</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Security:Security_Advisories&amp;diff=14308"/>
		<updated>2026-06-08T09:06:59Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;width:100%;&amp;quot;&lt;br /&gt;
! style=&amp;quot;&amp;quot; |Release name&lt;br /&gt;
! style=&amp;quot;&amp;quot; |Release date&lt;br /&gt;
! style=&amp;quot;&amp;quot; |Title&lt;br /&gt;
! style=&amp;quot;&amp;quot; |References&lt;br /&gt;
! style=&amp;quot;&amp;quot; |Summary&lt;br /&gt;
!Severity&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2026-03|BSSA-2026-03]]&lt;br /&gt;
|2026-06-08&lt;br /&gt;
|Security vulnerabilities in containers of the Cloudogu  stack&lt;br /&gt;
|[https://nvd.nist.gov/vuln/detail/CVE-2026-31789 CVE-2026-31789], [https://nvd.nist.gov/vuln/detail/CVE-2026-43512 CVE-2026-43512], [https://nvd.nist.gov/vuln/detail/CVE-2026-7261 CVE-2026-7261]&lt;br /&gt;
|Heap buffer overflow in OpenSSL, Apache Tomcat DIGEST authentication bypass and  PHP SOAP server session persistence vulnerability&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2026-02|BSSA-2026-02]]&lt;br /&gt;
|2026-03-04&lt;br /&gt;
|Security vulnerability in BlueSpice Database container and NSFileRepo extension.&lt;br /&gt;
|[https://avd.aquasec.com/nvd/2025/cve-2025-15467 CVE-2025-15467],&lt;br /&gt;
[https://avd.aquasec.com/nvd/2026/cve-2026-24732 CVE-2026-24732]&lt;br /&gt;
|Buffer Overflow; Information disclosure&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2026-01|BSSA-2026-01]]&lt;br /&gt;
|2026-01-28&lt;br /&gt;
|Security vulnerability in BlueSpice Collabpads database container.&lt;br /&gt;
|[https://avd.aquasec.com/nvd/2025/cve-2025-14847 CVE-2025-14847]&lt;br /&gt;
|Read of uninitialized heap memory&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2025-07|BSSA-2025-07]]&lt;br /&gt;
|2025-12-10&lt;br /&gt;
|Security vulnerability in BlueSpice Search container.&lt;br /&gt;
|[https://avd.aquasec.com/nvd/2025/cve-2025-66516 CVE-2025-66516]&lt;br /&gt;
|XML Entity Injection&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2025-06|BSSA-2025-06]]&lt;br /&gt;
|2025-10-28&lt;br /&gt;
|Security vulnerabilities in various MediaWiki extensions that are actually part of the BlueSpice distribution&lt;br /&gt;
|[https://www.cve.org/CVERecord?id=CVE-2024-56171 CVE-2024-56171], [https://www.cve.org/CVERecord?id=CVE-2025-3277 CVE-2025-3277], [https://www.cve.org/CVERecord?id=CVE-2025-6965 CVE-2025-6965], [https://www.cve.org/CVERecord?id=CVE-2025-11173 CVE-2025-11173], [https://www.cve.org/CVERecord?id=CVE-2025-11175 CVE-2025-11175],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-53625 CVE-2025-53625],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-54370 CVE-2025-54370],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-54874 CVE-2025-54874],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-59839 CVE-2025-59839],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61634 CVE-2025-61634],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61635 CVE-2025-61635],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61636 CVE-2025-61636],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61637 CVE-2025-61637],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61638 CVE-2025-61638],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61639 CVE-2025-61639],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61640 CVE-2025-61640],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61641 CVE-2025-61641],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61642 CVE-2025-61642],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61643 CVE-2025-61643],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61646 CVE-2025-61646],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61652 CVE-2025-61652],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61653 CVE-2025-61653],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61655 CVE-2025-61655],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61655 CVE-2025-61655],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61656 CVE-2025-61656],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61656 CVE-2025-61656],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-61657 CVE-2025-61657],&lt;br /&gt;
[https://www.cve.org/CVERecord?id=CVE-2025-7458 CVE-2025-7458]&lt;br /&gt;
|Denial Of Service,&lt;br /&gt;
Cross-Site Scripting (XSS),&lt;br /&gt;
Information Disclosure,&lt;br /&gt;
Bypass authn at content check,&lt;br /&gt;
Server-side Request Forgery,&lt;br /&gt;
Arbitrary Code Execution,&lt;br /&gt;
Memory Corruption,&lt;br /&gt;
Use-After-Free,&lt;br /&gt;
Arbitrary SQL Execution&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-red-bg&amp;quot; |High&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2025-05|BSSA-2025-05]]&lt;br /&gt;
|2025-09-19&lt;br /&gt;
|XSS in Extension:AtMentions, Extension:BlueSpiceAvatars, Extension:BlueSpiceWhoIsOnline and Extension:CognitiveProcessDesigner&lt;br /&gt;
|[https://www.cve.org/CVERecord?id=CVE-2025-46703 CVE-2025-46703], [https://www.cve.org/CVERecord?id=CVE-2025-48007 CVE-2025-48007], [https://www.cve.org/CVERecord?id=CVE-2025-57880 CVE-2025-57880], [https://www.cve.org/CVERecord?id=CVE-2025-58114 CVE-2025-58114]&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2025-04|BSSA-2025-04]]&lt;br /&gt;
|2025-09-18&lt;br /&gt;
|Security vulnerabilities in services &amp;lt;code&amp;gt;bluespice/search&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;bluespice/formular&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;bluespice/wiki&amp;lt;/code&amp;gt; &lt;br /&gt;
|[https://nvd.nist.gov/vuln/detail/CVE-2025-54988 CVE-2025-54988], [https://avd.aquasec.com/nvd/2025/cve-2025-7783 CVE-2025-7783], [https://avd.aquasec.com/nvd/cve-2025-58050 CVE-2025-58050], [https://avd.aquasec.com/nvd/cve-2025-49794 CVE-2025-49794], [https://avd.aquasec.com/nvd/cve-2025-49796 CVE-2025-49796]&lt;br /&gt;
|Denial-of-Service, Information Disclosure&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2025-03|BSSA-2025-03]]&lt;br /&gt;
|2025-07-28&lt;br /&gt;
|Security vulnerabilities in Extension:Scribunto, Extension:TabberNeue, Extension:TwoColConflict and Extension:Quiz&lt;br /&gt;
|[https://www.cve.org/CVERecord?id=CVE-2025-53501 CVE-2025-53501], [https://www.cve.org/CVERecord?id=CVE-2025-53494 CVE-2025-53494], [https://www.cve.org/CVERecord?id=CVE-2025-53093 CVE-2025-53093], [https://www.cve.org/CVERecord?id=CVE-2025-7057 CVE-2025-7057]&lt;br /&gt;
|Information Disclosure, &lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2025-02|BSSA-2025-02]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2025-04-17&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Security vulnerabilities in Extension:OAuth&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2025-32068 CVE-2025-32068], [https://www.cve.org/CVERecord?id=CVE-2025-32074 CVE-2025-32074]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Allows unauthorized access to the wiki, Cross-Site Scripting (XSS)&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2025-01|BSSA-2025-01]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2025-01-20&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Security vulnerabilities in Extension:DataTransfer &lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2025-23081 CVE-2025-23081]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Allows Cross Site Request Forgery, Cross-Site Scripting (XSS)&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
|[[Security:Security Advisories/BSSA-2023-02|BSSA-2023-02]]&lt;br /&gt;
|2023-10-30&lt;br /&gt;
|Security vulnerabilities in Extension:BlueSpiceAvatars&lt;br /&gt;
|[https://www.cve.org/cverecord?id=CVE-2023-42431 CVE-2023-42431]&lt;br /&gt;
|Allows Cross-Site Scripting (XSS)&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2023-01|BSSA-2023-01]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2023-07-25&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Ghostscript vulnerability&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2023-36664 CVE-2023-36664]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Code can be executed on the server via a manipulated PDF&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-08|BSSA-2022-08]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-11-15&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector on regular pages&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-3895 CVE-2022-3895]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Arbitrary HTML injection through use of interface elements&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-07|BSSA-2022-07]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-11-15&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector on regular pages&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-3958 CVE-2022-3958]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Arbitrary HTML injection through personal menu items&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-06|BSSA-2022-06]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-11-15&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector on regular pages&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-3893 CVE-2022-3893]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Arbitrary HTML injection through the custom menu&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-05|BSSA-2022-05]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-11-15&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector on regular pages&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-42001 CVE-2022-42001]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Arbitrary HTML injection through the book navigation&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-04|BSSA-2022-04]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-11-15&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector on regular pages&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-41789 CVE-2022-41789], [https://www.cve.org/CVERecord?id=CVE-2022-41814 CVE-2022-41814], [https://www.cve.org/CVERecord?id=CVE-2022-42000 CVE-2022-42000]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Arbitrary HTML injection through user preferences&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-03|BSSA-2022-03]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-11-15&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector on regular pages&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-41611 CVE-2022-41611]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Arbitrary HTML injection through main navigation&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Low&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-02|BSSA-2022-02]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-11-15&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector on regular pages&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-2511 CVE-2022-2511]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |Arbitrary HTML injection through the &#039;title&#039; parameter&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[[Security:Security Advisories/BSSA-2022-01|BSSA-2022-01]]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |2022-01-31&lt;br /&gt;
| style=&amp;quot;&amp;quot; |XSS attack vector in Search Center&lt;br /&gt;
| style=&amp;quot;&amp;quot; |[https://www.cve.org/CVERecord?id=CVE-2022-2510 CVE-2022-2510]&lt;br /&gt;
| style=&amp;quot;&amp;quot; |JavaScript in search field is reflected back to the browser.&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-orange-bg&amp;quot; |Medium&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
	<entry>
		<id>https://en.wiki.bluespice.com/w/index.php?title=Security:Security_Advisories/BSSA-2026-03&amp;diff=14307</id>
		<title>Security:Security Advisories/BSSA-2026-03</title>
		<link rel="alternate" type="text/html" href="https://en.wiki.bluespice.com/w/index.php?title=Security:Security_Advisories/BSSA-2026-03&amp;diff=14307"/>
		<updated>2026-06-08T09:02:50Z</updated>

		<summary type="html">&lt;p&gt;Rvogel1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|Date&lt;br /&gt;
|2026-06-08&lt;br /&gt;
|-&lt;br /&gt;
|Severity&lt;br /&gt;
|reported &amp;quot;medium/high&amp;quot;, BlueSpice assessment: &#039;&#039;&#039;not affected&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|Affected&lt;br /&gt;
|Cloudogu Container Images (library present, not exploitable)&lt;br /&gt;
|-&lt;br /&gt;
|Fixed in&lt;br /&gt;
|Next regular update&lt;br /&gt;
|-&lt;br /&gt;
|CVE&lt;br /&gt;
|&lt;br /&gt;
* [https://nvd.nist.gov/vuln/detail/CVE-2026-31789 CVE-2026-31789]&lt;br /&gt;
* [https://nvd.nist.gov/vuln/detail/CVE-2026-43512 CVE-2026-43512]&lt;br /&gt;
* [https://nvd.nist.gov/vuln/detail/CVE-2026-7261 CVE-2026-7261]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Problem==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!&#039;&#039;&#039;CVE&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Component&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;Type of vulnerability&#039;&#039;&#039;&lt;br /&gt;
!&#039;&#039;&#039;BlueSpice 5&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2026-31789&lt;br /&gt;
|&amp;lt;code&amp;gt;hallowelt/bluespice-mathoid&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;hallowelt/bluespice-collabpadsbackend&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;hallowelt/mongodb&amp;lt;/code&amp;gt;&lt;br /&gt;
|Heap Buffer Overflow (OpenSSL, 32-bit only)&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |not affected&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2026-43512&lt;br /&gt;
|&amp;lt;code&amp;gt;hallowelt/bluespice-pdfrenderer&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;hallowelt/drawio&amp;lt;/code&amp;gt;&lt;br /&gt;
|Authentication Bypass (Apache Tomcat DIGEST)&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |not affected&lt;br /&gt;
|-&lt;br /&gt;
|CVE-2026-7261&lt;br /&gt;
|&amp;lt;code&amp;gt;hallowelt/bluespice&amp;lt;/code&amp;gt;&lt;br /&gt;
|PHP SOAP Server Session Persistence&lt;br /&gt;
| style=&amp;quot;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |not affected&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Impact assessment==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
!CVE&lt;br /&gt;
!Assessment&lt;br /&gt;
!Mitigation without update&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |CVE-2026-31789&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Not affected. The vulnerability only applies to 32-bit platforms. Additionally, the way OpenSSL is used in the affected container images does not expose any exploitable attack surface.&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |No action required.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |CVE-2026-43512&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Not affected. Neither &amp;lt;code&amp;gt;bluespice-pdfrenderer&amp;lt;/code&amp;gt; nor &amp;lt;code&amp;gt;drawio&amp;lt;/code&amp;gt; use DIGEST authentication. Access to both services is anonymous by design.&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |No action required.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |CVE-2026-7261&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; class=&amp;quot;col-green-bg&amp;quot; |Not affected. BlueSpice does not use a PHP SOAP server, and the affected &amp;lt;code&amp;gt;SOAP_PERSISTENCE_SESSION&amp;lt;/code&amp;gt; setting is not in use.&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;text-align:left;&amp;quot; |No action required.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Solution ==&lt;br /&gt;
No immediate action required. The affected libraries will be updated in the next regular release.&lt;/div&gt;</summary>
		<author><name>Rvogel1</name></author>
	</entry>
</feed>