ACK: [SRU][J][PATCH v2 0/2] CVE-2023-2640 and CVE-2023-32629
Mehmet Basaran
mehmet.basaran at canonical.com
Thu Apr 9 07:10:18 UTC 2026
Acked-by: Mehmet Basaran <mehmet.basaran at canonical.com>
-------------- next part --------------
Massimiliano Pellizzer <massimiliano.pellizzer at canonical.com> writes:
> [ Impact ]
>
> An unprivileged local user can obtain root privileges by exploiting the
> OverlayFS copy-up path. By setting scoped file capabilities inside a user
> namespace and triggering a copy-up, the kernel writes unscoped (globally
> effective) capabilities to the upper directory via __vfs_setxattr_noperm(),
> bypassing cap_convert_nscap(). The resulting binary grants any chosen
> capability to any user who executes it.
>
> [ Fix ]
>
> The first patch reverts the SAUCE patch that replaced vfs_setxattr() with
> __vfs_setxattr_noperm() in ovl_do_setxattr(), restoring full VFS
> permission checks and security transformations (including
> cap_convert_nscap()) for all OverlayFS xattr operations.
>
> The second patch applies a new SAUCE patch that auto-enables
> the "userxattr" mount option when OverlayFS is mounted from a non-initial
> user namespace, switching internal metadata to the unprivileged
> user.overlay.* namespace. This preserves unprivileged mount functionality
> without bypassing the VFS security layer.
>
> [ Test Plan ]
>
> The patchset has been tested, security wise, using multiple available
> known exploits.
> Moreover, the patchset has been tested with the following bash script
> to make sure it does not introduce any regression in functionalities:
> ```
> #!/bin/sh -ex
> dir=`mktemp -d`
>
> cleanup() {
> umount -l $dir/t
> rm -rf $dir
> }
> trap cleanup EXIT
>
> echo "dir is $dir"
> mkdir -p $dir/l $dir/u $dir/w $dir/t
> mkdir $dir/l/dev
> mount -t overlay -o lowerdir=$dir/l,upperdir=$dir/u,workdir=$dir/w o $dir/t
> stat $dir/t/dev
> rmdir $dir/t/dev
> mkdir $dir/t/dev
> echo $?
> echo "mkdir should have succeeded"
> ```
>
> [ Regression Potential ]
>
> Reverting the first SAUCE patch re-enables VFS permission checks on all
> OverlayFS xattr writes. Without patch 2, any unprivileged user namespace
> OverlayFS mount would fail with EPERM on trusted.overlay.* writes. Patch 2
> mitigates this by redirecting to user.overlay.*.
> A regression is possible if existing overlays on disk carry trusted.overlay.*
> xattrs written by a prior kernel.
> Newly created overlays are unaffected. Container runtimes operating as real root
> are also unaffected as they mount from init_user_ns.
>
> [ Chages between v1 and v2 ]
>
> Fixed typo in commit message of the first patch.
>
> Massimiliano Pellizzer (2):
> UBUNTU: SAUCE: Revert "UBUNTU: SAUCE: overlayfs: Skip permission
> checking for trusted.overlayfs.* xattrs"
> UBUNTU: SAUCE: overlayfs: default to userxattr when mounted from non
> initial user namespace
>
> fs/overlayfs/overlayfs.h | 15 ++-------------
> fs/overlayfs/super.c | 10 ++++++++++
> fs/xattr.c | 36 ++++++------------------------------
> include/linux/xattr.h | 1 -
> 4 files changed, 18 insertions(+), 44 deletions(-)
>
> --
> 2.51.0
>
>
> --
> kernel-team mailing list
> kernel-team at lists.ubuntu.com
> https://lists.ubuntu.com/mailman/listinfo/kernel-team
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 873 bytes
Desc: not available
URL: <https://lists.ubuntu.com/archives/kernel-team/attachments/20260409/01f68038/attachment-0001.sig>
More information about the kernel-team
mailing list