Hi,

I think our example log4j2 file should be as idiomatic as possible. If
YAML is now the recommended format, then it makes sense to adopt it. I
would also do this directly in 4.0.0.

Like David, one concern when adding extra dependencies is CVEs. YAML
is a widely used format and the libraries are actively maintained so I
think it's acceptable.

In my opinion, the configuration format for Kafka is a completely
orthogonal issue. If people want to adopt YAML this can be done in a
separate discussion. I don't see issues with using YAML for
configuring log4j2 and properties for Kafka.

Thanks,
Mickael





On Thu, Oct 31, 2024 at 5:47 PM Piotr P. Karwasz
<pi...@mailing.copernik.eu> wrote:
>
> Hi Viktor,
>
> On 31.10.2024 10:19, Viktor Somogyi-Vass wrote:
> > I could see a transition for Kafka configs too to YAML. It's widely used in
> > other projects as well and for Kafka too it would make sense to group them
> > for instance by log, storage, networking, security etc.. It definitely
> > has an advantage that we could move to a more well defined structure and
> > away from these long prefixes which are very cumbersome in some places.
> > Perhaps 4.0 would have been a good candidate but given that we should
> > provide backward compatibility anyway, later is good too.
>
> To migrate the configuration from Java Properties to YAML and maintain
> BC, you can use `jackson-dataformat-properties`. This definitively can
> be done in a minor release.
>
> [1]
> https://github.com/FasterXML/jackson-dataformats-text/blob/master/properties/README.md
>
> > 4. Data bindings and parsers are common sources of CVEs. It looks like
> > Snakeyaml is no exception (
> > https://www.cvedetails.com/version-list/0/66013/1/), though it doesn't look
> > much worse than Jackson. Just to point out, this will add a bit of
> > dependency overhead as we keep up with security patches.
> >
> > It's a good point about CVEs. I haven't seen it on the dev list but were
> > there any conversations about enabling dependabot version updates? With
> > automatic dependabot PRs we could get fixes in as soon as it opens the PR.
>
> I don't know how it works in Gradle, but with Maven we don't get
> Dependabot PRs for transitive dependencies such as SnakeYAML. Since the
> dependency is not present in the `pom.xml`, its version can not be
> updated. Dependabot might be able to create alerts in the "Security" tab
> though.
>
> Since Log4j is a library without an executable distribution, it is not
> guaranteed that a new version of Log4j will be released each time a
> vulnerability in SnakeYAML is discovered and that vulnerability is
> exploitable in Log4j Core. It does not make much sense to make a new
> release just to upgrade a number in `pom.xml`.
>
> Until VEX-es can be created automatically, the only way I can think of
> to help the Kafka team with CVEs in transitive dependencies is a manual
> process:
>
> * You mark `jackson-dataformat-yaml` with a comment like "Used by Log4j
> Core".
>
> * If a CVE is reported against that artifact or its dependencies, you
> open an issue in Log4j[2], so we can advise on the exploitability of the
> CVE.
>
> * With that information you can decide whether to release a new Kafka
> version or not.
>
> Piotr
>
> [2] https://github.com/apache/logging-log4j2/issues
>
>

Reply via email to