Certain versions of the KDC software (included for example in Red Hat Enterprise Linux 2.1 and 3) reject requests, which include KDC options the software does not recognize, and do not support the "canonicalize" option. When a client was configured to use one of these versions of the KDC software, the client failed to obtain credentials for authentication to other services. This interoperability regression was introduced in the update to Red Hat Enterprise Linux 6.1. With this update, an upstream patch has been provided to fix this bug.
Created attachment 504902[details]
Patch to re-enable same-realm fallback for canonicalize errors
Description of problem:
Clients linked against Kerberos 1.9 fail against older KDCs that don't support canonicalize. This affects FNAL, since we have operational needs to keep KDC online, but want to allow folks running RHEL6 (and compatible) to connect.
Version-Release number of selected component (if applicable):
krb-1.9
How reproducible:
Always.
Steps to Reproduce:
1. kinit with an older (1.2?) KDC.
2. ssh using kerberos to another node.
Actual results:
debug1: Unspecified GSS failure. Minor code may provide more information
KDC can't fulfill requested option
Expected results:
Successful ssh connection
Additional info:
Here's the mail from Greg Hudson from the MIT Kerberos team:
Neither of these functions is used in the TGS request path. What
actually happened was a change in the fallback behavior when get_creds.c
was rewritten for 1.9. Previously, we would retry without the
canonicalize bit set any time we got an error from our first referral
request, but in 1.9 we only retry if we would be doing so in a different
realm.
The old fallback behavior will be restored in 1.9.2 (I just committed
the patch), but depending on your deployment scenario, it may be easier
to work around this problem by patching the KDC. It would be a very
simple patch to validate_tgs_request() in kdc_util.c.
I've attached Greg's patch. It applies cleanly (with fuzz) to 1.9-9, and I did some rudimentary testing at Fermilab which was successful.
Technical note added. If any revisions are required, please edit the "Technical Notes" field
accordingly. All revisions will be proofread by the Engineering Content Services team.
New Contents:
Certain versions of the KDC software (included for example in Red Hat Enterprise Linux 2.1 and 3) reject requests, which include KDC options the software does not recognize, and do not support the "canonicalize" option. When a client was configured to use one of these versions of the KDC software, the client failed to obtain credentials for authentication to other services. This interoperability regression was introduced in the update to Red Hat Enterprise Linux 6.1. With this update, an upstream patch has been provided to fix this bug.
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.
For information on the advisory, and where to find the updated
files, follow the link below.
If the solution does not work for you, open a new bug report.
http://rhn.redhat.com/errata/RHBA-2011-1707.html
Created attachment 504902 [details] Patch to re-enable same-realm fallback for canonicalize errors Description of problem: Clients linked against Kerberos 1.9 fail against older KDCs that don't support canonicalize. This affects FNAL, since we have operational needs to keep KDC online, but want to allow folks running RHEL6 (and compatible) to connect. Version-Release number of selected component (if applicable): krb-1.9 How reproducible: Always. Steps to Reproduce: 1. kinit with an older (1.2?) KDC. 2. ssh using kerberos to another node. Actual results: debug1: Unspecified GSS failure. Minor code may provide more information KDC can't fulfill requested option Expected results: Successful ssh connection Additional info: Here's the mail from Greg Hudson from the MIT Kerberos team: Neither of these functions is used in the TGS request path. What actually happened was a change in the fallback behavior when get_creds.c was rewritten for 1.9. Previously, we would retry without the canonicalize bit set any time we got an error from our first referral request, but in 1.9 we only retry if we would be doing so in a different realm. The old fallback behavior will be restored in 1.9.2 (I just committed the patch), but depending on your deployment scenario, it may be easier to work around this problem by patching the KDC. It would be a very simple patch to validate_tgs_request() in kdc_util.c. I've attached Greg's patch. It applies cleanly (with fuzz) to 1.9-9, and I did some rudimentary testing at Fermilab which was successful.