sbt is a build tool for Scala, Java, and others. Given a specially crafted zip or JAR file, `IO.unzip` allows writing of arbitrary file. This would have potential to overwrite `/root/.ssh/authorized_keys`. Within sbt's main code, `IO.unzip` is used in `pullRemoteCache` task and `Resolvers.remote`; however many projects use `IO.unzip(...)` directly to implement custom tasks. This vulnerability has been patched in version 1.9.7.
The product uses external input to construct a pathname that is intended to identify a file or directory that is located underneath a restricted parent directory, but the product does not properly neutralize special elements within the pathname that can cause the pathname to resolve to a location that is outside of the restricted directory.
Link | Tags |
---|---|
https://github.com/sbt/sbt/security/advisories/GHSA-h9mw-grgx-2fhf | patch third party advisory exploit |
https://github.com/sbt/io/issues/358 | patch issue tracking |
https://github.com/sbt/io/pull/360 | patch |
https://github.com/sbt/io/commit/124538348db0713c80793cb57b915f97ec13188a | patch |