Debian Patches

Status for cifs-utils/2:6.11-3.1+deb11u1

Patch Description Author Forwarded Bugs Origin Last update
0001-Fix-fPIE-casing.patch [PATCH] Fix -fPIE casing
-fpie seems to work, but bhlc complains that -fPIE is missing
Mathieu Parent <math.parent@gmail.com> yes upstream 2019-07-31
0002-Install-hook-relative-to-DESTDIR.patch [PATCH] Install hook relative to $(DESTDIR) Mathieu Parent <math.parent@gmail.com> no 2020-11-13
0003-Change-script-shbangs-to-python3.patch [PATCH] Change script shbangs to python3 Mathieu Parent <math.parent@gmail.com> no 2020-11-13
0010-CVE-2021-20208.patch [PATCH] cifs.upcall: try to use container ipc/uts/net/pid/mnt/user namespaces

In certain scenarios (e.g. kerberos multimount), when a process does
syscalls, the kernel sometimes has to query information or trigger
some actions in userspace. To do so it calls the cifs.upcall binary
with information on the process that triggered the syscall in the
first place.

ls(pid=10) ====> open("foo") ====> kernel

that user doesn't have an SMB
session, lets create one using his
kerberos credential cache

call cifs.upcall and ask for krb info
for whoever owns pid=10
|
cifs.upcall --pid 10 <=================+

...gather info...
return binary blob used
when establishing SMB session
===================> kernel
open SMB session, handle
open() syscall
ls <=================================== return open() result to ls

On a system using containers, the kernel is still calling the host
cifs.upcall and using the host configuration (for network, pid, etc).

This patch changes the behaviour of cifs.upcall so that it uses the
calling process namespaces (ls in the example) when doing its
job.

Note that the kernel still calls the binary in the host, but the
binary will place itself the contexts of the calling process
namespaces.

This code makes use of (but shouldn't require) the following kernel
config options and syscall flags:

approx. year |
introduced | config/flags
Alastair Houghton <alastair@alastairs-place.net> no 2020-12-29
0011-fix-regression-for-CVE-2021-20208.patch [PATCH v4] cifs.upcall: fix regression in kerberos mount
The fix for CVE-2021-20208 in commit e461afd ("cifs.upcall: try to use
container ipc/uts/net/pid/mnt/user namespaces") introduced a
regression for kerberos mounts when cifs-utils is built with
libcap-ng. It makes mount fail with ENOKEY "Required key not
available".

Current state:

mount.cifs
'---> mount() ---> kernel
negprot, session setup (need security blob for krb)
request_key("cifs.spnego", payload="pid=%d;username=...")
upcall
/sbin/request-key <--------------'
reads /etc/request-keys.conf
dispatch cifs.spnego request
calls /usr/sbin/cifs.upcall <key id>
- drop privileges (capabilities)
- fetch keyid
- parse payload
- switch to mount.cifs namespaces
- call krb5_xxx() funcs
- generate security blob
- set key value to security blob
'-----------------------------------> kernel
put blob in session setup packet
continue auth
open tcon
get share root
setup superblock
mount.cifs mount() returns <-----------'

By the time cifs.upcall tries to switch to namespaces, enough
capabilities have dropped in trim_capabilities() that it makes setns()
fail with EPERM.

setns() requires CAP_SYS_ADMIN.

With libcap trim_capabilities() is a no-op.

This fix:

- moves the namespace switch earlier so that operations like
setgroups(), setgid(), scanning of pid environment, ... happens in the
contained namespaces.
- moves trim_capabilities() after the namespace switch
- moves the string processing to decode the key request payload in a
child process with minimum capabilities. the decoded data is shared
with the parent process via shared memory obtained with mmap().
Aurelien Aptel <aaptel@suse.com> no 2021-04-21
CVE-2022-27239-mount.cifs-fix-length-check-for-ip-op.patch CVE-2022-27239: mount.cifs: fix length check for ip option parsing
Previous check was true whatever the length of the input string was,
leading to a buffer overflow in the subsequent strcpy call.
Jeffrey Bencteux <jbe@improsec.com> yes debian upstream https://git.samba.org/cifs-utils.git/?p=cifs-utils.git;a=commit;h=007c07fd91b6d42f8bd45187cf78ebb06801139d 2022-03-17
mount.cifs-fix-verbose-messages-on-option-parsing.patch mount.cifs: fix verbose messages on option parsing
When verbose logging is enabled, invalid credentials file lines may be
dumped to stderr. This may lead to information disclosure in particular
conditions when the credentials file given is sensitive and contains '='
signs.
Jeffrey Bencteux <jbe@improsec.com> yes debian upstream https://git.samba.org/cifs-utils.git/?p=cifs-utils.git;a=commit;h=8acc963a2e7e9d63fe1f2e7f73f5a03f83d9c379 2022-03-19

All known versions for source package 'cifs-utils'

Links