Логотип exploitDog
Консоль
Логотип exploitDog

exploitDog

github логотип

GHSA-x4ff-q6h8-v7gw

Опубликовано: 24 мар. 2026
Источник: github
Github: Прошло ревью
CVSS4: 6.7

Описание

sbt: Source dependency feature (via crafted VCS URL) leads to arbitrary code execution on Windows

Summary

On Windows, sbt uses Process("cmd", "/c", ...) to run VCS commands (git, hg, svn). The URI fragment (branch, tag, revision) is user-controlled via the build definition and passed to these commands without validation. Because cmd /c interprets &, |, and ; as command separators, a malicious fragment can execute arbitrary commands.

Patched version

Technically, sbt 1.12.7 is patched, but it has a bug that makes source dependency non-functional, so update to sbt 1.12.8 or later instead.

Details

PoC

# build.properties # sbt.version=1.12.5 # Tested on those two versions of sbt sbt.version=2.0.0-RC9
// build.sbt ThisBuild / scalaVersion := "2.12.19" lazy val root = project .in(file(".")) .dependsOn(vulnerable) lazy val vulnerable = RootProject( uri("https://github.com/sbt/io.git#develop%26%26calc.exe") )

Impact

Windows users are impacted. An attacker can execute arbitrary Windows commands if they control the dependency URI.

Пакеты

Наименование

org.scala-sbt:sbt

maven
Затронутые версииВерсия исправления

>= 0.9.5, < 1.12.7

1.12.8

EPSS

Процентиль: 23%
0.00304
Низкий

6.7 Medium

CVSS4

Дефекты

CWE-78

Связанные уязвимости

CVSS3: 5.7
redhat
5 месяцев назад

sbt is a build tool for Scala, Java, and others. From version 0.9.5 to before version 1.12.7, on Windows, sbt uses Process("cmd", "/c", ...) to run VCS commands (git, hg, svn). The URI fragment (branch, tag, revision) is user-controlled via the build definition and passed to these commands without validation. Because cmd /c interprets &, |, and ; as command separators, a malicious fragment can execute arbitrary commands. This issue has been patched in version 1.12.7.

CVSS3: 7.8
nvd
5 месяцев назад

sbt is a build tool for Scala, Java, and others. From version 0.9.5 to before version 1.12.7, on Windows, sbt uses Process("cmd", "/c", ...) to run VCS commands (git, hg, svn). The URI fragment (branch, tag, revision) is user-controlled via the build definition and passed to these commands without validation. Because cmd /c interprets &, |, and ; as command separators, a malicious fragment can execute arbitrary commands. This issue has been patched in version 1.12.7.

EPSS

Процентиль: 23%
0.00304
Низкий

6.7 Medium

CVSS4

Дефекты

CWE-78