Title: cfingerd Buffer Oveflow Vulnerability
Severity: CRITICAL
Description:
There is a remotely exploitable buffer overflow in cfingerd 1.3.2, which ships with Debian GNU/Linux. The offending code is as follows:
int search_fake(char *username)
{
char parsed[80];
bzero(parsed, 80);
sscanf(username, "%[^.].%*[^\r\n]\r\n", parsed);
...
called from process_username(), that is called from main:
int main(int argc, char *argv[])
{
char username[100], syslog_str[200];
...
if (!emulated) {
if (!fgets(username, sizeof(username), stdin)) {
...
/* Check the finger information coming in and return its type */
un_type = process_username(username);
search_illegal() is called before search_fake(), so only legal characters [A-z0-9] can be used to exploit this vulnerability. The consequence is a remote root compromise.
Affected Products:
- Debian Linux 1.2.0
- Debian Linux 1.3.0
- Debian Linux 1.3.1
- Debian Linux 2.0.0
- Debian Linux 2.0.0r5
References:
- Debian GNU/Linux: Debian cfingerd Package Reference
Juniper Networks provides this content via a wide variety of sources and production methods. If notified of errors or omissions in the content of this page, Juniper Networks, at its discretion, will modify or remove the page or leave the content as is, depending on various factors including but not limited to the reputation and authority of the party providing the notification. Please use the contact information displayed elsewhere on this page to report any errors or omissions regarding the content on this page.