mirror of
https://github.com/FossifyOrg/File-Manager.git
synced 2026-05-19 14:20:37 -04:00
add zip path traversal vulnerability check for zip decompression
This commit is contained in:
@@ -19,6 +19,7 @@ import net.lingala.zip4j.exception.ZipException.Type
|
||||
import net.lingala.zip4j.io.inputstream.ZipInputStream
|
||||
import net.lingala.zip4j.model.LocalFileHeader
|
||||
import java.io.BufferedInputStream
|
||||
import java.io.File
|
||||
|
||||
class DecompressActivity : SimpleActivity() {
|
||||
companion object {
|
||||
@@ -145,6 +146,11 @@ class DecompressActivity : SimpleActivity() {
|
||||
continue
|
||||
}
|
||||
|
||||
val isVulnerableForZipPathTraversal = !File(newPath).canonicalPath.startsWith(parent)
|
||||
if (isVulnerableForZipPathTraversal) {
|
||||
continue
|
||||
}
|
||||
|
||||
val fos = getFileOutputStreamSync(newPath, newPath.getMimeType())
|
||||
var count: Int
|
||||
while (true) {
|
||||
|
||||
Reference in New Issue
Block a user