Skip to content

Commit f7b5599

Browse files
authored
Merge pull request #85 from rundeck-plugins/cve-fixes
RUN-3601: CVE-2025-48924 Fix
2 parents 75a9b59 + d9a52c1 commit f7b5599

5 files changed

Lines changed: 60 additions & 7 deletions

File tree

.gitignore

Lines changed: 43 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,43 @@
1-
.gradle
2-
.idea
3-
build
4-
out
5-
/docker/client/rundeck-cli/node_modules/
1+
# IDE/Build files
2+
.gradle/
3+
*.ipr
4+
*.iml
5+
*.iws
6+
.idea/
7+
build/
8+
bin/
9+
out/
10+
11+
# VS Code
12+
.vscode/
13+
14+
# Eclipse
15+
.project
16+
.classpath
17+
.settings/
18+
.metadata/
19+
20+
# NetBeans
21+
nbproject/private/
22+
nbbuild/
23+
dist/
24+
nbdist/
25+
.nb-gradle/
26+
27+
# System files
28+
**/.DS_Store
29+
Thumbs.db
30+
31+
# Temporary files
32+
*.tmp
33+
*.bak
34+
*.swp
35+
*~.nib
36+
37+
# Log files
38+
*.log
39+
40+
# Local environment files
41+
.env
42+
.env.local
43+
.env.*.local

build.gradle

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,10 +57,22 @@ dependencies {
5757
implementation libs.commonsIo
5858
implementation libs.rundeckCore
5959
implementation libs.slf4jApi
60+
61+
// Add secure commons-lang3 to provide alternative to vulnerable commons-lang 2.6
62+
implementation(libs.commonsLang3)
6063

6164
testImplementation libs.bundles.testLibs
6265
}
6366

67+
configurations.all {
68+
resolutionStrategy {
69+
// Replace vulnerable commons-lang with secure commons-lang3
70+
dependencySubstitution {
71+
substitute module('commons-lang:commons-lang') using module("org.apache.commons:commons-lang3:${libs.versions.commonsLang3.get()}")
72+
}
73+
}
74+
}
75+
6476
// task to copy plugin libs to output/lib dir
6577
task copyToLib(type: Copy) {
6678
into "$buildDir/output/lib"

gradle/libs.versions.toml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ cglib = "3.3.0"
1414
objenesis = "1.4"
1515
axionRelease = "1.18.18"
1616
nexusPublish = "2.0.0"
17+
# Security overrides for transitive dependencies
18+
commonsLang3 = "3.18.0"
1719

1820
[libraries]
1921
sshj = { group = "com.hierynomus", name = "sshj", version.ref = "sshj" }
@@ -30,6 +32,7 @@ groovyAll = { group = "org.codehaus.groovy", name = "groovy-all", version.ref =
3032
spockCore = { group = "org.spockframework", name = "spock-core", version.ref = "spock" }
3133
cglibNodep = { group = "cglib", name = "cglib-nodep", version.ref = "cglib" }
3234
objenesis = { group = "org.objenesis", name = "objenesis", version.ref = "objenesis" }
35+
commonsLang3 = { module = "org.apache.commons:commons-lang3", version.ref = "commonsLang3" }
3336

3437
[bundles]
3538
bouncycastle = ["bcpkix", "bcprov"]

src/main/java/com/plugin/sshjplugin/SSHJBuilder.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
import com.dtolabs.rundeck.core.dispatcher.DataContextUtils;
55
import com.dtolabs.rundeck.plugins.PluginLogger;
66
import com.plugin.sshjplugin.model.*;
7-
import org.apache.commons.lang.StringUtils;
7+
import org.apache.commons.lang3.StringUtils;
88

99
import java.io.File;
1010
import java.util.HashMap;

src/main/java/com/plugin/sshjplugin/SSHJNodeExecutorPlugin.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
import net.schmizz.keepalive.KeepAliveProvider;
2525
import net.schmizz.sshj.DefaultConfig;
2626
import net.schmizz.sshj.SSHClient;
27-
import org.apache.commons.lang.StringUtils;
27+
import org.apache.commons.lang3.StringUtils;
2828

2929
import java.util.Arrays;
3030
import java.util.List;

0 commit comments

Comments
 (0)