linux/fs/ksmbd
Hyunchul Lee 265fd1991c ksmbd: use LOOKUP_BENEATH to prevent the out of share access
instead of removing '..' in a given path, call
kern_path with LOOKUP_BENEATH flag to prevent
the out of share access.

ran various test on this:
smb2-cat-async smb://127.0.0.1/homes/../out_of_share
smb2-cat-async smb://127.0.0.1/homes/foo/../../out_of_share
smbclient //127.0.0.1/homes -c "mkdir ../foo2"
smbclient //127.0.0.1/homes -c "rename bar ../bar"

Cc: Ronnie Sahlberg <ronniesahlberg@gmail.com>
Cc: Ralph Boehme <slow@samba.org>
Tested-by: Steve French <smfrench@gmail.com>
Tested-by: Namjae Jeon <linkinjeon@kernel.org>
Acked-by: Namjae Jeon <linkinjeon@kernel.org>
Signed-off-by: Hyunchul Lee <hyc.lee@gmail.com>
Signed-off-by: Steve French <stfrench@microsoft.com>
2021-09-24 21:25:23 -05:00
..
mgmt ksmbd: reorder and document on-disk and netlink structures in headers 2021-06-30 14:47:24 +09:00
asn1.c
asn1.h
auth.c
auth.h
connection.c ksmbd: fix typo in comment 2021-07-15 10:25:30 +09:00
connection.h ksmbd: add support for negotiating signing algorithm 2021-07-22 09:56:02 +09:00
crypto_ctx.c
crypto_ctx.h
glob.h
Kconfig ksmbd: remove select FS_POSIX_ACL in Kconfig 2021-08-13 08:18:10 +09:00
ksmbd_netlink.h ksmbd: reorder and document on-disk and netlink structures in headers 2021-06-30 14:47:24 +09:00
ksmbd_spnego_negtokeninit.asn1
ksmbd_spnego_negtokentarg.asn1
ksmbd_work.c ksmbd: reorder and document on-disk and netlink structures in headers 2021-06-30 14:47:24 +09:00
ksmbd_work.h ksmbd: change data type of volatile/persistent id to u64 2021-07-09 08:23:16 +09:00
Makefile
misc.c ksmbd: use LOOKUP_BENEATH to prevent the out of share access 2021-09-24 21:25:23 -05:00
misc.h ksmbd: use LOOKUP_BENEATH to prevent the out of share access 2021-09-24 21:25:23 -05:00
ndr.c ksmbd: add missing assignments to ret on ndr_read_int64 read calls 2021-09-08 17:15:48 -05:00
ndr.h ksmbd: add user namespace support 2021-07-02 16:27:10 +09:00
nterr.h
ntlmssp.h
oplock.c ksmbd: fix translation in create_posix_rsp_buf() 2021-09-03 23:29:44 -05:00
oplock.h ksmbd: remove SMB1 oplock level macros 2021-06-30 14:43:51 +09:00
server.c ksmbd: log that server is experimental at module load 2021-09-21 12:35:20 -05:00
server.h ksmbd: change server config string index to enumeration 2021-06-30 14:44:01 +09:00
smb2misc.c ksmbd: move credit charge verification over smb2 request size verification 2021-07-19 16:20:04 +09:00
smb2ops.c ksmbd: add support for negotiating signing algorithm 2021-07-22 09:56:02 +09:00
smb2pdu.c ksmbd: use LOOKUP_BENEATH to prevent the out of share access 2021-09-24 21:25:23 -05:00
smb2pdu.h ksmbd: change int data type to boolean 2021-08-13 08:18:03 +09:00
smb_common.c ksmbd: check protocol id in ksmbd_verify_smb_message() 2021-09-22 17:21:05 -05:00
smb_common.h ksmbd: check protocol id in ksmbd_verify_smb_message() 2021-09-22 17:21:05 -05:00
smbacl.c ksmbd: fix control flow issues in sid_to_id() 2021-09-08 17:16:13 -05:00
smbacl.h ksmbd: fix translation in acl entries 2021-09-03 23:29:44 -05:00
smbfsctl.h
smbstatus.h
transport_ipc.c ksmbd: fix kernel oops in ksmbd_rpc_ioctl/rap() 2021-07-03 08:02:18 +09:00
transport_ipc.h
transport_rdma.c ksmbd: transport_rdma: Don't include rwlock.h directly 2021-09-17 08:58:43 -05:00
transport_rdma.h ksmbd: fix typo of MS-SMBD 2021-07-22 09:55:58 +09:00
transport_tcp.c ksmbd: Fix potential memory leak in tcp_destroy_socket() 2021-07-23 13:10:55 +09:00
transport_tcp.h
unicode.c
unicode.h
uniupr.h
vfs_cache.c ksmbd: remove unused ksmbd_file_table_flush function 2021-09-03 23:29:45 -05:00
vfs_cache.h ksmbd: remove unused ksmbd_file_table_flush function 2021-09-03 23:29:45 -05:00
vfs.c ksmbd: use LOOKUP_BENEATH to prevent the out of share access 2021-09-24 21:25:23 -05:00
vfs.h ksmbd: use LOOKUP_BENEATH to prevent the out of share access 2021-09-24 21:25:23 -05:00
xattr.h ksmbd: reorder and document on-disk and netlink structures in headers 2021-06-30 14:47:24 +09:00