Bug 713518

Summary: Canonicalize fallback only works for different realm (MITKRB RT #6917)
Product: Red Hat Enterprise Linux 6 Reporter: Burt Holzman <burt>
Component: krb5Assignee: Nalin Dahyabhai <nalin>
Status: CLOSED ERRATA QA Contact: BaseOS QE Security Team <qe-baseos-security>
Severity: high Docs Contact:
Priority: urgent    
Version: 6.1CC: burt, csieh, dpal, jplans, jwest, ksrot, prc
Target Milestone: rcKeywords: Regression, ZStream
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: krb5-1.9-10.el6 Doc Type: Bug Fix
Doc Text:
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.
Story Points: ---
Clone Of:
: 715074 (view as bug list) Environment:
Last Closed: 2011-12-06 17:36:52 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 714866    
Attachments:
Description Flags
Patch to re-enable same-realm fallback for canonicalize errors none

Description Burt Holzman 2011-06-15 16:18:19 UTC
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.

Comment 9 Tomas Capek 2011-06-28 08:35:47 UTC
    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.

Comment 12 errata-xmlrpc 2011-12-06 17:36:52 UTC
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