Re: [PATCH] libceph: bump CephXAuthenticate encoding version

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, Apr 25, 2021 at 3:05 PM Ilya Dryomov <idryomov@xxxxxxxxx> wrote:
>
> A dummy v3 encoding (exactly the same as v2) was introduced so that
> the monitors can distinguish broken clients that may not include their
> auth ticket in CEPHX_GET_AUTH_SESSION_KEY request on reconnects, thus
> failing to prove previous possession of their global_id (one part of
> CVE-2021-20288).
>
> The kernel client has always included its auth ticket, so it is
> compatible with enforcing mode as is.  However we want to bump the
> encoding version to avoid having to authenticate twice on the initial
> connect -- all legacy (CephXAuthenticate < v3) are now forced do so in
> order to expose insecure global_id reclaim.
>
> Marking for stable since at least for 5.11 and 5.12 it is trivial
> (v2 -> v3).
>
> Cc: stable@xxxxxxxxxxxxxxx # 5.11+
> URL: https://tracker.ceph.com/issues/50452
> Signed-off-by: Ilya Dryomov <idryomov@xxxxxxxxx>

Reviewed-by: Sage Weil <sage@xxxxxxxxxx>

>
> ---
>  net/ceph/auth_x.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/net/ceph/auth_x.c b/net/ceph/auth_x.c
> index ca44c327bace..79641c4afee9 100644
> --- a/net/ceph/auth_x.c
> +++ b/net/ceph/auth_x.c
> @@ -526,7 +526,7 @@ static int ceph_x_build_request(struct ceph_auth_client *ac,
>                 if (ret < 0)
>                         return ret;
>
> -               auth->struct_v = 2;  /* nautilus+ */
> +               auth->struct_v = 3;  /* nautilus+ */
>                 auth->key = 0;
>                 for (u = (u64 *)enc_buf; u + 1 <= (u64 *)(enc_buf + ret); u++)
>                         auth->key ^= *(__le64 *)u;
> --
> 2.19.2
>




[Index of Archives]     [CEPH Users]     [Ceph Large]     [Ceph Dev]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux