Skip to content

Commit 59c03ff

Browse files
authored
untar: disallow external symlinks (#1314)
Signed-off-by: yihong0618 <[email protected]>
1 parent 3b832c7 commit 59c03ff

File tree

1 file changed

+3
-0
lines changed

1 file changed

+3
-0
lines changed

crates/prek/src/archive.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -262,6 +262,7 @@ pub async fn untar_gz<R: AsyncRead + Unpin>(
262262
let mut archive = ArchiveBuilder::new(reader)
263263
.set_preserve_mtime(true)
264264
.set_preserve_permissions(true)
265+
.set_allow_external_symlinks(false)
265266
.build();
266267

267268
archive.unpack(target.as_ref()).await?;
@@ -281,6 +282,7 @@ pub async fn untar_xz<R: AsyncRead + Unpin>(
281282
let mut archive = ArchiveBuilder::new(reader)
282283
.set_preserve_mtime(true)
283284
.set_preserve_permissions(true)
285+
.set_allow_external_symlinks(false)
284286
.build();
285287

286288
archive.unpack(target.as_ref()).await?;
@@ -296,6 +298,7 @@ pub async fn untar<R: AsyncRead + Unpin>(reader: R, target: impl AsRef<Path>) ->
296298
let mut archive = ArchiveBuilder::new(reader)
297299
.set_preserve_mtime(true)
298300
.set_preserve_permissions(true)
301+
.set_allow_external_symlinks(false)
299302
.build();
300303

301304
archive.unpack(target.as_ref()).await?;

0 commit comments

Comments
 (0)