Skip to content

Conversation

@ramitg254
Copy link
Contributor

@ramitg254 ramitg254 commented Dec 29, 2025

What changes were proposed in this pull request?

commons-lang3 upgraded to 3.20.0

Why are the changes needed?

It fixes CVE-2025-48924

Does this PR introduce any user-facing change?

No

How was this patch tested?

build locally and ci tests

@ramitg254
Copy link
Contributor Author

ramitg254 commented Dec 29, 2025

dependency-tree.txt

@ramitg254 ramitg254 force-pushed the commons-lang-upgrade branch from c382c90 to 2b74140 Compare December 29, 2025 06:36
@ramitg254 ramitg254 changed the title HIVE-29387:upgrade commons-lang3 to 3.20.x to fix CVE-2025-48924 [WIP]HIVE-29387:upgrade commons-lang3 to 3.20.x to fix CVE-2025-48924 Dec 29, 2025
@ramitg254 ramitg254 changed the title [WIP]HIVE-29387:upgrade commons-lang3 to 3.20.x to fix CVE-2025-48924 HIVE-29387:upgrade commons-lang3 to 3.20.x to fix CVE-2025-48924 Dec 30, 2025
Copy link
Member

@ayushtkn ayushtkn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@ramitg254 can you check if there are other versions getting packaged as well

+- commons-lang:commons-lang:jar:2.6:compile

I think hadoop & tez are pulling in other versions

@ramitg254 ramitg254 force-pushed the commons-lang-upgrade branch from 2b74140 to b83242a Compare January 6, 2026 10:35
@ramitg254 ramitg254 changed the title HIVE-29387:upgrade commons-lang3 to 3.20.x to fix CVE-2025-48924 [WIP]HIVE-29387:upgrade commons-lang3 to 3.20.x to fix CVE-2025-48924 Jan 6, 2026
@ramitg254
Copy link
Contributor Author

ramitg254 commented Jan 6, 2026

@ramitg254 can you check if there are other versions getting packaged as well

+- commons-lang:commons-lang:jar:2.6:compile

I think hadoop & tez are pulling in other versions

this pr only addresses the dependency org.apache.comcommons-lang3:jar as currently we are having the two different versions of it 3.14.0 in the pom and other one 3.17.0 which comes from hadoop which I am enforcing it to 3.20.0 in this pr

but since you mentioned the commons-lang:commons-lang:jar it can't be addressed from hive side as these are v2 versions of commons-lang having classpath of pattern org/apache/commons/lang/* which are used by underlying tez and hadoop classes and commons-lang3 have pattern like org/apache/commons/lang3/* and these v2 jars needed be brought transitively
and to change it to commons-lang3 it needed to addressed from tez and hadoop classes.
so I am only addressing the upgrade which is possible from hive side as per my understanding.

@ramitg254 ramitg254 changed the title [WIP]HIVE-29387:upgrade commons-lang3 to 3.20.x to fix CVE-2025-48924 HIVE-29387:upgrade commons-lang3 to 3.20.x to fix CVE-2025-48924 Jan 6, 2026
@sonarqubecloud
Copy link

sonarqubecloud bot commented Jan 6, 2026

Comment on lines +63 to +68
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>${commons-lang3.version}</version>
<scope>provided</scope>
</dependency>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why are you adding a dependency in scope of upgrading one?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

commons-lang3 of version 3.17.0 was brought in transitively via hadoop so adding it in dependency management to ensure only newer version should be present as storage-api do not define hive pom as parent and has parent

<parent>
    <groupId>org.apache</groupId>
    <artifactId>apache</artifactId>
    <version>35</version>
  </parent>

@Aggarwal-Raghav
Copy link
Contributor

@ramitg254 , I understand and totally get why these changes are made but I'm not in favour of such changes because it invites NoClassDefFoundError , NoSuchMethodError at Runtime. It's possible that commons-lang3.17 and 3.20 have API compatibility but the correct way is to wait for hadoop (as they will also have CVE) to upgrade to non-CVE version and then we can upgrade to new hadoop version.
Upgrading to 3.17.0 on other hand makes perfect sense and should be done (but it won't solve the CVE.)

I just wanted to express my concerns, I won't be in way if other PMC/committers are ok with this approach.
But my stance is -0 on this (https://hive.apache.org/community/bylaws/#voting)

@ramitg254
Copy link
Contributor Author

ramitg254 commented Jan 8, 2026

@ramitg254 , I understand and totally get why these changes are made but I'm not in favour of such changes because it invites NoClassDefFoundError , NoSuchMethodError at Runtime. It's possible that commons-lang3.17 and 3.20 have API compatibility but the correct way is to wait for hadoop (as they will also have CVE) to upgrade to non-CVE version and then we can upgrade to new hadoop version. Upgrading to 3.17.0 on other hand makes perfect sense and should be done (but it won't solve the CVE.)

I just wanted to express my concerns, I won't be in way if other PMC/committers are ok with this approach. But my stance is -0 on this (https://hive.apache.org/community/bylaws/#voting)

Thanks @Aggarwal-Raghav for sharing the concern, so based on what I understood I think we can do either of two things here:

  1. just upgrade that 3.14.0 version which is defined in hive pom itself in the current pr and remove that changes I added in dependency management so that no transitive dependency should be touched coming from tez and hadoop and will be fixed with those deps upgrade.

  2. or I'll close this pr now and can be taken care later on when it is already been upgraded for hadoop and tez

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants