Mac OS X pppd format string vulnerability
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
@stake, Inc.
www.atstake.com
Security Advisory
Advisory Name: Mac OS X pppd format string vulnerability
Release Date: 02/23/2004
Application: pppd 2.4.0
Platform: Mac OS X 10.3.2 and below
Severity: Local users are able to retrieve PAP/CHAP credentials
Author: Dave G. <daveg@xxxxxxxxxxx>
Vendor Status: Vendor has security update
CVE Candidate: CAN-2004-0165
Reference: www.atstake.com/research/advisories/2004/a022304-1.txt
Overview:
The ppp daemon that comes installed by default in Mac OS X
is vulnerable to a format string vulnerability. The vulnerability is
in a function specific to pppd that does not allow for traditional
exploitation (arbitrary data written to arbitrary memory locations)
via %n. However, it is possible to read arbitrary data out of pppd's
process. Under certain circumstances, it is also possible to 'steal'
PAP/CHAP authentication credentials.
Details:
When pppd receives an invalid command line argument, it will
eventually pass it as a format specifier to vslprintf(). This
function is a custom replacement for vsnprintf(), and does contains a
small subset of the format specifiers. The offending function is
called option_error:
void
option_error __V((char *fmt, ...))
{
va_list args;
char buf[256];
#if defined(__STDC__)
va_start(args, fmt);
#else
char *fmt;
va_start(args);
fmt = va_arg(args, char *);
#endif
vslprintf(buf, sizeof(buf), fmt, args);
va_end(args);
if (phase == PHASE_INITIALIZE)
fprintf(stderr, "%s: %s\n", progname, buf);
#ifdef __APPLE__
error(buf);
#else
syslog(LOG_ERR, "%s", buf);
#endif
}
As we can see, there is a specific Apple ifdef that will pass our
buffer directly to error().
By utilizing one of the techniques outlined in scut's paper,
"Exploiting Format String Vulnerabilities", it may be possible to
access PAP and/or CHAP credentials, if the OS X system is being used
as a PPP server.
Vendor Response:
This is fixed in Security Update 2004-02-23 for Mac OS X 10.3.2 and
Mac OS X 10.2.8. Information about Apple Security Updates may be
found at http://www.info.apple.com/
Recommendation:
Install the vendor supplied upgrade.
Common Vulnerabilities and Exposures (CVE) Information:
The Common Vulnerabilities and Exposures (CVE) project has assigned
the following names to these issues. These are candidates for
inclusion in the CVE list (http://cve.mitre.org), which standardizes
names for security problems.
CAN-2004-0165 Mac OS X pppd format string vulnerability
@stake Vulnerability Reporting Policy:
http://www.atstake.com/research/policy/
@stake Advisory Archive:
http://www.atstake.com/research/advisories/
PGP Key:
http://www.atstake.com/research/pgp_key.asc
Copyright 2004 @stake, Inc. All rights reserved.
-----BEGIN PGP SIGNATURE-----
Version: PGP 8.0.3
iQA/AwUBQDqNV0e9kNIfAm4yEQJDyACfdyoktRpVe2HdeJ+OXFrO0PCH5L4Anj1t
ayzDBWIsuXib+mhqIjrG7wDI
=4K2F
-----END PGP SIGNATURE-----