MITKRB-SA-2006-001: multiple local privilege escalation vulnerabilities
Sachin Punadikar
punadikar.sachin at gmail.com
Mon Aug 14 08:07:13 EDT 2006
Hi Tom,
I implemented the changes suggested by you for "MIT krb5 Security Advisory
2006-001" in the ksu utility. I am always observing below message when I
exit from the ksu shell. I tested it on AIX and Linux. Behavior is same.
------------------------------------------
# ksu tester
Changing uid to tester (333)
# exit
exit
ksu: Operation not permitted while returning to source uid for destroying
ccache
-------------------------------------------
Code study shows that this is the new message being added for the security
advisory 2006-001. Further I found out that, from the sweep_up function,
krb5_seteuid(0) always fails. Ands that why I am getting this message. As a
side effect it leaves around the cred cache file, exits without destroying
it.
--- src/clients/ksu/main.c-----
if (krb5_seteuid(0) < 0 || krb5_seteuid(target_uid) < 0) {
com_err(prog_name, errno,
"while returning to source uid for destroying ccache");
exit(1);
}
------------------------------------------
Is this a expected behavior? Could you please provide inputs regarding why
we are calling krb5_seteuid(0) ? Is it supposed to succeed at any point of
time ? If not is it good idea to remove this call ?
Awaiting reply.
- Sachin.
On 8/9/06, Tom Yu <tlyu at mit.edu> wrote:
>
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> MIT krb5 Security Advisory 2006-001
>
> Original release: 2006-08-08
>
> Topic: multiple local privilege escalation vulnerabilities
>
> Severity: serious
>
> SUMMARY
> =======
>
> In certain application programs packaged in the MIT Kerberos 5 source
> distribution, calls to setuid() and seteuid() are not always checked
> for success. A local user could exploit one of these vulnerabilities
> to result in privilege escalation. No exploit code is known to exist
> at this time. It is believed that the primary risk is to Linux
> systems, due to the behavior of their implementation of the setuid()
> and seteuid() system calls.
>
> IMPACT
> ======
>
> Actual impact depends on implementation details within a specific
> operating system. Vulnerabilities result when the OS implementations
> of setuid() or seteuid() can fail due to resource exhaustion when
> changing to an unprivileged user ID. We believe that only unchecked
> calls to setuid(), and not calls to seteuid(), are vulnerable on
> Linux.
>
> On AIX, Kerberos applications provided by IBM are not vulnerable. If,
> in place of or in addition to IBM-provided Kerberos applications, MIT
> krb5 code is installed on an AIX system, the affected MIT krb5
> applications are vulnerable to the setuid() issues listed in
> CVE-2006-3083. We believe that no other operating systems are
> affected.
>
> [CVE-2006-3083, VU#580124] The following vulnerabilities may result
> from unchecked calls to setuid(), and are believed to only exist on
> Linux and AIX:
>
> * Unchecked calls to setuid() in krshd may allow a local privilege
> escalation leading to execution of programs as root.
>
> * Unchecked calls to setuid() in the v4rcp may allow a local privilege
> escalation leading to reading, writing, or creating files as root.
> v4rcp is the remote end of a krb4-authenticated rcp operation, but
> may be executed directly by an attacker, as it is a setuid program.
>
> [CVE-2006-3084, VU#401660] The following vulnerabilities may result
> from unchecked calls to seteuid(). These vulnerabilities are not yet
> known to exist on any operating system:
>
> * Unchecked calls to seteuid() in ftpd may allow a local privilege
> escalation leading to reading, writing, or creating files as root.
>
> * Unchecked calls to seteuid() in the ksu program may allow a local
> privilege escalation resulting in filling a file with null bytes as
> root and then deleting it (the "kdestroy" operation).
>
> AFFECTED SOFTWARE
> =================
>
> * The above-listed programs are vulnerable in all releases of MIT
> krb5, up to and including krb5-1.5. The krb5-1.5.1 and krb5-1.4.4
> releases will contain fixes for these problems.
>
> FIXES
> =====
>
> * The upcoming krb5-1.5.1 and krb5-1.4.4 releases will include fixes
> for these vulnerabilities.
>
> * Disable krshd and ftpd, and remove the setuid bit from the ksu
> binary and the v4rcp binary.
>
> * For the krb5-1.5 release, apply the patch at
>
> http://web.mit.edu/kerberos/advisories/2006-001-patch_1.5.txt
>
> A PGP-signed version of this patch is at
>
> http://web.mit.edu/kerberos/advisories/2006-001-patch_1.5.txt.asc
>
> This patch was generated against the krb5-1.5 release, and may apply
> to earlier releases with some fuzz. The patch also updates some
> calls to other setuid-like system calls on less-common operating
> systems, though these calls are less likely to be vulnerable.
>
> * For the krb5-1.4.3 release, apply the patch at
>
> http://web.mit.edu/kerberos/advisories/2006-001-patch_1.4.3.txt
>
> A PGP-signed version of this patch is at
>
> http://web.mit.edu/kerberos/advisories/2006-001-patch_1.4.3.txt
>
> This patch was generated against the krb5-1.4.3 release, and may apply
> to earlier releases with some fuzz. The patch also updates some
> calls to other setuid-like system calls on less-common operating
> systems, though these calls are less likely to be vulnerable.
>
> REFERENCES
> ==========
>
> This announcement and related security advisories may be found on the
> MIT Kerberos security advisory page at:
>
> http://web.mit.edu/kerberos/advisories/index.html
>
> The main MIT Kerberos web page is at:
>
> http://web.mit.edu/kerberos/index.html
>
> CVE: CVE-2006-3083
> http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2006-3083
>
> CERT: VU#580124
> http://www.kb.cert.org/vuls/id/580124
>
> CVE: CVE-2006-3084
> http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2006-3084
>
> CERT: VU#401660
> http://www.kb.cert.org/vuls/id/401660
>
> ACKNOWLEDGMENTS
> ===============
>
> Thanks to Michael Calmer and Marcus Meissner at SUSE for reporting
> this problem.
>
> Thanks to Shiva Persaud at IBM for information on AIX.
>
> DETAILS
> =======
>
> Typically, setuid(), seteuid(), and similar system calls cannot fail
> except in cases of inadequate privilege or system misconfiguration.
> Unlike other operating systems, Linux and AIX system calls which
> change the real user ID can fail if the change would cause the target
> user ID to exceed its quota of allowed processes. A local attacker
> may be able to exhaust a process quota in a way which artificially
> creates such a failure condition. This may result in privilege
> escalation when a program making an unchecked call to one of these
> system calls expects to continue execution with reduced privilege
> following the affected call, but instead continues to run as a
> privileged user.
>
> Specific places where various system calls are not checked include:
>
> appl/bsd/krcp.c: setreuid (uncompiled code), setuid (irrelevant
> because not installed setuid)
> appl/bsd/krshd.c: setuid
> appl/bsd/krsh.c: setuid (irrelevant because not installed setuid)
> appl/bsd/v4rcp.c: setuid
> appl/gssftp/ftpd/ftpd.c: seteuid
> client/ksu/main.c: seteuid
> lib/krb4/kuserok.c: seteuid (but likely irrelevant)
>
> REVISION HISTORY
> ================
>
> 2006-08-08 original release
>
> Copyright (C) 2006 Massachusetts Institute of Technology
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.3 (SunOS)
>
> iQCVAwUBRNjfg6bDgE/zdoE9AQLnKQP8DAikPgsCxRiOVj2QnX66VnBl2Nsm7irs
> NeO/8yiP9QpliPk4h/6p9Q1Wc70H/C4ICWgufVDiIHbnUc4MGS4GVUzZtvQelrC1
> 4WTZyxLFfEZQzbNk6FUBw3W0P38IrUX2FQsLTp9R4S3iWFMI5Udkb5XX60zwo9w2
> 79rpIw5g8vY=
> =x/vF
> -----END PGP SIGNATURE-----
> _______________________________________________
> kerberos-announce mailing list
> kerberos-announce at mit.edu
> https://mailman.mit.edu/mailman/listinfo/kerberos-announce
> _______________________________________________
> krbdev mailing list krbdev at mit.edu
> https://mailman.mit.edu/mailman/listinfo/krbdev
>
More information about the krbdev
mailing list