Bug 867153 - bugfix: mod_auth_kerb wrt KrbLocalUserMapping
Summary: bugfix: mod_auth_kerb wrt KrbLocalUserMapping
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: mod_auth_kerb
Version: 6.5
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: rc
: ---
Assignee: Web Stack Team
QA Contact: Lukas "krteknet" Novy
URL:
Whiteboard:
Depends On:
Blocks: 970552
TreeView+ depends on / blocked
 
Reported: 2012-10-16 22:20 UTC by Jesse Triplett
Modified: 2018-12-01 17:58 UTC (History)
7 users (show)

Fixed In Version: mod_auth_kerb-5.4-10.el6
Doc Type: Bug Fix
Doc Text:
Clone Of:
: 970552 (view as bug list)
Environment:
Last Closed: 2013-05-23 13:04:04 UTC


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


Links
System ID Priority Status Summary Last Updated
Red Hat Product Errata RHBA-2013:0860 normal SHIPPED_LIVE mod_auth_kerb bug fix update 2013-05-23 17:03:22 UTC

Description Jesse Triplett 2012-10-16 22:20:23 UTC
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 22:49:38 UTC
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 07:51:18 UTC
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 09:17:53 UTC
Created attachment 628620 [details]
proposed patch

Comment 5 Jan Kaluža 2012-10-17 09:21:48 UTC
I think this patch does what you suggest.

Comment 6 Jan Kaluža 2012-10-17 10:13:04 UTC
Created attachment 628639 [details]
proposed patch

Comment 17 errata-xmlrpc 2013-05-23 13:04:04 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-2013-0860.html


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