]> git.ipfire.org Git - thirdparty/vim.git/commitdiff
runtime(tar): Make the path traversal detection more robust
authorChristian Brabandt <cb@256bit.org>
Sat, 7 Feb 2026 10:12:34 +0000 (10:12 +0000)
committerChristian Brabandt <cb@256bit.org>
Sat, 7 Feb 2026 10:12:34 +0000 (10:12 +0000)
closes: #19341

Signed-off-by: Christian Brabandt <cb@256bit.org>
runtime/autoload/tar.vim

index 944a2ed10618653d84afce02fb451b0eb1302a1b..73829a2d5c6e2d339ca491df05fabab99d0568ba 100644 (file)
@@ -19,6 +19,7 @@
 "   2025 Jul 13 by Vim Project: warn with path traversal attacks
 "   2025 Jul 16 by Vim Project: update minimum vim version
 "   2026 Feb 06 by Vim Project: consider 'nowrapscan' (#19333)
+"   2026 Feb 07 by Vim Project: make the path traversal detection more robust (#19341)
 "
 "      Contains many ideas from Michael Toren's <tar.vim>
 "
@@ -111,7 +112,7 @@ if !exists("g:tar_shq")
 endif
 
 let g:tar_secure=' -- '
-let g:tar_leading_pat='^\%([.]\{,2\}/\)\+'
+let g:tar_leading_pat='\m^\%([.]\{,2\}/\)\+'
 
 " ----------------
 "  Functions: {{{1
@@ -227,7 +228,7 @@ fun! tar#Browse(tarfile)
 
   " remove tar: Removing leading '/' from member names
   " Note: the message could be localized
-  if search('^tar: ', 'w') > 0 || search(g:tar_leading_pat, 'w') > 0
+  if search('\m^g\?tar: ', 'w') > 0 || search(g:tar_leading_pat, 'w') > 0
     call append(3,'" Note: Path Traversal Attack detected!')
     let b:leading_slash = 1
     " remove the message output