Skip to content

Commit b394855

Browse files
Potential fix for code scanning alert no. 1: Arbitrary file access during archive extraction ("Zip Slip")
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
1 parent ff2df69 commit b394855

File tree

1 file changed

+5
-1
lines changed
  • stack-clients/src/main/java/com/cmclinnovations/stack/clients/docker

1 file changed

+5
-1
lines changed

stack-clients/src/main/java/com/cmclinnovations/stack/clients/docker/DockerClient.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -493,7 +493,11 @@ public Map<String, byte[]> retrieveFiles(String containerId, String remoteDirPat
493493
TarArchiveEntry tarArchiveEntry;
494494
while (null != (tarArchiveEntry = tarArchiveInputStream.getNextTarEntry())) {
495495
if (!tarArchiveEntry.isDirectory()) {
496-
files.put(remoteDirPath + tarArchiveEntry.getName().replaceFirst("^[^/]*/", ""),
496+
Path entryPath = Path.of(remoteDirPath, tarArchiveEntry.getName().replaceFirst("^[^/]*/", "")).normalize();
497+
if (!entryPath.startsWith(Path.of(remoteDirPath).normalize())) {
498+
throw new IOException("Invalid tar entry: " + tarArchiveEntry.getName());
499+
}
500+
files.put(entryPath.toString(),
497501
tarArchiveInputStream.readAllBytes());
498502
}
499503
}

0 commit comments

Comments
 (0)