Your message dated Tue, 21 Feb 2006 23:47:10 -0800
with message-id <[EMAIL PROTECTED]>
and subject line Bug#351877: fixed in krb5 1.4.3-6
has caused the attached Bug report to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what I am
talking about this indicates a serious mail system misconfiguration
somewhere.  Please contact me immediately.)

Debian bug tracking system administrator
(administrator, Debian Bugs database)

--- Begin Message ---
Package: libkrb53
Version: 1.4.3-5
Severity: important
Tags: patch

The function krb5_gss_canonicalize_name() is defined in
src/lib/gssapi/krb5/canon_name.c.  It takes a gss_OID as its third
parameter ("mech_type").  Some programs (such as racoon of
ipsec-tools) like to call this function with GSS_C_NO_OID, which is
actually a NULL pointer.

However, the function as defined immediately dereferences the pointer
with the g_OID_equal() function.  This segfaults any program using the
library.  That's bad.

I see two ways that this could be resolved.  i'm providing very simple
(but untested) patches for both of them -- these patches should not
both be applied, of course!

 0) Return GSS_S_BAD_MECH when mech_type == GSS_C_NO_OID (this is the
    rude way, though much less rude than the current segfault)

--- krb5-1.4.3.clean/src/lib/gssapi/krb5/canon_name.c   2002-07-01 
16:48:34.000000000 -0400
+++ krb5-1.4.3/src/lib/gssapi/krb5/canon_name.c 2006-02-08 00:41:00.000000000 
-0500
@@ -34,8 +34,9 @@
                                     const gss_OID mech_type,
                                     gss_name_t *output_name)
 {
-    if (!g_OID_equal(gss_mech_krb5, mech_type) &&
-       !g_OID_equal(gss_mech_krb5_old, mech_type)) {
+    if ((GSS_C_NO_OID == mech_type) || (
+       !g_OID_equal(gss_mech_krb5, mech_type) &&
+       !g_OID_equal(gss_mech_krb5_old, mech_type))) {
        *minor_status = 0;
        return(GSS_S_BAD_MECH);
     }





 1) Since this gssapi module only supports a single non-deprecated
    mechanism (gss_mech_krb5), default to that if GSS_C_NO_OID is
    passed in.  (this is the polite way, and possibly more in line
    with the default behavior of, say, gss_import_name).

--- krb5-1.4.3.clean/src/lib/gssapi/krb5/canon_name.c   2002-07-01 
16:48:34.000000000 -0400
+++ krb5-1.4.3/src/lib/gssapi/krb5/canon_name.c 2006-02-08 00:43:33.000000000 
-0500
@@ -34,6 +34,9 @@
                                     const gss_OID mech_type,
                                     gss_name_t *output_name)
 {
+    /* default to using the standard krb5 mechanism type: */
+    if (GSS_C_NO_OID == mech_type) mech_type = gss_mech_krb5;
+
     if (!g_OID_equal(gss_mech_krb5, mech_type) &&
        !g_OID_equal(gss_mech_krb5_old, mech_type)) {
        *minor_status = 0;



But at least one of these fixes needs to be applied.  segfaulting in a
library function given semi-reasonable input is pretty bad.  This
appears to be a problem in version 1.3.6 (sarge) as well.  I'd
personally prefer what i'm calling the "polite" fix, because it
comes closer to following Postel's Law.

A third option might be to change the #definition of g_OID_equal (in
src/lib/gssapi/generic/gssapiP_generic.h) to test for GSS_C_NO_OID as
a special case first to avoid dereferencing the NULL pointer ever in
that macro.

Note that this is not a newly-discovered bug.  It was reported at
least back in April 2004 [0], and was brought up again in December
2005 [1], without any followup that i can see.

Let me know if i can provide more information to help resolve this
problem.  And thanks, as always, for your work in keeping this
important piece of infrastructure running in debian.

Regards,

        --dkg


[0] http://mailman.mit.edu/pipermail/kerberos/2004-April/005125.html
[1] http://www.mail-archive.com/[email protected]/msg09580.html


-- System Information:
Debian Release: testing/unstable
  APT prefers testing
  APT policy: (700, 'testing'), (700, 'stable'), (600, 'unstable')
Architecture: i386 (i686)
Shell:  /bin/sh linked to /bin/bash
Kernel: Linux 2.6.12-1-686
Locale: LANG=en_US, LC_CTYPE=en_US (charmap=ISO-8859-1)

Versions of packages libkrb53 depends on:
ii  libc6         2.3.5-8                    GNU C Library: Shared libraries an
ii  libcomerr2    1.38+1.39-WIP-2005.12.31-1 common error description library

libkrb53 recommends no packages.

-- no debconf information


--- End Message ---
--- Begin Message ---
Source: krb5
Source-Version: 1.4.3-6

We believe that the bug you reported is fixed in the latest version of
krb5, which is due to be installed in the Debian FTP archive:

krb5-admin-server_1.4.3-6_i386.deb
  to pool/main/k/krb5/krb5-admin-server_1.4.3-6_i386.deb
krb5-clients_1.4.3-6_i386.deb
  to pool/main/k/krb5/krb5-clients_1.4.3-6_i386.deb
krb5-doc_1.4.3-6_all.deb
  to pool/main/k/krb5/krb5-doc_1.4.3-6_all.deb
krb5-ftpd_1.4.3-6_i386.deb
  to pool/main/k/krb5/krb5-ftpd_1.4.3-6_i386.deb
krb5-kdc_1.4.3-6_i386.deb
  to pool/main/k/krb5/krb5-kdc_1.4.3-6_i386.deb
krb5-rsh-server_1.4.3-6_i386.deb
  to pool/main/k/krb5/krb5-rsh-server_1.4.3-6_i386.deb
krb5-telnetd_1.4.3-6_i386.deb
  to pool/main/k/krb5/krb5-telnetd_1.4.3-6_i386.deb
krb5-user_1.4.3-6_i386.deb
  to pool/main/k/krb5/krb5-user_1.4.3-6_i386.deb
krb5_1.4.3-6.diff.gz
  to pool/main/k/krb5/krb5_1.4.3-6.diff.gz
krb5_1.4.3-6.dsc
  to pool/main/k/krb5/krb5_1.4.3-6.dsc
libkadm55_1.4.3-6_i386.deb
  to pool/main/k/krb5/libkadm55_1.4.3-6_i386.deb
libkrb5-dev_1.4.3-6_i386.deb
  to pool/main/k/krb5/libkrb5-dev_1.4.3-6_i386.deb
libkrb53_1.4.3-6_i386.deb
  to pool/main/k/krb5/libkrb53_1.4.3-6_i386.deb



A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to [EMAIL PROTECTED],
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Russ Allbery <[EMAIL PROTECTED]> (supplier of updated krb5 package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing [EMAIL PROTECTED])


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Format: 1.7
Date: Tue, 21 Feb 2006 23:25:34 -0800
Source: krb5
Binary: krb5-doc libkrb5-dev krb5-rsh-server krb5-user krb5-ftpd libkadm55 
libkrb53 krb5-clients krb5-telnetd krb5-kdc krb5-admin-server
Architecture: source i386 all
Version: 1.4.3-6
Distribution: unstable
Urgency: low
Maintainer: Sam Hartman <[EMAIL PROTECTED]>
Changed-By: Russ Allbery <[EMAIL PROTECTED]>
Description: 
 krb5-admin-server - MIT Kerberos master server (kadmind)
 krb5-clients - Secure replacements for ftp, telnet and rsh using MIT Kerberos
 krb5-doc   - Documentation for MIT Kerberos
 krb5-ftpd  - Secure FTP server supporting MIT Kerberos
 krb5-kdc   - MIT Kerberos key server (KDC)
 krb5-rsh-server - Secure replacements for rshd and rlogind using MIT Kerberos
 krb5-telnetd - Secure telnet server supporting MIT Kerberos
 krb5-user  - Basic programs to authenticate using MIT Kerberos
 libkadm55  - MIT Kerberos administration runtime libraries
 libkrb5-dev - Headers and development libraries for MIT Kerberos
 libkrb53   - MIT Kerberos runtime libraries
Closes: 347643 350041 351877
Changes: 
 krb5 (1.4.3-6) unstable; urgency=low
 .
   * Assume krb5 in krb5_gss_canonicalize_name if the null mechanism is
     passed in.  Fixes a segfault in racoon from ipsec-tools.  Thanks,
     Daniel Kahn Gillmor.  (Closes: #351877)
   * v5passwdd is gone, so remove the debconf template, the prompts, and
     the code to start and stop it from the init script.  Thanks, Greg
     Folkert.
   * Fix incorrect option names in krb5.conf(5).  Thanks, Martin v.
     Loewis.  (Closes: #347643)
   * Translation updates.
     - Danish, thanks Claus Hindsgaul.  (Closes: #350041)
Files: 
 5c5888c4b134b8f53dc8a890511a8a59 830 net standard krb5_1.4.3-6.dsc
 36c8d7550fd7817847f95faa6dbacc6e 1448736 net standard krb5_1.4.3-6.diff.gz
 e12117bf0914dc30a5c1703a78fa3bd1 852580 doc optional krb5-doc_1.4.3-6_all.deb
 221ba47484c39aa5c2b0f3833844830e 173680 libs optional 
libkadm55_1.4.3-6_i386.deb
 ec9eeb20ed02a1826b87de685d546cea 404550 libs standard libkrb53_1.4.3-6_i386.deb
 997de78151895c568fa21915d652228b 121562 net optional krb5-user_1.4.3-6_i386.deb
 07ce3cf05be4feaf826928347c4f65ae 194376 net optional 
krb5-clients_1.4.3-6_i386.deb
 e44149309f91ec4e320b22586b33e55f 78236 net optional 
krb5-rsh-server_1.4.3-6_i386.deb
 bfdc36f0e2daf84f1dd393f5891d082a 55520 net extra krb5-ftpd_1.4.3-6_i386.deb
 bd93bf9b1bb923f74f1566ad337bf28a 60704 net extra krb5-telnetd_1.4.3-6_i386.deb
 b5d90940fe3f161c550fa68451b78d9b 126132 net optional krb5-kdc_1.4.3-6_i386.deb
 b622170a0cd9645497b32b1190fa3409 73334 net optional 
krb5-admin-server_1.4.3-6_i386.deb
 18d902f009bca023b0bfea870da4297f 680802 libdevel extra 
libkrb5-dev_1.4.3-6_i386.deb

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2 (GNU/Linux)

iD8DBQFD/BT6+YXjQAr8dHYRAtuVAJ9jlrYND0AiapZ1VMFJg9l+xB9grACguNHB
u81umd/tRA62dEi6aLKu0ZA=
=eKEh
-----END PGP SIGNATURE-----


--- End Message ---

Reply via email to