#9031 Harden FreeIPA KDC processing of PAC buffers
Closed: fixed 11 months ago by abbra. Opened 2 years ago by abbra.

Implement suggestions outlined in https://www.samba.org/samba/security/CVE-2020-25721.html

In order to avoid issues like CVE-2020-25717 AD Kerberos accepting
services need access to unique, and ideally long-term stable
identifiers of a user to perform authorization.

The AD PAC provides this, but the most useful information is kept in a
buffer which is NDR encoded, which means that so far in Free Software
only Samba and applications which use Samba components under the hood
like FreeIPA and SSSD decode PAC.

Recognising that the issues seen in Samba are not unique, Samba now
provides an extension to UPN_DNS_INFO, a component of the AD PAC, in a
way that can be parsed using basic pointer handling.

From this, future non-Samba based Kerberised applications can easily obtain
the user's SID, in the same packing as objectSID in LDAP, confident
that the ticket represents a specific user, not matter subsequent
renames.

This will allow such non-Samba applications to avoid confusing one
Kerberos user for another, even if they have the same string name (due
to the gap between time of ticket printing by the KDC and time of
ticket acceptance).

Implement PAC_UPN_DNS_INFO_EX, PAC_ATTRIBUTES_INFO, PAC_REQUESTER_SID, and other hardening improvements as suggested by Samba Team and Microsoft.

Additional information:
Microsoft: https://support.microsoft.com/en-us/topic/kb5008380-authentication-updates-cve-2021-42287-9dafac11-e0d0-4cb8-959a-143bd0201041
Samba Team: https://www.samba.org/samba/latest_news.html#4.15.2


Metadata Update from @abbra:
- Custom field on_review adjusted to https://github.com/freeipa/freeipa/pull/6076

2 years ago

master:

  • 6cfb9b7 ipa-kdb: store SID in the principal entry
  • 637653a ipa-kdb: enforce SID checks when generating PAC
  • 443a990 ipa-kdb: use entry DN to compare aliased entries in S4U operations
  • 6828273 ipa-kdb: S4U2Proxy target should use a service name without realm
  • 2333616 ipa-kdb: add support for PAC_UPN_DNS_INFO_EX
  • 9a0bcbb ipa-kdb: add support for PAC_REQUESTER_SID buffer
  • 0022bd7 ipa-kdb: add PAC_ATTRIBUTES_INFO PAC buffer support
  • 3042a1d ipa-kdb: Use proper account flags for Kerberos principal in PAC
  • 6e6fad4 SMB: switch IPA domain controller role

ipa-4-9:

  • 9ded98b ipa-kdb: store SID in the principal entry
  • 9ecbdd8 ipa-kdb: enforce SID checks when generating PAC
  • eb5a93d ipa-kdb: use entry DN to compare aliased entries in S4U operations
  • 8b5e496 ipa-kdb: S4U2Proxy target should use a service name without realm
  • 4cafdac ipa-kdb: add support for PAC_UPN_DNS_INFO_EX
  • 879ef1b ipa-kdb: add support for PAC_REQUESTER_SID buffer
  • b71467e ipa-kdb: add PAC_ATTRIBUTES_INFO PAC buffer support
  • adf5ab7 ipa-kdb: Use proper account flags for Kerberos principal in PAC
  • 693c165 SMB: switch IPA domain controller role

master:

  • 4062e7b ipa-kdb: honor SID from the host or service entry
  • 0c08faf ipa-kdb: validate domain SID in incoming PAC for trusted domains for S4U

ipa-4-9:

  • a95ccd9 ipa-kdb: honor SID from the host or service entry
  • 5213c1e ipa-kdb: validate domain SID in incoming PAC for trusted domains for S4U

master:

  • aed5fd8 freeipa.spec.in: -server subpackage should require samba-client-libs

ipa-4-9:

  • c850cd5 freeipa.spec.in: -server subpackage should require samba-client-libs

Metadata Update from @abbra:
- Custom field changelog adjusted to FreeIPA now implements PAC structure hardening as coordinated with Samba Team and Microsoft in CVE-2020-25719 and CVE-2021-42287 correspondingly.

2 years ago

Metadata Update from @abbra:
- Issue tagged with: rfe

2 years ago

master:

  • bda5911 ipa-kdb: issue PAC_REQUESTER_SID only for TGTs
  • 637412a ipa-kdb: fix requester SID check according to MS-KILE and MS-SFU updates

ipa-4-9:

  • 669f3d7 ipa-kdb: issue PAC_REQUESTER_SID only for TGTs
  • 7d93bda ipa-kdb: fix requester SID check according to MS-KILE and MS-SFU updates

We are trying to get more consistent details from Microsoft documented in MS-KILE, MS-PAC, and MS-SFU specs. It looks like there's still a need to tune the settings when these buffers issued and verified.

I am closing this now that RBCD support is merged.

Metadata Update from @abbra:
- Issue close_status updated to: fixed
- Issue status updated to: Closed (was: Open)

11 months ago

Login to comment on this ticket.

Metadata