Hi Sergey,

Thanks for doing the analysis and providing the great insight. I did my own
analysis and got the same conclusion. I just wanted to use this example to
kick off a discussion and check if there is a common guideline or concept
in the community to handle such cases, since it seems any bump-up might
have a big impact. This time, we are kind of lucky. What if CVE related
code has been used in Flink? I do see it is an issue that upgrading a lib
in the flink-shaded repo is not recommended because of the complexity.
IMHO, we don't want to put the cart before the horse.

Best regards,
Jing

On Wed, Sep 13, 2023 at 9:11 PM Sergey Nuyanzin <snuyan...@gmail.com> wrote:

> Thanks for raising this
>
> I would suggest trying to double check whether it actually impacts Flink or
> not.
>
> For instance from one side Calcite between 1.22.0..1.31.0 has a critical
> CVE-2022-39135 [1]
> from another side Flink does not use this functionality and is not impacted
> by this.
>
> Regarding guava
> After closer look at Guava's high CVE you've mentioned [2]
> Based on Github issue describing the problem (exists since 2016) [3]
> there is a security issue with class
> com.google.common.io.FileBackedOutputStream
>
> While looking at source code for
> com.google.common.io.FileBackedOutputStream usage I was not able to find
> such.
> Also I was not able to find usage of
> org.apache.flink.shaded.guava30.com.google.common.io.Files#createTempDir
> which was fixed within commit [4]
> Also I was not able to find other Guava classes which use the problem one.
> Currently I tend to think that it probably does not impact Flink as well.
>
> Please correct me if I'm wrong
>
> [1] https://nvd.nist.gov/vuln/detail/CVE-2022-39135
> [2] https://nvd.nist.gov/vuln/detail/CVE-2023-2976
> [3] https://github.com/google/guava/issues/2575
> [4]
>
> https://github.com/google/guava/commit/b3719763b9ca777b94554d7ea2d2b92e27ac6164
>
> On Wed, Sep 13, 2023 at 6:26 PM Jing Ge <j...@ververica.com.invalid>
> wrote:
>
> > Hi Sergey, Hi Martijn,
> >
> > Thanks for the information and suggestions. It is rational.
> >
> > Since on one hand, we should not do the upgrade according to all your
> > thoughts, and on the other hand, Guava 30.1.1-jre has known CVEs[1] and
> the
> > next closest version that has no CVEs is 32.0.1-jre. Without the upgrade,
> > users might not be able to use Flink 1.17 in their production and Flink
> > 1.18 has not been released yet. Do we have any known concept, rule, or
> > process in the community to handle such a common CVE issue?
> >
> > Best regards,
> > Jing
> >
> >
> >
> > [1] https://mvnrepository.com/artifact/com.google.guava/guava/30.1.1-jre
> >
> > On Wed, Sep 13, 2023 at 4:31 PM Martijn Visser <martijnvis...@apache.org
> >
> > wrote:
> >
> > > Hi Jing,
> > >
> > > Like Sergey said, making that change would break all connectors that
> used
> > > Flink Shaded in the released versions, given that Guava is part of the
> > > package name. I think that was the case for Kafka, Pulsar, JDBC,
> PubSub,
> > > HBase, Cassandra and maybe even more. We shouldn't do this upgrade.
> > >
> > > Best regards,
> > >
> > > Martijn
> > >
> > > On Wed, Sep 13, 2023 at 2:54 PM Sergey Nuyanzin <snuyan...@gmail.com>
> > > wrote:
> > >
> > > > Hi Jing,
> > > >
> > > > If I remember correctly, bumping of guava to another major version
> > > usually
> > > > leads to package rename
> > > > since the major version number is a part of the package name...
> > > > Not 100% sure however this could be the reason for some potential
> > > breaking
> > > > changes (we also faced that with connectors while the last
> flink-shaded
> > > > update)
> > > >
> > > > On Wed, Sep 13, 2023 at 2:43 PM Jing Ge <j...@ververica.com.invalid>
> > > > wrote:
> > > >
> > > > > Hi Martijn,
> > > > >
> > > > > For example, bump up guava from 30.1.1-jre to 32.1.2-jre.
> > > > >
> > > > > Best regards,
> > > > > Jing
> > > > >
> > > > > On Wed, Sep 13, 2023 at 2:37 PM Martijn Visser <
> > > martijnvis...@apache.org
> > > > >
> > > > > wrote:
> > > > >
> > > > > > Hi Jing,
> > > > > >
> > > > > > A PR to update the readme sounds like a good plan.
> > > > > >
> > > > > > I think it depends on what are the expected updates for a
> > > flink-shaded
> > > > > > 16.2, since that version doesn't exist.
> > > > > >
> > > > > > Best regards,
> > > > > >
> > > > > > Martijn
> > > > > >
> > > > > > On Wed, Sep 13, 2023 at 1:48 PM Jing Ge
> <j...@ververica.com.invalid
> > >
> > > > > > wrote:
> > > > > >
> > > > > > > Hi Martijn,
> > > > > > >
> > > > > > > Thanks for your reply with details. Appreciate it.
> > > > > > >
> > > > > > >
> > > > > > > > Flink-Shaded is usually only updated whenever a
> > > > > > > > new Flink minor version is released and only at the beginning
> > of
> > > > the
> > > > > > > > release cycle, so that there's enough time to stabilize
> Flink.
> > > > > > >
> > > > > > >
> > > > > > > This is the information I am looking for. It will help devs
> > > > understand
> > > > > > the
> > > > > > > compatibility between different versions of flink and
> > flink-shaded,
> > > > if
> > > > > it
> > > > > > > could be described in the readme. If you don't mind, I can
> > create a
> > > > pr
> > > > > > and
> > > > > > > update it.
> > > > > > >
> > > > > > > Speaking of this rule, I have a follow-up question: do you have
> > any
> > > > > > concern
> > > > > > > if flink-shaded 16.2 will be released and upgraded(from 16.1 to
> > > 16.2)
> > > > > in
> > > > > > > Flink 1.17? Is there anything we should pay attention to while
> > > > > releasing
> > > > > > a
> > > > > > > new minor flink-shaded version?
> > > > > > >
> > > > > > > Best regards,
> > > > > > > Jing
> > > > > > >
> > > > > > > On Wed, Sep 13, 2023 at 9:01 AM Martijn Visser <
> > > > > martijnvis...@apache.org
> > > > > > >
> > > > > > > wrote:
> > > > > > >
> > > > > > > > Hi Jing,
> > > > > > > >
> > > > > > > > Flink Shaded exists so that Flinks internal usage of commonly
> > > used
> > > > > > > packages
> > > > > > > > such as Guava, Jackson inside of Flink don't clash with
> > different
> > > > > > > versions
> > > > > > > > that users might use when creating a Flink application. When
> I
> > > did
> > > > > the
> > > > > > > > upgrade of Flink Shaded, we already ran into a bunch of
> > problems
> > > > > > because
> > > > > > > a
> > > > > > > > lot of the externalized connectors relied on Flink Shaded,
> > which
> > > > made
> > > > > > it
> > > > > > > > problematic to get the connector to work on both Flink 1.17
> and
> > > > Flink
> > > > > > > 1.18.
> > > > > > > > There's been quite a lot of effort put into making sure that
> > > > > > externalized
> > > > > > > > connectors don't rely on Flink Shaded at all anymore, by
> either
> > > > using
> > > > > > > their
> > > > > > > > own versions of shaded artifacts (which was the case with the
> > > > Pulsar
> > > > > > > > connector) or just removing the dependency on Flink Shaded
> all
> > > > > > together,
> > > > > > > by
> > > > > > > > using regular Java.
> > > > > > > >
> > > > > > > > If you would upgrade flink-shaded from 16.1 to 17.0 in Flink
> > > 1.17,
> > > > > you
> > > > > > > > would break all externalized connectors that rely on Flink
> > > Shaded's
> > > > > > Guava
> > > > > > > > version, plus you potentially would impact the runtime given
> > that
> > > > > > > there's a
> > > > > > > > newer Netty version etc. Flink-Shaded is usually only updated
> > > > > whenever
> > > > > > a
> > > > > > >
> > > > > > > new Flink minor version is released and only at the beginning
> of
> > > the
> > > > > > > > release cycle, so that there's enough time to stabilize
> Flink.
> > > > > > >
> > > > > > > All in all, we shouldn't upgrade flink-shaded in Flink 1.17.
> > > > > > > >
> > > > > > > > Best regards,
> > > > > > > >
> > > > > > > > Martijn
> > > > > > > >
> > > > > > > > On Tue, Sep 12, 2023 at 7:26 PM Jing Ge
> > > <j...@ververica.com.invalid
> > > > >
> > > > > > > > wrote:
> > > > > > > >
> > > > > > > > > Hi Dev,
> > > > > > > > >
> > > > > > > > > Currently Flink 1.17 is using flink-shaded 16.1 and Flink
> > 1.18
> > > is
> > > > > > using
> > > > > > > > > flink-shaded 17.0. Do we need to consider any compatibility
> > > rules
> > > > > > > between
> > > > > > > > > them? E.g. is there any concern to upgrade flink-shaded
> from
> > > 16.1
> > > > > to
> > > > > > > 17.x
> > > > > > > > > for Flink 1.17? Or there are some implicit dependency rules
> > > > between
> > > > > > > > > them. Looking
> > > > > > > > > forward to hearing from you.
> > > > > > > > >
> > > > > > > > > Best regards,
> > > > > > > > > Jing
> > > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > > >
> > > > --
> > > > Best regards,
> > > > Sergey
> > > >
> > >
> >
>
>
> --
> Best regards,
> Sergey
>

Reply via email to