Bug 867153 - bugfix: mod_auth_kerb wrt KrbLocalUserMapping
bugfix: mod_auth_kerb wrt KrbLocalUserMapping
Status: CLOSED ERRATA
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: mod_auth_kerb (Show other bugs)
6.5
Unspecified Unspecified
unspecified Severity unspecified
: rc
: ---
Assigned To: Web Stack Team
Lukas "krteknet" Novy
:
Depends On:
Blocks: 970552
  Show dependency treegraph
 
Reported: 2012-10-16 18:20 EDT by Jesse Triplett
Modified: 2014-02-18 18:56 EST (History)
7 users (show)

See Also:
Fixed In Version: mod_auth_kerb-5.4-10.el6
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
: 970552 (view as bug list)
Environment:
Last Closed: 2013-05-23 09:04:04 EDT
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)
proposed patch (980 bytes, patch)
2012-10-17 05:17 EDT, Jan Kaluža
no flags Details | Diff
proposed patch (977 bytes, patch)
2012-10-17 06:13 EDT, Jan Kaluža
no flags Details | Diff

  None (edit)
Description Jesse Triplett 2012-10-16 18:20:23 EDT
Description of problem:
KrbLocalUserMapping uses krb5_aname_to_localname() to translate a principal name to a local account name. mod_auth_kerb-5.4-9.el6 has a bug whereby it fails with an Apache HTTP 500 response if the length of the account name greater than or equal to that of the principal name. I'm attaching a patch

Version-Release number of selected component (if applicable):

mod_auth_kerb-5.4-9.el6

How is this reproducible:


Steps to Reproduce:

1. Configure Apache for Negotiate/GSSAPI/Kerberos authentication using mod_auth_kerb, with "KrbLocalUserMapping on".

2. Configure MIT Kerberos to map your client principal name to a local name which is as long or longer than the principal name, e.g. in /etc/krb5.conf:

[realms]

REDHAT.COM = {
  auth_to_local = RULE:[1:$1@$0]s/^you@REDHAT.COM$/somethingevenlonger/
}

Actual results:

Apache responds with an HTTP 500 "internal server" error, with this log message from mod_auth_kerb:

krb5_aname_to_localname() failed: Insufficient space to return complete information

Expected results:

The HTTP request should succeed with "somethingevenlonger" as the REMOTE_USER supplied by mod_auth_kerb.

Additional info:

If the lenght of the translation string is less than that of the principal name, it works. This is because mod_auth_kerb allocates a buffer for the translation based on the length of the client principal name, rather than suing some reasonable independent upper bound (in my patch I used 255 characters).
Comment 2 RHEL Product and Program Management 2012-10-16 18:49:38 EDT
This request was evaluated by Red Hat Product Management for
inclusion in the current release of Red Hat Enterprise Linux.
Because the affected component is not scheduled to be updated
in the current release, Red Hat is unable to address this
request at this time.

Red Hat invites you to ask your support representative to
propose this request, if appropriate, in the next release of
Red Hat Enterprise Linux.
Comment 3 Jan Kaluža 2012-10-17 03:51:18 EDT
I will check the code myself too, but if you still have patch for this, it would make things faster. Maybe you just forgot to attach it?
Comment 4 Jan Kaluža 2012-10-17 05:17:53 EDT
Created attachment 628620 [details]
proposed patch
Comment 5 Jan Kaluža 2012-10-17 05:21:48 EDT
I think this patch does what you suggest.
Comment 6 Jan Kaluža 2012-10-17 06:13:04 EDT
Created attachment 628639 [details]
proposed patch
Comment 17 errata-xmlrpc 2013-05-23 09:04:04 EDT
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-2013-0860.html

Note You need to log in before you can comment on or make changes to this bug.