Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 23 Aug 1999 11:21:25 -0400 (EDT)
From:      yenming@andrew.cmu.edu
To:        FreeBSD-gnats-submit@freebsd.org
Subject:   ports/13334: [ports] net/argus-1.7-beta-1e
Message-ID:  <199908231521.LAA05809@pc42235.ini.cmu.edu>

next in thread | raw e-mail | index | archive | help

>Number:         13334
>Category:       ports
>Synopsis:       remote scanning can cause argus to dump core and exit.
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-ports
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Mon Aug 23 08:30:01 PDT 1999
>Closed-Date:
>Last-Modified:
>Originator:     Yen-Ming Chen
>Release:        FreeBSD 3.2-STABLE i386
>Organization:
Information Networking Institute, CMU
>Environment:

	

>Description:

A remote TCP FIN scanning with fragment IP would cause argus to dump core file and exit with
signal 11 (segmentation fault). Which means an intruder can first scan a host running argus to
disable its ability on network monitoring, then continue other kinds of attack in plan.

>How-To-Repeat:

run argus as:
argus -d 30 -w /some/log/file &

run nmap from another machine as:
nmap -vv -sF -f <target_ip>

then watch the system log file (messages)

>Fix:
	
According to gdb and core file, the problem is in line 179 of cons_ip.c. The original gdb
log file is included, no known patches yet:

This GDB was configured as "i386-unknown-freebsd"...
Core was generated by `argus.debug'.
Program terminated with signal 11, Segmentation fault.
Reading symbols from /usr/lib/libpcap.so.2...done.
Reading symbols from /usr/local/lib/libwrap.so.7...done.
Reading symbols from /usr/lib/libc.so.3...done.
Reading symbols from /usr/libexec/ld-elf.so.1...done.
#0  argus_ip_handler (ep=0x805678a, ip=0x8056798, length=46, tvp=0xbfbfdaac)
    at ./cons_ip.c:179
179                    obj->ip_cb.status |= FRAGMENTS;
(gdb) bt
#0  argus_ip_handler (ep=0x805678a, ip=0x8056798, length=46, tvp=0xbfbfdaac)
    at ./cons_ip.c:179
#1  0x804ce4c in cons_ether_packet (user=0x0, h=0x8056778, p=0x805678a "")
    at ./cons_ether.c:114
#2  0x10074108 in pcap_read () from /usr/lib/libpcap.so.2
#3  0x804dbc4 in argus_loop (p=0x8053000, 
    callback=0x804cdb8 <cons_ether_packet>) at ./argus_util.c:135
#4  0x80495ec in main (argc=5, argv=0xbfbfdb94) at ./argus.c:157
#5  0x804924d in _start ()
(gdb) l
174              }
175              if (ip->ip_off & IP_MF) {
176                 if (frag = cons_frag (ep, ip, len, tvp)) {
177                    frag->obj = (struct OBJECT *) obj;
178                    frag->frag_cb.status |= FRAG_OUT_OF_ORDER;
179                    obj->ip_cb.status |= FRAGMENTS;
180                 }
181              }
182           } else {
183              if (frag = cons_frag (ep, ip, len, tvp)) {



>Release-Note:
>Audit-Trail:
>Unformatted:


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-ports" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199908231521.LAA05809>