concourse / concourse

File path traversal when extracting zip archive GSC-G305
Security
Minor
4 occurrences in this check
File traversal when extracting zip/tar archive
50}
51
52func extractZipArchiveFile(file *zip.File, dest string, input io.Reader) error {
53	filePath := filepath.Join(dest, file.Name)54	fileInfo := file.FileInfo()
55
56	if fileInfo.IsDir() {
File traversal when extracting zip/tar archive
 73			return BreakoutError{header.Name, header.Linkname}
 74		}
 75
 76		err := os.Link(filepath.Join(dest, header.Linkname), filePath) 77		if err != nil {
 78			return err
 79		}
File traversal when extracting zip/tar archive
 67
 68	switch header.Typeflag {
 69	case tar.TypeLink:
 70		targetPath := filepath.Join(dest, header.Linkname) 71
 72		if !strings.HasPrefix(targetPath, dest) {
 73			return BreakoutError{header.Name, header.Linkname}
File traversal when extracting zip/tar archive
 56}
 57
 58func ExtractEntry(header *tar.Header, dest string, input io.Reader, chown bool) error {
 59	filePath := filepath.Join(dest, header.Name) 60	fileInfo := header.FileInfo()
 61	fileMode := fileInfo.Mode()
 62