Date: Mon, 28 Apr 2003 11:22:55 +0200
From: Daniel Ahlberg <[email protected]>
To: [email protected]Subject: GLSA: pptpd (200304-08)
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
- - - ---------------------------------------------------------------------
GENTOO LINUX SECURITY ANNOUNCEMENT 200304-08
- - - ---------------------------------------------------------------------
PACKAGE : pptpd
SUMMARY : buffer overflow
DATE : 2003-04-28 09:22 UTC
EXPLOIT : remote
VERSIONS AFFECTED : <pptpd-1.1.3.20030429
FIXED VERSION : >=pptpd-1.1.3.20030429
CVE : CAN-2003-0213
- - - ---------------------------------------------------------------------
- - From advisory:
"PPTP packet header contain 16bit length which specifies the full size of
the packet:
bytes_this = read(clientFd, packet + bytes_ttl, 2 - bytes_ttl);
// ...
bytes_ttl += bytes_this;
// ...
length = htons(*(u_int16_t *) packet);
if (length > PPTP_MAX_CTRL_PCKT_SIZE) {
// abort
}
Looks good so far, except:
bytes_this = read(clientFd, packet + bytes_ttl, length - bytes_ttl);
If given length was 0 or 1, the "length - bytes_ttl" result is -1 or -2,
which means that it reads unlimited amount of data from client into
"packet", which is a buffer located in stack.
The exploitability only depends on if libc allows the size parameter to be
larger than SSIZE_MAX bytes. GLIBC does, Solaris and *BSD don't."
Read the full advisory at:
http://marc.theaimsgroup.com/?l=bugtraq&m=104994375011406&w=2
SOLUTION
It is recommended that all Gentoo Linux users who are running
net-dialup/pptpd upgrade to pptpd-1.1.3.20030409 as follows:
emerge sync
emerge pptpd
emerge clean
- - - ---------------------------------------------------------------------
[email protected] - GnuPG key is available at http://cvs.gentoo.org/~aliz
- - - ---------------------------------------------------------------------
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.1 (GNU/Linux)
iD8DBQE+rPLrfT7nyhUpoZMRAjKOAJ9Ztnuvpr6luyiBl+CD2PzlOHBKKgCfWlT+
A6YGzE9MLzvOleHHY9u1ivA=
=hi8d
-----END PGP SIGNATURE-----