-
Notifications
You must be signed in to change notification settings - Fork 96
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
CVE November 2024 #4933
CVE November 2024 #4933
Changes from all commits
4f36121
74e8fce
01646c3
92536fc
b1d8873
fffd859
5b79497
4debbc7
9dd6035
f218be6
6e94eb4
b48dd47
a9d07ac
6c1b304
efb2a1e
5e9c53c
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -67,7 +67,9 @@ lazy val dockerSettings = Seq( | |
dockerBaseImage := "eclipse-temurin:21.0.2_13-jdk-alpine", | ||
dockerRepository := Some("hmda"), | ||
dockerCommands := dockerCommands.value.flatMap { | ||
case cmd@Cmd("FROM",_) => List(cmd, Cmd("RUN", "apk update"), | ||
case cmd@Cmd("FROM",_) => List(cmd, | ||
Cmd("RUN", "apk update"), | ||
Cmd("RUN", "apk upgrade"), | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Resolves CVE-2024-5535, CVE-2024-45492, and CVE-2024-45491 - all critical cves There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This actually resolves the majority of the critical / high cves: CVE-2024-5535 (libcrypto3, libssl3) Current cves:
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Hi @jaredb96 ; would it be worth upgrading the base image at this point? looks like eclipse-temurin:23.0.1_11-jdk-alpine resolves all the critical CVEs (and it also seems to run an "apk update" internally). We could of course try going back a bit farther if we don't want an image pushed yesterday... |
||
Cmd("RUN", "rm /var/cache/apk/*")) | ||
case other => List(other) | ||
} | ||
|
@@ -224,45 +226,45 @@ lazy val `check-digit` = (project in file("check-digit")) | |
.dependsOn(common % "compile->compile;test->test") | ||
.dependsOn(`hmda-protocol` % "compile->compile;test->test") | ||
|
||
lazy val `file-proxy` = (project in file("file-proxy")) | ||
.enablePlugins( | ||
JavaServerAppPackaging, | ||
sbtdocker.DockerPlugin, | ||
AshScriptPlugin | ||
) | ||
.settings(hmdaBuildSettings: _*) | ||
.settings( | ||
Seq( | ||
libraryDependencies ++= commonDeps ++ akkaDeps ++ akkaHttpDeps ++ circeDeps ++ slickDeps ++ | ||
lazy val `file-proxy` = (project in file("file-proxy")) | ||
.enablePlugins( | ||
JavaServerAppPackaging, | ||
sbtdocker.DockerPlugin, | ||
AshScriptPlugin | ||
) | ||
.settings(hmdaBuildSettings: _*) | ||
.settings( | ||
Seq( | ||
libraryDependencies ++= commonDeps ++ akkaDeps ++ akkaHttpDeps ++ circeDeps ++ slickDeps ++ | ||
enumeratumDeps :+ monix :+ lettuce :+ scalaJava8Compat :+ scalaMock, | ||
Compile / mainClass := Some("hmda.proxy.FileProxy"), | ||
assembly / assemblyJarName := { | ||
s"${name.value}.jar" | ||
}, | ||
assembly/ assemblyMergeStrategy := { | ||
case "application.conf" => MergeStrategy.concat | ||
case "META-INF/io.netty.versions.properties" => MergeStrategy.concat | ||
case "META-INF/MANIFEST.MF" => MergeStrategy.discard | ||
case PathList("META-INF", xs@_*) => MergeStrategy.concat | ||
case PathList("org", "bouncycastle", xs @_*) => MergeStrategy.first | ||
case PathList("jakarta", xs@_*) => MergeStrategy.last | ||
case PathList(ps @ _*) if ps.last endsWith ".proto" => | ||
MergeStrategy.first | ||
case "module-info.class" => MergeStrategy.concat | ||
case x if x.endsWith("/module-info.class") => MergeStrategy.concat | ||
case x if x.endsWith("/LineTokenizer.class") => MergeStrategy.concat | ||
case x if x.endsWith("/LogSupport.class") => MergeStrategy.concat | ||
case x if x.endsWith("/MailcapFile.class") => MergeStrategy.concat | ||
case x if x.endsWith("/MimeTypeFile.class") => MergeStrategy.concat | ||
case x => | ||
val oldStrategy = (assembly / assemblyMergeStrategy).value | ||
oldStrategy(x) | ||
} | ||
), | ||
dockerSettings, | ||
packageSettings | ||
) | ||
.dependsOn(common % "compile->compile;test->test") | ||
Compile / mainClass := Some("hmda.proxy.FileProxy"), | ||
assembly / assemblyJarName := { | ||
s"${name.value}.jar" | ||
}, | ||
assembly/ assemblyMergeStrategy := { | ||
case "application.conf" => MergeStrategy.concat | ||
case "META-INF/io.netty.versions.properties" => MergeStrategy.concat | ||
case "META-INF/MANIFEST.MF" => MergeStrategy.discard | ||
case PathList("META-INF", xs@_*) => MergeStrategy.concat | ||
case PathList("org", "bouncycastle", xs @_*) => MergeStrategy.first | ||
case PathList("jakarta", xs@_*) => MergeStrategy.last | ||
case PathList(ps @ _*) if ps.last endsWith ".proto" => | ||
MergeStrategy.first | ||
case "module-info.class" => MergeStrategy.concat | ||
case x if x.endsWith("/module-info.class") => MergeStrategy.concat | ||
case x if x.endsWith("/LineTokenizer.class") => MergeStrategy.concat | ||
case x if x.endsWith("/LogSupport.class") => MergeStrategy.concat | ||
case x if x.endsWith("/MailcapFile.class") => MergeStrategy.concat | ||
case x if x.endsWith("/MimeTypeFile.class") => MergeStrategy.concat | ||
case x => | ||
val oldStrategy = (assembly / assemblyMergeStrategy).value | ||
oldStrategy(x) | ||
} | ||
), | ||
dockerSettings, | ||
packageSettings | ||
) | ||
.dependsOn(common % "compile->compile;test->test") | ||
|
||
|
||
lazy val `institutions-api` = (project in file("institutions-api")) | ||
|
@@ -591,46 +593,46 @@ lazy val `hmda-analytics` = (project in file("hmda-analytics")) | |
) | ||
.dependsOn(common % "compile->compile;test->test") | ||
|
||
lazy val `hmda-auth` = (project in file("hmda-auth")) | ||
.enablePlugins( | ||
JavaServerAppPackaging, | ||
sbtdocker.DockerPlugin, | ||
AshScriptPlugin | ||
) | ||
.settings(hmdaBuildSettings: _*) | ||
.settings( | ||
Seq( | ||
libraryDependencies ++= keycloakServerDeps, | ||
Compile / mainClass := Some("hmda.authService.HmdaAuth"), | ||
assembly / assemblyJarName := { | ||
s"${name.value}.jar" | ||
}, | ||
assembly / assemblyMergeStrategy := { | ||
case "application.conf" => MergeStrategy.concat | ||
case "META-INF/io.netty.versions.properties" => MergeStrategy.concat | ||
case "META-INF/MANIFEST.MF" => MergeStrategy.discard | ||
case PathList("META-INF", xs @ _*) => MergeStrategy.concat | ||
case PathList("org", "bouncycastle", xs @_*) => MergeStrategy.first | ||
case PathList("jakarta", xs @ _*) => MergeStrategy.last | ||
case "reference.conf" => MergeStrategy.concat | ||
case PathList(ps @ _*) if ps.last endsWith ".proto" => | ||
MergeStrategy.first | ||
case "module-info.class" => MergeStrategy.concat | ||
case x if x.endsWith("/module-info.class") => MergeStrategy.concat | ||
case x if x.endsWith("/LineTokenizer.class") => MergeStrategy.concat | ||
case x if x.endsWith("/LogSupport.class") => MergeStrategy.concat | ||
case x if x.endsWith("/MailcapFile.class") => MergeStrategy.concat | ||
case x if x.endsWith("/MimeTypeFile.class") => MergeStrategy.concat | ||
case x => | ||
lazy val `hmda-auth` = (project in file("hmda-auth")) | ||
.enablePlugins( | ||
JavaServerAppPackaging, | ||
sbtdocker.DockerPlugin, | ||
AshScriptPlugin | ||
) | ||
.settings(hmdaBuildSettings: _*) | ||
.settings( | ||
Seq( | ||
libraryDependencies ++= keycloakServerDeps, | ||
Compile / mainClass := Some("hmda.authService.HmdaAuth"), | ||
assembly / assemblyJarName := { | ||
s"${name.value}.jar" | ||
}, | ||
assembly / assemblyMergeStrategy := { | ||
case "application.conf" => MergeStrategy.concat | ||
case "META-INF/io.netty.versions.properties" => MergeStrategy.concat | ||
case "META-INF/MANIFEST.MF" => MergeStrategy.discard | ||
case PathList("META-INF", xs @ _*) => MergeStrategy.concat | ||
case PathList("org", "bouncycastle", xs @_*) => MergeStrategy.first | ||
case PathList("jakarta", xs @ _*) => MergeStrategy.last | ||
case "reference.conf" => MergeStrategy.concat | ||
case PathList(ps @ _*) if ps.last endsWith ".proto" => | ||
MergeStrategy.first | ||
case "module-info.class" => MergeStrategy.concat | ||
case x if x.endsWith("/module-info.class") => MergeStrategy.concat | ||
case x if x.endsWith("/LineTokenizer.class") => MergeStrategy.concat | ||
case x if x.endsWith("/LogSupport.class") => MergeStrategy.concat | ||
case x if x.endsWith("/MailcapFile.class") => MergeStrategy.concat | ||
case x if x.endsWith("/MimeTypeFile.class") => MergeStrategy.concat | ||
case x => | ||
val oldStrategy = (assembly / assemblyMergeStrategy).value | ||
oldStrategy(x) | ||
} | ||
), | ||
dockerSettings, | ||
packageSettings | ||
) | ||
.dependsOn(common % "compile->compile;test->test") | ||
.dependsOn(`institutions-api` % "compile->compile;test->test") | ||
} | ||
), | ||
dockerSettings, | ||
packageSettings | ||
) | ||
.dependsOn(common % "compile->compile;test->test") | ||
.dependsOn(`institutions-api` % "compile->compile;test->test") | ||
|
||
lazy val `rate-limit` = (project in file("rate-limit")) | ||
.enablePlugins( | ||
|
@@ -816,4 +818,30 @@ lazy val `hmda-quarterly-data-service` = (project in file ("hmda-quarterly-data- | |
packageSettings | ||
) | ||
.dependsOn(common % "compile->compile;test->test") | ||
.dependsOn(`hmda-protocol` % "compile->compile;test->test") | ||
.dependsOn(`hmda-protocol` % "compile->compile;test->test") | ||
|
||
ThisBuild / libraryDependencies += "com.google.guava" % "guava" % "32.0.0-android" | ||
|
||
libraryDependencies ++= Seq( | ||
"com.datastax.oss" % "java-driver-core" % "4.15.0" exclude ("com.google.guava", "guava"), | ||
"com.datastax.oss" % "java-driver-shaded-guava" % "25.1-jre-graal-sub-1" exclude ("com.google.guava", "guava"), | ||
"com.google.guava" % "guava" % "32.0.0-android" | ||
) | ||
|
||
ThisBuild / libraryDependencies += "io.netty" % "netty-common" % "4.1.115.Final" | ||
|
||
libraryDependencies ++= Seq( | ||
"io.netty" % "netty-common" % "4.1.94.Final" exclude ("io.netty", "netty-common"), | ||
"io.netty" % "netty-transport-native-unix-common" % "4.1.94.Final" exclude ("io.netty", "netty-common"), | ||
"io.netty" % "netty-common" % "4.1.115.Final" | ||
) | ||
|
||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Resolves keycloak cve - (GHSA-93ww-43rr-79v3) |
||
libraryDependencies ++= Seq( | ||
"org.keycloak" % "keycloak-crypto-default" % "25.0.3" exclude ("org.keycloak", "keycloak-core"), | ||
"org.keycloak" % "keycloak-server-spi" % "25.0.3" exclude ("org.keycloak", "keycloak-core"), | ||
"org.keycloak" % "keycloak-server-spi-private" % "25.0.3" exclude ("org.keycloak", "keycloak-core"), | ||
"org.keycloak" % "keycloak-adapter-core" % "25.0.3" exclude ("org.keycloak", "keycloak-core"), | ||
"org.keycloak" % "keycloak-admin-client" % "25.0.3" exclude ("org.keycloak", "keycloak-core"), | ||
"org.keycloak" % "keycloak-common" % "25.0.3" exclude ("org.keycloak", "keycloak-core"), | ||
"org.keycloak" % "keycloak-core" % "26.0.6" | ||
) |
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -33,7 +33,7 @@ object Version { | |
val lettuce = "6.2.4.RELEASE" | ||
val java8Compat = "1.0.2" | ||
val scalaMock = "4.3.0" | ||
val guava = "33.0.0-jre" | ||
val guava = "32.0.0-android" | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. there aren't any concerns switching between the JRE and Android version of this library? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Hey @jaredb96 , checking https://github.com/google/guava and it does seem like the "-jre" version is intended for JRE-based builds. Looks like guava is up to v33.3.1. What does grype say if you put in 33.3.1-jre? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. OK, looks like scala itself was bringing in the android dep! That's weird... This removes the guava problem from the grype output.
|
||
val awsSesSdk = "1.12.484" | ||
val zeroAllocation = "0.16" | ||
val cormorant = "0.3.0" | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Resolves CVE-2023-2976 and CVE-2024-21742