summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2021-12-07 12:56:51 -0800
committerJule Anger <janger@samba.org>2022-01-31 12:23:53 +0100
commitf03c42ea77f4ec6a4a66583bfd1d195bd2ac6731 (patch)
tree1382f0f955fcc09a94810766e3ebd4125b57e09a
parent700f80d551d85b3141c2cd0abd7be5efb6948a51 (diff)
downloadsamba-f03c42ea77f4ec6a4a66583bfd1d195bd2ac6731.tar.gz
CVE-2021-44141: s3: torture: In test_smbclient_s3, change the error codes expected for test_widelinks() and test_nosymlinks() from ACCESS_DENIED to NT_STATUS_OBJECT_NAME_NOT_FOUND.
For SMB1/2/3 (minus posix) we need to treat bad symlinks as though they don't exist. Add to knwownfail.d/symlink_traversal BUG: https://bugzilla.samba.org/show_bug.cgi?id=14911 Signed-off-by: Jeremy Allison <jra@samba.org>
-rw-r--r--selftest/knownfail.d/symlink_traversal2
-rwxr-xr-xselftest/target/Samba3.pm2
-rwxr-xr-xsource3/script/tests/test_smbclient_s3.sh10
3 files changed, 8 insertions, 6 deletions
diff --git a/selftest/knownfail.d/symlink_traversal b/selftest/knownfail.d/symlink_traversal
index 25a4da8f250..840ab38b0f9 100644
--- a/selftest/knownfail.d/symlink_traversal
+++ b/selftest/knownfail.d/symlink_traversal
@@ -1,3 +1,5 @@
^samba3.blackbox.test_symlink_traversal.SMB2.symlink_traversal_SMB2\(fileserver\)
^samba3.blackbox.test_symlink_traversal.SMB1.symlink_traversal_SMB1\(fileserver_smb1_done\)
^samba3.blackbox.test_symlink_traversal.SMB1.posix.symlink_traversal_SMB1_posix\(fileserver_smb1_done\)
+^samba3.blackbox.smbclient_s3.*.Ensure\ widelinks\ are\ restricted\(.*\)
+^samba3.blackbox.smbclient_s3.*.follow\ symlinks\ \=\ no\(.*\)
diff --git a/selftest/target/Samba3.pm b/selftest/target/Samba3.pm
index 84903b87d3e..b901fd2677a 100755
--- a/selftest/target/Samba3.pm
+++ b/selftest/target/Samba3.pm
@@ -2496,7 +2496,7 @@ sub provision($$)
create_file_chmod("$widelinks_target", 0666) or return undef;
##
- ## This link should get ACCESS_DENIED
+ ## This link should get an error
##
symlink "$widelinks_target", "$widelinks_shrdir/source";
##
diff --git a/source3/script/tests/test_smbclient_s3.sh b/source3/script/tests/test_smbclient_s3.sh
index 89a17656159..e250d4dd106 100755
--- a/source3/script/tests/test_smbclient_s3.sh
+++ b/source3/script/tests/test_smbclient_s3.sh
@@ -1044,12 +1044,12 @@ EOF
return 1
fi
-# This should fail with NT_STATUS_ACCESS_DENIED
- echo "$out" | grep 'NT_STATUS_ACCESS_DENIED'
+# This should fail with NT_STATUS_OBJECT_NAME_NOT_FOUND
+ echo "$out" | grep 'NT_STATUS_OBJECT_NAME_NOT_FOUND'
ret=$?
if [ $ret != 0 ] ; then
echo "$out"
- echo "failed - should get NT_STATUS_ACCESS_DENIED listing \\widelinks_share\\source"
+ echo "failed - should get NT_STATUS_OBJECT_NAME_NOT_FOUND listing \\widelinks_share\\source"
return 1
fi
}
@@ -1168,11 +1168,11 @@ EOF
return 1
fi
- echo "$out" | grep 'NT_STATUS_ACCESS_DENIED'
+ echo "$out" | grep 'NT_STATUS_OBJECT_NAME_NOT_FOUND'
ret=$?
if [ $ret -ne 0 ] ; then
echo "$out"
- echo "failed - should get NT_STATUS_ACCESS_DENIED getting \\nosymlinks\\source"
+ echo "failed - should get NT_STATUS_OBJECT_NAME_NOT_FOUND getting \\nosymlinks\\source"
return 1
fi