s4:kdc: Add correct Asserted Identity SID in response to an S4U2Self request
authorJoseph Sutton <josephsutton@catalyst.net.nz>
Mon, 4 Sep 2023 01:20:34 +0000 (13:20 +1200)
committerJule Anger <janger@samba.org>
Fri, 22 Sep 2023 19:34:15 +0000 (19:34 +0000)
commit9ba1c94e3e133a56e04f7388554b99c57753314a
treeae29d74484a7f988843758d2832d5cff10adacbb
parentc30984f095d2be4fe431544073dcad2a4c45d3d5
s4:kdc: Add correct Asserted Identity SID in response to an S4U2Self request

I’m not sure exactly how this check was supposed to work. But in any
case, within fast_unwrap_request() the Heimdal KDC replaces the outer
padata with the padata from the inner FAST request. Hence, this check
does not accomplish anything useful: at no point should the KDC plugin
see the outer padata.

A couple of unwanted consequences resulted from this check. One was that
a client who sent empty FX‐FAST padata within the inner FAST request
would receive the *Authentication Authority* Asserted Identity SID
instead of the *Service* Asserted Identity SID. Another consequence was
that a client could in the same manner bypass the restriction on
performing S4U2Self with an RODC‐issued TGT.

Overall, samba_wdc_is_s4u2self_req() is somewhat of a hack. But the
Heimdal plugin API gives us nothing better to work with.

Signed-off-by: Joseph Sutton <josephsutton@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
(cherry picked from commit 5c580dbdb3e6a70c8d2f5059e2b7293a7e780414)

BUG: https://bugzilla.samba.org/show_bug.cgi?id=15477
source4/kdc/wdc-samba4.c