NetBSD/lib/libpam/modules
riastradh ed4af7289b pam_krb5: Refuse to operate without a key to verify tickets.
New allow_kdc_spoof overrides this to restore previous behaviour
which was vulnerable to KDC spoofing, because without a host or
service key, pam_krb5 can't distinguish the legitimate KDC from a
spoofed one.

This way, having pam_krb5 enabled isn't dangerous even if you create
an empty /etc/krb5.conf to use client SSO without any host services.

Perhaps this should use krb5_verify_init_creds(3) instead, and
thereby respect the rather obscurely named krb5.conf option
verify_ap_req_nofail like the Linux pam_krb5 does, but:

- verify_ap_req_nofail is default-off (i.e., vulnerable by default),
- changing verify_ap_req_nofail to default-on would probably affect
  more things and therefore be riskier,
- allow_kdc_spoof is a much clearer way to spell the idea,
- this patch is a smaller semantic change and thus less risky, and
- a security change with compatibility issues shouldn't have a
  workaround that might introduce potentially worse security issues
  or more compatibility issues.

Perhaps this should use krb5_verify_user(3) with secure=1 instead,
for simplicity, but it's not clear how to do that without first
prompting for the password -- which we shouldn't do at all if we
later decide we won't be able to use it anyway -- and without
repeating a bunch of the logic here anyway to pick the service name.

References about verify_ap_req_nofail:
- mit-krb5 discussion about verify_ap_req_nofail:
  https://mailman.mit.edu/pipermail/krbdev/2011-January/009778.html
- Oracle has the default-secure setting in their krb5 system:
  https://docs.oracle.com/cd/E26505_01/html/E27224/setup-148.html
  https://docs.oracle.com/cd/E26505_01/html/816-5174/krb5.conf-4.html#REFMAN4krb5.conf-4
  https://docs.oracle.com/cd/E19253-01/816-4557/gihyu/
- Heimdal issue on verify_ap_req_nofail default:
  https://github.com/heimdal/heimdal/issues/1129
2023-06-20 22:17:18 +00:00
..
pam_afslog
pam_chroot
pam_deny
pam_echo
pam_exec pam_exec: Convert realloc(x * y) to reallocarr. 2021-10-30 11:34:59 +00:00
pam_ftpusers
pam_group
pam_guest
pam_krb5 pam_krb5: Refuse to operate without a key to verify tickets. 2023-06-20 22:17:18 +00:00
pam_ksu pam_ksu: No need for homedir access. 2023-06-20 22:17:09 +00:00
pam_lastlog bsd.own.mk: rename GCC_NO_* to CC_WNO_* 2023-06-03 09:09:01 +00:00
pam_login_access
pam_nologin
pam_permit
pam_radius
pam_rhosts
pam_rootok
pam_securetty
pam_self
pam_skey
pam_ssh Set provider to NULL -- "pam" is not a valid security key helper library. 2022-06-15 08:31:34 +00:00
pam_unix nix double n, i or g in "ing", in comments and documentation. 2022-10-26 22:09:37 +00:00
Makefile
mod.mk