dependabot[bot] opened a new pull request, #375: URL: https://github.com/apache/directory-server/pull/375
Bumps [ch.qos.logback:logback-classic](https://github.com/qos-ch/logback) from 1.5.34 to 1.6.5. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/qos-ch/logback/releases">ch.qos.logback:logback-classic's releases</a>.</em></p> <blockquote> <h2>Logback 1.6.5</h2> <p>2026-09-30 Release of logback version 1.6.5</p> <p>• Fixed a vulnerability <a href="https://www.cve.org/CVERecord?id=CVE-2026-104721">CVE-2026-104721</a> closely related to <a href="https://www.cve.org/cverecord?id=CVE-2026-19880">CVE-2026-19880</a>. The fix in version 1.6.3, which strips forward and backward slashes from <code>MDC</code> values, was insufficient. An <code>MDC</code> value could still contain relative path components such as .., variable references such as /, or characters that are special in file name patterns and email addresses. This latest vulnerability was found and reported by François Martin (GitHub: <a href="https://github.com/martinfrancois"><code>@martinfrancois</code></a>, <a href="https://github.com/martinfrancois">https://github.com/martinfrancois</a>).</p> <p><code>MDCBasedDiscriminator</code>, used by <a href="https://logback.qos.ch/manual/appenders-async-sift.html#SiftingAppender"><code>SiftingAppender</code></a>, now rejects <code>MDC</code> values instead of stripping characters from them. An MDC value is rejected if it is empty, if it is longer than 64 characters, if it contains the sequence .., or if it contains any of the following characters: <code>/ \ $ { } [ ] ( ) | ? * + % , @</code>. When an <code>MDC</code> value is rejected, the discriminator returns the value of its <code>DefaultValue</code> property. A warning is emitted for each rejected value. These warnings are rate-limited.</p> <p>• When compression is enabled, <code>TimeBasedRollingPolicy</code> and <code>SizeAndTimeBasedRollingPolicy</code> now also remove old log files that were never compressed, for example because the application was not running at rollover time. Previously, such files were ignored by <code>maxHistory</code> and accumulated indefinitely. This issue was discussed in <a href="https://github.com/qos-ch/logback/discussions/1032">discussions/1032</a>. See <a href="https://logback.qos.ch/manual/appenders-rolling.html#TimeBasedRollingPolicy"><code>TimeBasedRollingPolicy</code></a>.</p> <p>• <code>SimpleInvocationGate</code>, deprecated in version 1.6.3, is now marked for removal. Use <code>FixedIntervalInvocationGate</code> instead.</p> <p>• A bit-wise identical binary of this version can be reproduced by building from source code at commit d1b829dcdb9fd98511c64401beb1419a9c9384aa associated with the tag v_1.6.5. The release was built using Java "21" 2023-10-17 LTS build 21.0.1.+12-LTS-29 under Linux Debian 11.6.</p> <h2>Logback 1.6.4</h2> <p><strong>2026-09-24 Release of logback version 1.6.4</strong></p> <p>• Variable substitution is again applied to the <code>scan</code> attribute of the <code><configuration></code> element. The scanning refactoring in version 1.5.27 had dropped substitution, so values such as <code>${logback.scan.enabled:-true}</code> were no longer resolved. As before version 1.5.27, an unrecognized non-empty value turns scanning on. The same substitution now applies to the scan attribute of <code><propertiesConfigurator></code>. This regression was reported in <a href="https://redirect.github.com/qos-ch/logback/issues/1065">issues/1065</a> by <a href="https://github.com/vaibhavjain2">vaibhavjain2</a>.</p> <p>• <code>OutputStreamAppender</code> and <code>FileAppender</code> now handle stateful encoders. The <code>Encoder</code> interface has a new default method called <code>isStateful()</code>, which returns <code>false</code>. An encoder that keeps state between calls to <code>encode()</code> can return true. For such encoders, the appender holds its write lock while encoding and while writing, so the output of concurrent appends cannot interleave. Stateless encoders still encode outside the lock, so their performance does not change. Existing encoders need no changes.</p> <p>• Several race conditions in <code>OutputStreamAppender</code> and <code>FileAppender</code> were fixed. The appender is now marked started and the encoder header is written while the same lock is held, so a concurrent append can no longer write an event before the header. After acquiring the lock, the appender checks again whether it has been stopped, so no event is written after the footer. In prudent mode, FileAppender now encodes and writes each event while holding the lock.</p> <p>• Fixed a data race on the logger count in LoggerContext. Loggers are created under the lock of their parent logger, so loggers with different parents could be created at the same time and increments of the shared counter could be lost. As a result, <code>LoggerContext.size()</code> could return a value lower than the actual number of loggers. The counter is now an <code>AtomicInteger</code>. This issue was reported in <a href="https://redirect.github.com/qos-ch/logback/issues/1038">issues/1038</a> by hcantunc. The fix was contributed in PR <a href="https://redirect.github.com/qos-ch/logback/issues/1055">#1055</a> by <a href="https://github.com/seonwooj0810">seonwoo_jung</a>.</p> <p>• <code>TimeBasedRollingPolicy</code> now supports half-day periods. Date patterns with the AM/PM marker, for example %d{yyyy-MM-dd-a}, used to be detected as daily and rolled over only at midnight. They now roll over at both 00:00 and 12:00. This issue was reported in issues/976 by shakthifuture. The fix was contributed in PR <a href="https://redirect.github.com/qos-ch/logback/issues/1051">#1051</a> by <a href="https://github.com/seonwooj0810">seonwoo_jung</a>. See <code>TimeBasedRollingPolicy</code>.</p> <p>• If <code>org.jline.jansi.AnsiConsole</code> cannot be found on the class path, <code>JansiConsoleAppender</code> now emits warnings that explain how to add org.jline:jansi-core and then writes to the plain console stream. See codes.html#missingJlineJansi.</p> <p>• The unused <code>ch.qos.logback.classic.util.LogbackMDCAdapterSimple</code> class was removed. <code>LogbackMDCAdapter</code> remains the default MDC adapter.</p> <p>• A bit-wise identical binary of this version can be reproduced by building from source code at commit 07d291ca0d280bc5da934ec9ff5f1da634fd7937 associated with the tag v_1.6.4. The release was built using Java "21" 2023-10-17 LTS build 21.0.1.+12-LTS-29 under Linux Debian 11.6.</p> <p><strong>Full Changelog</strong>: <a href="https://github.com/qos-ch/logback/compare/v_1.6.3...v_1.6.4">https://github.com/qos-ch/logback/compare/v_1.6.3...v_1.6.4</a></p> <h2>Logback 1.6.3</h2> <h1>2026-08-14 Release of logback version 1.6.3</h1> <ul> <li> <p>In response <a href="https://www.cve.org/cverecord?id=CVE-2026-19880">CVE-2026-19880</a>, <code>MDCBasedDiscriminator</code> (used by <code>SiftingAppender</code>) now strips forward and backward slashes (<code>/</code>, <code>\</code>) from MDC values before they are used as discriminating keys. This prevents path segments from escaping into destinations controlled by an attacker. When sanitisation actually changes a value, a warning is emitted; the warning is rate-limited (a small batch, then a lull of about ten minutes).</p> </li> <li> <p>Colour console support is split out into a dedicated <a href="https://logback.qos.ch/manual/appenders.html#JansiConsoleAppender"><code>JansiConsoleAppender</code></a>. It wraps stdout or stderr with Jansi so ANSI escape sequences (for example coloured patterns) render correctly on terminals that need it, notably Windows. Prefer this class over the older path described next. See the <a href="https://logback.qos.ch/manual/appenders.html#JansiConsoleAppender">appenders documentation</a>.</p> </li> <li> <p>The <code>withJansi</code> property on <code>ConsoleAppender</code> is <strong>deprecated</strong>. Existing configurations that still set <code><withJansi>true</withJansi></code> continue to work for compatibility, but new setups should use <code>JansiConsoleAppender</code> instead.</p> </li> <li> <p><code>ConsoleAppender</code> no longer treats the process console as an exclusive resource: stopping it does not close <code>System.out</code> / <code>System.err</code>. <code>JansiConsoleAppender</code> pairs each <code>AnsiConsole.systemInstall()</code> with <code>systemUninstall()</code> on stop, so repeated start/stop cycles do not leave Jansi installed or tear down streams shared with the rest of the JVM. Related behavior is covered by tests for <a href="https://redirect.github.com/qos-ch/logback/issues/1063">issues/1063</a>.</p> </li> <li> <p>Invocation throttling helpers were reworked: <code>SimpleInvocationGate</code> is renamed <code>FixedIntervalInvocationGate</code>, and <code>BatchedFixedIntervalInvocationGate</code> allows a short burst of invocations before applying a fixed lull. The sanitisation warning above uses the batched gate.</p> </li> <li> <p>The JPMS <code>module-info</code> for logback-core now exports the <code>ch.qos.logback.core.property</code> package, which had been missing from the module descriptor.</p> </li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/qos-ch/logback/commit/d1b829dcdb9fd98511c64401beb1419a9c9384aa"><code>d1b829d</code></a> prepare release 1.6.5</li> <li><a href="https://github.com/qos-ch/logback/commit/065b9b23d0d39f78bc92fe02f1c206feb281f7ab"><code>065b9b2</code></a> enhance protectin against mischievious MDC values in MDCBasedDiscriminator</li> <li><a href="https://github.com/qos-ch/logback/commit/b69beabb2c48a3e08cb2fdbb0846969be54346cc"><code>b69beab</code></a> complete commit in relation to discussion_1032</li> <li><a href="https://github.com/qos-ch/logback/commit/7266c0b08c4f52aba5aa0983c36622e0cbfccb9a"><code>7266c0b</code></a> fix intermittently failing SocketAppenderMessageLossTest rest condition</li> <li><a href="https://github.com/qos-ch/logback/commit/a633bb0f12600a6260498e1e81d7a123d3af8861"><code>a633bb0</code></a> fix intermittently failing SocketAppenderMessageLossTest rest condition</li> <li><a href="https://github.com/qos-ch/logback/commit/2bc5bccfa5db52428ad439880a35824ac8434819"><code>2bc5bcc</code></a> renamed tbrp and eclosingTBRP, other minor changes</li> <li><a href="https://github.com/qos-ch/logback/commit/2cd876291ce49fb33cbe8a21cdbaeece5c3b4f89"><code>2cd8762</code></a> fix typo in AGENTS.md</li> <li><a href="https://github.com/qos-ch/logback/commit/647846ce230a8865605fe8dd8dc95eac3c1e58ea"><code>647846c</code></a> fix errors when running tests under intellij IDEA</li> <li><a href="https://github.com/qos-ch/logback/commit/1048917953f79e6fa65a9f3f0e77c49f5baff4f0"><code>1048917</code></a> removed ConsoleCharsetPropertyDefiner.java</li> <li><a href="https://github.com/qos-ch/logback/commit/39b50022362fc242fa051d4be6d427aacfdc92cc"><code>39b5002</code></a> added 'since' and 'forRemoval' attributes to SimpleInvocationGate <a href="https://github.com/Deprecatio"><code>@Deprecatio</code></a>...</li> <li>Additional commits viewable in <a href="https://github.com/qos-ch/logback/compare/v_1.5.34...v_1.6.5">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
