Thanks Kezhu, I can support this approach too, but Christopher might have some 
concerns. Let’s see if I understand it well.

TL;DR

- change logback-classic to test scope,
- use “flatten-maven-plugin” to drop it from published pom (also drop the jar 
from release artifacts)
- bump logback / slf4j version to secure ones: 1.3.x, 2.0.x
- do the above on all branches: master, 3.9, 3.8
- create new releases

Did I miss anything?

Andor



> On Aug 13, 2025, at 20:29, Kezhu Wang <kez...@gmail.com> wrote:
> 
> Hi all,
> 
> ZooKeeper delivers two shapes of artifacts to clients:
> 1. Java library mainly for client usage.
> 2. Deployable java server application.
> 
> I think we could take different actions based on usage.
> 1. For library usage, ZooKeeper depends only on `slf4j-api` and should
> not ship any log framework dependencies. I saw ZOOKEEPER-4820[1],
> there are discussions to mark `logback-classic` as optional runtime
> dependency[2]. I would suggest we change it to test scope and use
> maven plugin "flatten-maven-plugin" to drop test dependencies from
> published pom.xml to express the fact that zookeeper library does not
> depend on nor prefer concrete log frameworks. This way, the library
> usage would not be affected by any CVEs of logback.
> 2. For application usage, ZooKeeper ships both slf4j and logback. I
> think we can bump both in zookeeper-assembly and add release notes to
> highlight the consequence of this change.
> 
> After the above actions, there is only one possible breaking change
> for application usage: administrators have to check possible
> customized log dependencies in zookeeper deployment to meet slf4j
> requirements, otherwise there will be "no provider" warning from slf4j
> and hence no logs. I think the risk is pretty low, it affects only
> deployments with customized log dependencies which should be taken
> care of by administrators themselves.
> 
> Regarding replacing logback with slf4j-simple, I think it is ok for
> tests. But will it cause much bigger breaking change than bumping
> slf4j and logback for application artifacts ?
> 
> Best,
> Kezhu Wang
> 
> [1]: https://issues.apache.org/jira/browse/ZOOKEEPER-4820
> [2]: https://github.com/apache/zookeeper/pull/2155#discussion_r1559857699
> 
> 
> On Thu, Aug 14, 2025 at 2:22 AM Enrico Olivelli <eolive...@gmail.com> wrote:
>> 
>> Il Mer 13 Ago 2025, 19:56 Andor Molnar <an...@apache.org> ha scritto:
>> 
>>> I’ve created a PR to attempt to replace logback with slf4j-simple. We do
>>> have some test code relying on logback’s appenders, but we might be able to
>>> replace it with a basic output stream.
>>> 
>>> https://github.com/apache/zookeeper/pull/2293
>>> 
>>> 
>>> ptal.
>>> 
>> 
>> Overall I agree with the approach. I left a couple of questions about the
>> impact on client users and server system admins
>> 
>> I am +1 to release 3.10 and send 3.8 to EOL
>> 
>> 
>> 
>> Thanks
>> Enrico
>> 
>> 
>>> 
>>> Andor
>>> 
>>> 
>>> 
>>>> On Aug 12, 2025, at 15:58, Christopher <ctubb...@apache.org> wrote:
>>>> 
>>>> I would NOT ship with reload4j in new releases. That exists only as a
>>>> temporary workaround for the lack of patch support for log4j 1.2,
>>>> until one is able to update to log4j2 or something else. ZK is already
>>>> using something else (logback). Neither log4j 1.2 nor reload4j are
>>>> appropriate for use with slf4j2. If a log4j implementation is desired,
>>>> a log4j 2.x version should be used. Using reload4j would be a step in
>>>> the wrong direction.
>>>> 
>>>> However, since ZK uses slf4j-api in code, I would ship *only* with
>>>> slf4j-simple as the trivial reference implementation, and let users
>>>> determine their own runtime logging dependency and configuration,
>>>> which can be trivially swapped in place of slf4j-simple. This is
>>>> basically what I argued when logback was being considered to replace
>>>> log4j/reload4j a few years ago, but others preferred logback.
>>>> 
>>>> One thing to consider is that, if I remember correctly, logback is
>>>> used as a test dependency for some build tests. It is easier to run
>>>> those tests with logback than it is to do it with another runtime
>>>> dependency. It is possible to have the tests run using logback, but
>>>> still ship with slf4j-simple instead of logback, but it may take some
>>>> careful attention to the Maven pom.xml files to ensure the desired
>>>> result (let's call this the "split dependency" option). It is
>>>> certainly easier to stay with logback ("single dependency option"),
>>>> but just update it to a newer version, than to modify the Maven build
>>>> to ship something different than what is used in testing, but both
>>>> options are technically possible.
>>>> 
>>>> 
>>>> On Fri, Aug 8, 2025 at 5:19 PM Andor Molnar <an...@apache.org> wrote:
>>>>> 
>>>>> Yeah, I totally agree.
>>>>> 
>>>>> The plan to go forward after getting 3.9.4 out of the door is to either
>>> remove logback from branch-3.8 and replace it with something simpler like
>>> slf4j-simple or reload4j since we ship the logback dependency as an
>>> example. Though I’m not sure if slf4j-simple is an option for us, I have to
>>> try it out in action.
>>>>> 
>>>>> The other option is to announce EoL on branch-3.8 and encourage users
>>> to upgrade to 3.9.4. At the same time we have to create a 3.10.0 release
>>> off the main branch or maybe 4.0.0. I don't have a strong opinion here
>>> either, but I’m pretty confident that we should drop Java 8 support in the
>>> next “current” release.
>>>>> 
>>>>> Andor
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>>> On Aug 8, 2025, at 15:05, Christopher <ctubb...@apache.org> wrote:
>>>>>> 
>>>>>> I don't think the upgrade to slf4j 2 is purely a semantic one. I think
>>>>>> there are genuine incompatibilities, but probably not too many. For
>>>>>> example, slf4j2 drops support for Java 7 (probably not a problem for
>>>>>> ZK, since I think Java 8 is already a requirement), and it switches
>>>>>> the binding mechanisms, so that if somebody was using a different
>>>>>> sfl4j runtime other than logback, then it probably won't work anymore
>>>>>> without additional changes on the user's part.
>>>>>> 
>>>>>> I think the switch on 3.9 is probably okay, but users should be warned
>>>>>> that their logging will probably break if they had used a different
>>>>>> runtime binding for slf4j other than the logback version that ships
>>>>>> with ZK.
>>>>>> 
>>>>>> As for the differences between logback 1.2 and 1.3, I have no idea...
>>>>>> it's probably fine, since ZK is mainly just using it via slf4j-api
>>>>>> anyway, rather than using it directly, but I'd start getting concerned
>>>>>> that 1.3 is also no longer being developed. ZK should probably get
>>>>>> ahead of that on the master branch by requiring Java 11, and using
>>>>>> logback 1.5 there, if it hasn't been done already. Or else this
>>>>>> question of switching from logback 1.2 to 1.3 is going to come up
>>>>>> again soon when there's a CVE found against 1.3 and you have to switch
>>>>>> to 1.5 and Java 11.... certainly don't want to do that in a bugfix
>>>>>> release from the ZK 3.9 branch.
>>>>>> 
>>>>>> On Thu, Aug 7, 2025 at 9:41 AM Andor Molnar <an...@apache.org> wrote:
>>>>>>> 
>>>>>>> Considering all of this I’ll upgrade logback + slf4j to 1.3/2.0 on
>>> the 3.9 branch today and proceed with the release. 3.9 is the current
>>> release line and I think this step is still acceptable at this stage. I
>>> won’t do the same on the stable (3.8) branch and we should talk about
>>> EoL’ing soon in a separate thread.
>>>>>>> 
>>>>>>> Andor
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>>> On Aug 6, 2025, at 19:56, Andor Molnar <an...@apache.org> wrote:
>>>>>>>> 
>>>>>>>> "The 1.2.x series for logback-core and logback-classic has been
>>> deprecated for several years and is no longer maintained. As such, use of
>>> the 1.2.x series is discouraged.”
>>>>>>>> 
>>>>>>>> "Logback version 1.3.15 is the latest in the 1.3.x series. It
>>> requires SLF4J version 2.0.x and JDK 8. Please note that the 1.3.x series
>>> is no loger actively developed.”
>>>>>>>> 
>>>>>>>> "The current actively developed version of logback-core and
>>> logback-classic is 1.5.18. It requires JDK 11 and SLF4J version 2.0.1 at
>>> runtime.”
>>>>>>>> 
>>>>>>>> Looks like our only option is 1.3.x, but once we drop JDK 8 support
>>> (3.10.x maybe?), we’ll be able to upgrade to 1.5.
>>>>>>>> 
>>>>>>>> 
>>>>>>>> 
>>>>>>>> 
>>>>>>>>> On Aug 6, 2025, at 19:52, Andor Molnar <an...@apache.org> wrote:
>>>>>>>>> 
>>>>>>>>> I cannot upgrade logback without upgrading slf4j as well. Build
>>> fails.
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>>> On Aug 6, 2025, at 17:07, Patrick Hunt <ph...@apache.org> wrote:
>>>>>>>>>> 
>>>>>>>>>> Is slf4j really needed for security?
>>>>>>>>>> 
>>>>>>>>>> Only cve I see here is from 2018...
>>>>>>>>>> https://www.slf4j.org/news.html
>>>>>>>>>> 
>>>>>>>>>> Should we revert the slf4j change in its entirety/all branches
>>> until it can
>>>>>>>>>> be made in a b/w compatible way?
>>>>>>>>>> 
>>>>>>>>>> Patrick
>>>>>>>>>> 
>>>>>>>>>> On Wed, Aug 6, 2025 at 2:59 PM Andor Molnar <an...@apache.org>
>>> wrote:
>>>>>>>>>> 
>>>>>>>>>>> Maybe the slf4j upgrade (1.7.30 -> 2.0.13) has higher impact,
>>> because it’s
>>>>>>>>>>> a major upgrade. Logback is just an example of how to do logging
>>> with
>>>>>>>>>>> ZooKeeper real life setups probably replace it with something
>>> else like
>>>>>>>>>>> log4j2. The logging facade (slf4j) could have bw incompatible
>>> changes that
>>>>>>>>>>> will force users to make changes related to logging on their
>>> classpath.
>>>>>>>>>>> 
>>>>>>>>>>> I’m speculating and haven’t checked slf4j for details.
>>>>>>>>>>> 
>>>>>>>>>>> Andor
>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>>>> On Aug 6, 2025, at 16:46, Patrick Hunt <ph...@apache.org> wrote:
>>>>>>>>>>>> 
>>>>>>>>>>>> Is the only problem the minor "semantic" upgrade of logback in a
>>> fix
>>>>>>>>>>>> release of zk? That should be stable (contract wise) on the
>>> dependency,
>>>>>>>>>>>> right? Or is there some real impact, eg b/w incompat change
>>> visible to ZK
>>>>>>>>>>>> users? If the former that seems fine, if the latter then we have
>>> a harder
>>>>>>>>>>>> problem to address. (security issue breaking b/w compat)
>>>>>>>>>>>> 
>>>>>>>>>>>> Patrick
>>>>>>>>>>>> 
>>>>>>>>>>>> On Wed, Aug 6, 2025 at 2:36 PM Andor Molnar <an...@apache.org>
>>> wrote:
>>>>>>>>>>>> 
>>>>>>>>>>>>> Sorry for the confusion, I picked 3.8 as an example, but
>>> logback/slf4j
>>>>>>>>>>>>> upgrades haven’t been backported to 3.9 either. Therefore I
>>> created the
>>>>>>>>>>>>> following backport PR:
>>>>>>>>>>>>> 
>>>>>>>>>>>>> https://github.com/apache/zookeeper/pull/2290
>>>>>>>>>>>>> 
>>>>>>>>>>>>> 
>>>>>>>>>>>>>> "Why would they be applied to master and not to any active
>>> (release)
>>>>>>>>>>>>> line?
>>>>>>>>>>>>> 
>>>>>>>>>>>>> Since we’ve already released 3.9.3 with logback 1.2.13 and
>>> don’t want
>>>>>>>>>>>>> users to realize 1.2->1.3 logback upgrade in a 3.9.3->3.9.4
>>> ZooKeeper
>>>>>>>>>>>>> upgrade process, although this upgrade is necessary anyways to
>>> address
>>>>>>>>>>> the
>>>>>>>>>>>>> CVE in question.
>>>>>>>>>>>>> 
>>>>>>>>>>>>> (in my understanding)
>>>>>>>>>>>>> 
>>>>>>>>>>>>> Andor
>>>>>>>>>>>>> 
>>>>>>>>>>>>> 
>>>>>>>>>>>>> 
>>>>>>>>>>>>> 
>>>>>>>>>>>>>> On Aug 6, 2025, at 15:34, Patrick Hunt <ph...@apache.org>
>>> wrote:
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> I'm confused - this thread started with "OWASP reports CVEs on
>>> the 3.8
>>>>>>>>>>>>>> branch and noticed in the PRs that we should only upgrade
>>> logback on
>>>>>>>>>>> the
>>>>>>>>>>>>>> master branch" - I read that as "some fixes on 3.9 are not
>>> backported
>>>>>>>>>>> to
>>>>>>>>>>>>>> 3.8". But you are saying that this is not fixed (still owasp
>>> warnings)
>>>>>>>>>>> on
>>>>>>>>>>>>>> 3.9 which is separate from master? Why would they be applied
>>> to master
>>>>>>>>>>>>> and
>>>>>>>>>>>>>> not to any active (release) line? What is the impact of the
>>> changes on
>>>>>>>>>>>>>> master and 3.9? iiuc there are backward incompatible changes
>>> if applied
>>>>>>>>>>>>> to
>>>>>>>>>>>>>> 3.8? There should not be b/w incompatible changes applied to
>>> any 3.x
>>>>>>>>>>>>> (incl
>>>>>>>>>>>>>> master, a future 3.x...) release.
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> Patrick
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> On Wed, Aug 6, 2025 at 1:16 PM Andor Molnar <an...@apache.org>
>>> wrote:
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> Yeah, that would remove the burden of maintaining the 3.8
>>> version
>>>>>>>>>>> line,
>>>>>>>>>>>>>>> but 3.9.x versions still don’t have logback and slf4j
>>> upgraded, still
>>>>>>>>>>>>>>> flagged by the Owasp build and users will probably still
>>> complain
>>>>>>>>>>> about
>>>>>>>>>>>>>>> CVEs.
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> My question is what should we do on branches other than the
>>> master?
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> 1. Backport logback and slf4j upgrades from master, or
>>>>>>>>>>>>>>> 2. Add Owasp suppression rule to skip checking these libraries
>>>>>>>>>>>>> completely.
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> I need to answer this question before going forward with the
>>> 3.9.4
>>>>>>>>>>>>> release.
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> Regards,
>>>>>>>>>>>>>>> Andor
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> On Aug 6, 2025, at 13:39, Christopher <ctubb...@apache.org>
>>> wrote:
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> +1 to that idea.
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> The releases page[1] says "Apache ZooKeeper 3.9.3 is our
>>> current
>>>>>>>>>>>>>>>> release, and 3.8.4 our latest stable release". Is 3.9
>>> sufficiently
>>>>>>>>>>>>>>>> stable to replace 3.8 as the current "stable"? If the answer
>>> is yes,
>>>>>>>>>>>>>>>> then I think it makes sense to EOL 3.8.
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> [1]: https://zookeeper.apache.org/releases.html#download
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> On Mon, Aug 4, 2025 at 2:52 PM Patrick Hunt <
>>> ph...@apache.org>
>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>> Should we sunset that minor release due to the "unfixable"
>>> security
>>>>>>>>>>>>>>> issue
>>>>>>>>>>>>>>>>> and EOL of dependenc(ies)?
>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>> Patrick
>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>> On Mon, Aug 4, 2025 at 10:03 AM Andor Molnar <
>>> an...@apache.org>
>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>> Yeah, I agree with that, but we can’t leave things here
>>> just like
>>>>>>>>>>>>> that.
>>>>>>>>>>>>>>>>>> Either we should keep updating the logging libraries on
>>> all active
>>>>>>>>>>>>>>> branches
>>>>>>>>>>>>>>>>>> or add the necessary suppression to Owasp. Otherwise the
>>> report
>>>>>>>>>>>>> result
>>>>>>>>>>>>>>> will
>>>>>>>>>>>>>>>>>> be completely meaningless.
>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>> Andor
>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> On Aug 4, 2025, at 08:21, Christopher <
>>> ctubb...@apache.org>
>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> Yes, that is basically my concern. I commented at
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>> 
>>> https://github.com/apache/zookeeper/pull/2290#issuecomment-3145955665
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>> On Fri, Aug 1, 2025, 18:43 Andor Molnar <an...@apache.org>
>>> wrote:
>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>> Christopher raised concern about it in
>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>> 
>>>>>>>>>>> 
>>> https://github.com/apache/zookeeper/pull/2162#pullrequestreview-2037135095
>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>> I suspect because SLF4j has to be major upgraded with
>>> logback 1.x
>>>>>>>>>>>>> ->
>>>>>>>>>>>>>>> 2.x
>>>>>>>>>>>>>>>>>>>> which should not be done in bugfix releases.
>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>> I’m not sure. Maybe we should just add another Owasp
>>> suppression,
>>>>>>>>>>>>> but
>>>>>>>>>>>>>>>>>> that
>>>>>>>>>>>>>>>>>>>> wouldn’t be appropriate either.
>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>> Andor
>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>> On Jul 30, 2025, at 18:39, Andor Molnar <
>>> an...@apache.org>
>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>> That’s my understanding too, but looks like folks
>>> skipped even
>>>>>>>>>>> the
>>>>>>>>>>>>>>> 3.9
>>>>>>>>>>>>>>>>>>>> backport in the case of logback.
>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>> Andor
>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>> On Jul 30, 2025, at 16:36, Patrick Hunt <
>>> ph...@apache.org>
>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>> My understanding, I thought the rule was to backport
>>> any patch
>>>>>>>>>>> to
>>>>>>>>>>>>>>> all
>>>>>>>>>>>>>>>>>> of
>>>>>>>>>>>>>>>>>>>>>> the active releases unless it's a new feature. Perhaps
>>> ask the
>>>>>>>>>>>>>>> folks
>>>>>>>>>>>>>>>>>> who
>>>>>>>>>>>>>>>>>>>>>> committed?
>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>> Patrick
>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>> On Wed, Jul 30, 2025 at 2:06 PM Andor Molnar <
>>> an...@apache.org
>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>> Hi folks,
>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>> Currently I’m working on some backports, because
>>> OWASP reports
>>>>>>>>>>>>>>> CVEs
>>>>>>>>>>>>>>>>>> on
>>>>>>>>>>>>>>>>>>>> the
>>>>>>>>>>>>>>>>>>>>>>> 3.8 branch and noticed in the PRs that we should only
>>> upgrade
>>>>>>>>>>>>>>> logback
>>>>>>>>>>>>>>>>>>>> on
>>>>>>>>>>>>>>>>>>>>>>> the master branch. Why is that?
>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>> logback-core-1.2.13.jar
>>>>>>>>>>>>>>> (pkg:maven/ch.qos.logback/logback-core@1.2.13
>>>>>>>>>>>>>>>>>> ,
>>>>>>>>>>>>>>>>>>>>>>> cpe:2.3:a:qos:logback:1.2.13:*:*:*:*:*:*:*) :
>>> CVE-2024-12798,
>>>>>>>>>>>>>>>>>>>> CVE-2024-12801
>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>> Regards,
>>>>>>>>>>>>>>>>>>>>>>> Andor
>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>> 
>>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>> 
>>> 
>>> 

Reply via email to