Commit Graph

61 Commits

Author SHA1 Message Date
mrg
4f90b9c42a - pass correct size of buffer to snprintf() to avoid potential truncation 2019-02-05 07:27:46 +00:00
christos
887e5ada43 make pcap_debug weak. 2018-12-24 02:39:12 +00:00
christos
72c96ff366 merge changes. 2017-09-08 14:01:12 +00:00
christos
9460fd8ab1 Import tcpdump 4.9.2 2017-09-08 13:48:22 +00:00
riastradh
ef315f7931 Remove MKCRYPTO option.
Originally, MKCRYPTO was introduced because the United States
classified cryptography as a munition and restricted its export.  The
export controls were substantially relaxed fifteen years ago, and are
essentially irrelevant for software with published source code.

In the intervening time, nobody bothered to remove the option after
its motivation -- the US export restriction -- was eliminated.  I'm
not aware of any other operating system that has a similar option; I
expect it is mainly out of apathy for churn that we still have it.
Today, cryptography is an essential part of modern computing -- you
can't use the internet responsibly without cryptography.

The position of the TNF board of directors is that TNF makes no
representation that MKCRYPTO=no satisfies any country's cryptography
regulations.

My personal position is that the availability of cryptography is a
basic human right; that any local laws restricting it to a privileged
few are fundamentally immoral; and that it is wrong for developers to
spend effort crippling cryptography to work around such laws.

As proposed on tech-crypto, tech-security, and tech-userlevel to no
objections:

https://mail-index.netbsd.org/tech-crypto/2017/05/06/msg000719.html
https://mail-index.netbsd.org/tech-security/2017/05/06/msg000928.html
https://mail-index.netbsd.org/tech-userlevel/2017/05/06/msg010547.html

P.S.  Reviewing all the uses of MKCRYPTO in src revealed a lot of
*bad* crypto that was conditional on it, e.g. DES in telnet...  That
should probably be removed too, but on the grounds that it is bad,
not on the grounds that it is (nominally) crypto.
2017-05-21 15:28:36 +00:00
spz
dc860a366c merge for tcpdump 4.9.0 and document 2017-02-05 04:05:05 +00:00
spz
671dd9fa89 Update of tcpdump to version 4.9.0
This update fixes the following vulnerabilities:
CVE-2016-7922 CVE-2016-7923 CVE-2016-7924 CVE-2016-7925 CVE-2016-7926
CVE-2016-7927 CVE-2016-7928 CVE-2016-7929 CVE-2016-7930 CVE-2016-7931
CVE-2016-7932 CVE-2016-7933 CVE-2016-7934 CVE-2016-7935 CVE-2016-7936
CVE-2016-7937 CVE-2016-7938 CVE-2016-7939 CVE-2016-7940 CVE-2016-7973
CVE-2016-7974 CVE-2016-7975 CVE-2016-7983 CVE-2016-7984 CVE-2016-7985
CVE-2016-7986 CVE-2016-7992 CVE-2016-7993 CVE-2016-8574 CVE-2016-8575
CVE-2017-5202 CVE-2017-5203 CVE-2017-5204 CVE-2017-5205 CVE-2017-5341
CVE-2017-5342 CVE-2017-5482 CVE-2017-5483 CVE-2017-5484 CVE-2017-5485
CVE-2017-5486 (all buffer overflows in various parts of tcpdump)

Upstream Changelog:
    General updates:
    Improve separation frontend/backend (tcpdump/libnetdissect)
    Don't require IPv6 library support in order to support IPv6 addresses
    Introduce data types to use for integral values in packet structures
    Fix display of timestamps with -tt, -ttt and -ttttt options
    Fix some heap overflows found with American Fuzzy Lop by Hanno Boeck and others
        (More information in the log with CVE-2016-* and CVE-2017-*)
    Change the way protocols print link-layer addresses (Fix heap overflows
        in CALM-FAST and GeoNetworking printers)
    Pass correct caplen value to ether_print() and some other functions
    Fix lookup_nsap() to match what isonsap_string() expects
    Clean up relative time stamp printing (Fix an array overflow)
    Fix some alignment issues with GCC on Solaris 10 SPARC
    Add some ND_TTEST_/ND_TCHECK_ macros to simplify writing bounds checks
    Add a fn_printztn() which returns the number of bytes processed
    Add nd_init() and nd_cleanup() functions. Improve libsmi support
    Add CONTRIBUTING file
    Add a summary comment in all printers
    Compile with more warning options in devel mode if supported (-Wcast-qual, ...)
    Fix some leaks found by Valgrind/Memcheck
    Fix a bunch of de-constifications
    Squelch some Coverity warnings and some compiler warnings
    Update Coverity and Travis-CI setup
    Update Visual Studio files

    Frontend:
    Fix capsicum support to work with zerocopy buffers in bpf
    Try opening interfaces by name first, then by name-as-index
    Work around pcap_create() failures fetching time stamp type lists
    Fix a segmentation fault with 'tcpdump -J'
    Improve addrtostr6() bounds checking
    Add exit_tcpdump() function
    Don't drop CAP_SYS_CHROOT before chrooting
    Fixes issue where statistics not reported when -G and -W options used

    New printers supporting:
    Generic Protocol Extension for VXLAN (VXLAN-GPE)
    Home Networking Control Protocol (HNCP), RFCs 7787 and 7788
    Locator/Identifier Separation Protocol (LISP), type 3 and type 4 packets
    Marvell Extended Distributed Switch Architecture header (MEDSA)
    Network Service Header (NSH)
    REdis Serialization Protocol (RESP)

    Updated printers:
    802.11: Beginnings of 11ac radiotap support
    802.11: Check the Protected bit for management frames
    802.11: Do bounds checking on last_presentp before dereferencing it (Fix a heap overflow)
    802.11: Fix the radiotap printer to handle the special bits correctly
    802.11: If we have the MCS field, it's 11n
    802.11: Only print unknown frame type or subtype messages once
    802.11: Radiotap dBm values get printed as dB; Update a test output accordingly
    802.11: Source and destination addresses were backwards
    AH: Add a bounds check
    AH: Report to our caller that dissection failed if a bounds check fails
    AP1394: Print src > dst, not dst > src
    ARP: Don't assume the target hardware address is <= 6 octets long (Fix a heap overflow)
    ATALK: Add bounds and length checks (Fix heap overflows)
    ATM: Add some bounds checks (Fix a heap overflow)
    ATM: Fix an incorrect bounds check
    BFD: Update specification from draft to RFC 5880
    BFD: Update to print optional authentication field
    BGP: Add decoding of ADD-PATH capability
    BGP: Add support for the AIGP attribute (RFC7311)
    BGP: Print LARGE_COMMUNITY Path Attribute
    BGP: Update BGP numbers from IANA; Print minor values for FSM notification
    BOOTP: Add a bounds check
    Babel: Add decoder for source-specific extension
    CDP: Filter out non-printable characters
    CFM: Fixes to match the IEEE standard, additional bounds and length checks
    CSLIP: Add more bounds checks (Fix a heap overflow)
    ClassicalIPoATM: Add a bounds check on LLC+SNAP header (Fix a heap overflow)
    DHCP: Fix MUDURL and TZ options
    DHCPv6: Process MUDURL and TZ options
    DHCPv6: Update Status Codes with RFCs/IANA names
    DNS: Represent the "DNSSEC OK" bit as "DO" instead of "OK". Add a test case
    DTP: Improve packet integrity checks
    EGP: Fix bounds checks
    ESP: Don't use OpenSSL_add_all_algorithms() in OpenSSL 1.1.0 or later
    ESP: Handle OpenSSL 1.1.x
    Ethernet: Add some bounds checking before calling isoclns_print (Fix a heap overflow)
    Ethernet: Print the Length/Type field as length when needed
    FDDI: Fix -e output for FDDI
    FR: Add some packet-length checks and improve Q.933 printing (Fix heap overflows)
    GRE: Add some bounds checks (Fix heap overflows)
    Geneve: Fix error message with invalid option length; Update list option classes
    HNCP: Fix incorrect time interval format. Fix handling of IPv4 prefixes
    ICMP6: Fetch a 32-bit big-endian quantity with EXTRACT_32BITS()
    ICMP6: dagid is always an IPv6 address, not an opaque 128-bit string
    IGMP: Add a length check
    IP: Add a bounds check (Fix a heap overflow)
    IP: Check before fetching the protocol version (Fix a heap overflow)
    IP: Don't try to dissect if IP version != 4 (Fix a heap overflow)
    IP: Stop processing IPPROTO_ values once we hit IPPROTO_IPCOMP
    IPComp: Check whether we have the CPI before we fetch it (Fix a heap overflow)
    IPoFC: Fix -e output (IP-over-Fibre Channel)
    IPv6: Don't overwrite the destination IPv6 address for routing headers
    IPv6: Fix header printing
    IPv6: Stop processing IPPROTO_ values once we hit IPPROTO_IPCOMP
    ISAKMP: Clean up parsing of IKEv2 Security Associations
    ISOCLNS/IS-IS: Add support for Purge Originator Identifier (RFC6232) and test cases
    ISOCLNS/IS-IS: Don't overwrite packet data when checking the signature
    ISOCLNS/IS-IS: Filter out non-printable characters
    ISOCLNS/IS-IS: Fix segmentation faults
    ISOCLNS/IS-IS: Have signature_verify() do the copying and clearing
    ISOCLNS: Add some bounds checks
    Juniper: Make sure a Juniper header TLV isn't bigger than what's left in the packet (Fix a heap overflow)
    LLC/SNAP: With -e, print the LLC header before the SNAP header; without it, cut the SNAP header
    LLC: Add a bounds check (Fix a heap overflow)
    LLC: Clean up printing of LLC packets
    LLC: Fix the printing of RFC 948-style IP packets
    LLC: Skip the LLC and SNAP headers with -x for 802.11 and some other protocols
    LLDP: Implement IANA OUI and LLDP MUD option
    MPLS LSP ping: Update printing for RFC 4379, bug fixes, more bounds checks
    MPLS: "length" is now the *remaining* packet length
    MPLS: Add bounds and length checks (Fix a heap overflow)
    NFS: Add a test that makes unaligned accesses
    NFS: Don't assume the ONC RPC header is nicely aligned
    NFS: Don't overflow the Opaque_Handle buffer (Fix a segmentation fault)
    NFS: Don't run past the end of an NFSv3 file handle
    OLSR: Add a test to cover a HNA sgw case
    OLSR: Fix 'Advertised networks' count
    OLSR: Fix printing of smart-gateway HNAs in IPv4
    OSPF: Add a bounds check for the Hello packet options
    OSPF: Do more bounds checking
    OSPF: Fix a segmentation fault
    OSPF: Fix printing 'ospf_topology_values' default
    OTV: Add missing bounds checks
    PGM: Print the formatted IP address, not the raw binary address, as a string
    PIM: Add some bounds checking (Fix a heap overflow)
    PIMv2: Fix checksumming of Register messages
    PPI: Pass an adjusted struct pcap_pkthdr to the sub-printer
    PPP: Add some bounds checks (Fix a heap overflow)
    PPP: Report invalid PAP AACK/ANAK packets
    Q.933: Add a missing bounds check
    RADIUS: Add Value 13 "VLAN" to Tunnel-Type attribute
    RADIUS: Filter out non-printable characters
    RADIUS: Translate UDP/1700 as RADIUS
    RESP: Do better checking of RESP packets
    RPKI-RTR: Add a return value check for "fn_printn" call
    RPKI-RTR: Remove printing when truncated condition already detected
    RPL: Fix 'Consistency Check' control code
    RPL: Fix suboption print
    RSVP: An INTEGRITY object in a submessage covers only the submessage
    RSVP: Fix an infinite loop; Add bounds and length checks
    RSVP: Fix some if statements missing brackets
    RSVP: Have signature_verify() do the copying and clearing
    RTCP: Add some bounds checks
    RTP: Add some bounds checks, fix two segmentation faults
    SCTP: Do more bounds checking
    SFLOW: Fix bounds checking
    SLOW: Fix bugs, add checks
    SMB: Before fetching the flags2 field, make sure we have it
    SMB: Do bounds checks on NBNS resource types and resource data lengths
    SNMP: Clean up the "have libsmi but no modules loaded" case
    SNMP: Clean up the object abbreviation list and fix the code to match them
    SNMP: Do bounds checks when printing character and octet strings
    SNMP: Improve ASN.1 bounds checks
    SNMP: More bounds and length checks
    STP: Add a bunch of bounds checks, and fix some printing (Fix heap overflows)
    STP: Filter out non-printable characters
    TCP: Add bounds and length checks for packets with TCP option 20
    TCP: Correct TCP option Kind value for TCP Auth and add SCPS-TP
    TCP: Fix two bounds checks (Fix heap overflows)
    TCP: Make sure we have the data offset field before fetching it (Fix a heap overflow)
    TCP: Put TCP-AO option decoding right
    TFTP: Don't use strchr() to scan packet data (Fix a heap overflow)
    Telnet: Add some bounds checks
    TokenRing: Fix -e output
    UDLD: Fix an infinite loop
    UDP: Add a bounds check (Fix a heap overflow)
    UDP: Check against the packet length first
    UDP: Don't do the DDP-over-UDP heuristic check up front
    VAT: Add some bounds checks
    VTP: Add a test on Mgmt Domain Name length
    VTP: Add bounds checks and filter out non-printable characters
    VXLAN: Add a bound check and a test case
    ZeroMQ: Fix an infinite loop
2017-02-05 03:06:04 +00:00
sevan
cc576e1d8e Update supporting files for components which rely on autoconf to allow systems
introducing since release of software to be recognised. This should hopefully
allow the builds to progress a littles further on systems such as the POWER8
which features a little endian 64-bit PowerPC CPU identified as ppc64le.
2017-02-01 09:26:39 +00:00
christos
3bf9bbf14a broken test. 2017-01-30 13:27:26 +00:00
christos
26430ba1a8 protect variable with the macro that uses it. 2017-01-30 13:15:43 +00:00
christos
00db07f741 - don't use their ntoh{l,s}/hton{l,s} implementation
- fix their ntohl/htonl implementations to use unsigned int instead of
  unsigned long so they work on _LP64.
2017-01-25 14:46:16 +00:00
martin
b0e7a0cd0a Add missing argument 2017-01-25 08:20:15 +00:00
martin
7b256f0e16 toupper() takes an unsigned char. 2017-01-25 08:14:07 +00:00
christos
fdccd7e474 merge conflicts. 2017-01-24 23:29:13 +00:00
christos
784088dff9 Tuesday October 25, 2016 mcr@sandelman.ca
Summary for 4.8.1 tcpdump release
	Fix "-x" for Apple PKTAP and PPI packets
        Use PRIx64 to print a 64-bit number in hex.
        Printer for HNCP (RFCs 7787 and 7788).
        dagid is always an IPv6 address, not an opaque 128-bit string, and other fixes to RPL printer.
        RSVP: Add bounds and length checks
        OSPF: Do more bounds checking
        Handle OpenSSL 1.1.x.
        Initial support for the REdis Serialization Protocol known as RESP.
        Add printing function for Generic Protocol Extension for VXLAN
            draft-ietf-nvo3-vxlan-gpe-01
        Network Service Header: draft-ietf-sfc-nsh-01
        Don't recompile the filter if the new file has the same DLT.
        Pass an adjusted struct pcap_pkthdr to the sub-printer.
        Add three test cases for already fixed CVEs
           CVE-2014-8767: OLSR
           CVE-2014-8768: Geonet
           CVE-2014-8769: AODV
        Don't do the DDP-over-UDP heuristic first: GitHub issue #499.
        Use the new debugging routines in libpcap.
        Harmonize TCP source or destination ports tests with UDP ones
        Introduce data types to use for integral values in packet structures.
        RSVP: Fix an infinite loop
        Support of Type 3 and Type 4 LISP packets.
        Don't require IPv6 library support in order to support IPv6 addresses.
        Many many changes to support libnetdissect usage.
        Add a test that makes unaligned accesses: GitHub issue #478.
        add a DNSSEC test case: GH #445 and GH #467.
        BGP: add decoding of ADD-PATH capability
        fixes to LLC header printing, and RFC948-style IP packets

Friday April 10, 2015 guy@alum.mit.edu
  Summary for 4.7.4 tcpdump release
	RPKI to Router Protocol: Fix Segmentation Faults and other problems
	RPKI to Router Protocol: print strings with fn_printn()
	wb: fix some bounds checks
2017-01-24 21:33:37 +00:00
joerg
f9c2736326 Disable a couple of warnings until further investigation. 2017-01-11 12:19:43 +00:00
riastradh
0ab10b7e19 print-ip6.c is needed even with MKINET6=no.
Provides print_ip6 used by various other objects, with different
definitions depending on #ifdef INET6.
2016-12-02 02:14:03 +00:00
christos
4855893e61 Fix MKCRYPTO=no build 2016-06-29 19:45:14 +00:00
christos
bab08dd002 don't include <sys/mbuf.h> 2016-01-23 19:08:02 +00:00
christos
714768c886 We stuck the generation number eons ago before the inode, so we broke
inode printing in nfs file handles.
2015-12-25 04:50:21 +00:00
nonaka
de17d00067 PR/50248: re-apply src/external/bsd/tcpdump/dist/tcpdump.c rev.1.8.
> When running as root and wanting to write a file and not having CAPNG, don't
> drop privs, because we cannot open the file if we drop privs.
2015-09-17 14:03:10 +00:00
christos
412bc8d494 Apply commit fb6e5377f392555b8c725f66b8b701f0061a3695:
-Fix/add ND_TCHECK2 tests,
-Fix a buffer overflow,
-Remove a debug printf
2015-04-04 18:53:51 +00:00
christos
ba2ff12108 merge conflicts 2015-03-31 21:59:35 +00:00
christos
3d25ea14d9 Monday March. 11, 2015 guy@alum.mit.edu
Summary for 4.7.3 tcpdump release
	Capsicum fixes for FreeBSD 10

Monday March. 10, 2015 guy@alum.mit.edu
  Summary for 4.7.2 tcpdump release
	DCCP: update Packet Types with RFC4340/IANA names
        fixes for CVE-2015-0261: IPv6 mobility header check issue
        fixes for CVE-2015-2153, 2154, 2155: kday packets

Friday Nov. 12, 2014 guy@alum.mit.edu
  Summary for 4.7.0 tcpdump release
        changes to hex printing of CDP packets
	Fix PPI printing
	Radius: update Packet Type Codes and Attribute Types with RFC/IANA names
	Add a routine to print "text protocols", and add FTP/HTTP/SMTP/RTSP support.
	improvements to telnet printer, even if not -v
	omit length for bcp, print-tcp uses it
	formatting fixes for a bunch of protocols
	new bounds checks for a number of protocols
	split netflow 1,6, and 6 dissector up.
	added geneve dissector
        CVE-2014-9140 PPP dissector fixed.
2015-03-31 21:45:44 +00:00
prlw1
f44489f8dc MKINET6=no build fixes
http://mail-index.netbsd.org/tech-net/2014/12/13/msg004898.html
2014-12-20 13:15:48 +00:00
christos
9010cfb72a kill the dropped privs info message 2014-11-21 13:31:19 +00:00
christos
9a89a9bc17 l in ntohl is not long! 2014-11-20 04:51:18 +00:00
christos
b3a00663c5 merge conflicts 2014-11-20 03:05:03 +00:00
christos
c47fd3787d Import tcpdump 4.6.2 2014-11-20 01:30:52 +00:00
wiz
b8a1052d67 Add missing TP so that -a is not hidden in the -A description.
From Anon Ymous.
2014-08-13 13:53:14 +00:00
christos
21314e18fb When running as root and wanting to write a file and not having CAPNG, don't
drop privs, because we cannot open the file if we drop privs.
2014-05-13 20:29:59 +00:00
christos
870189d292 resolve conflicts. 2013-12-31 17:33:30 +00:00
christos
9d3749d780 update for 4.5.1 2013-12-31 17:33:11 +00:00
christos
026d728553 Import tcpdump 4.5.1 2013-12-31 17:13:59 +00:00
christos
bccafde1a7 remove unused variables 2013-10-20 02:58:34 +00:00
christos
aeccce4edc fix type punned issue 2013-10-20 02:58:24 +00:00
joerg
3657cb7f1d Update LLVM/Clang snapshot to r191105. This brings in a better detection
of unused static variables and functions. Disable this for some external
code and for ioconf.c in the kernel.
2013-09-21 22:28:12 +00:00
christos
8846758c2d remove debugging accidentally committed. 2013-04-13 02:08:59 +00:00
christos
c66d06cb46 move droproot after we have dealt with input and output files. 2013-04-12 23:51:50 +00:00
christos
d5063e771b - the initgroups function needs to be able to do name to gid translations,
so do it before the chroot, otherwise we lose /etc/nsswitch.conf and
  /etc/group
- run res_init() so that we prime and initialize the resolver before the
  chroot, since our chroot lacks /etc/{{nsswitch,resolve}.conf,hosts}
  this is not portable behavior, but it is a lot better than populating
  the chroot with crap.
2013-04-07 19:17:11 +00:00
christos
0e9868ba9d merge conflicts 2013-04-06 19:33:07 +00:00
christos
9546e36db8 import tcpdump 4.3.0 2013-04-06 17:57:45 +00:00
christos
201c7d20ac PR/45841: Henning Petersen: One sizeof is enough. 2012-01-16 17:34:18 +00:00
christos
a848253371 PR/45747: Henning Petersen: Fix icmp6 verbose printing. 2011-12-27 15:12:45 +00:00
enami
6c9e68ac64 Replace section number with actual one as we did in see also list. 2011-11-17 02:41:55 +00:00
christos
6ee25ca9b9 use cleantags, instead of home grown copy. 2011-10-08 19:28:38 +00:00
christos
9ad467753c fix strict aliasing issues. 2011-08-17 10:48:02 +00:00
mrg
c111245a78 apply some -Wno-error and/or -fno-strict-aliasing.
all of this should be looked at closer, but some of them are not
very trivial.
2011-06-22 02:49:41 +00:00
joerg
a216da57a6 Default to -Wno-sign-compare -Wno-pointer-sign for clang.
Push -Wno-array-bounds down to the cases that depend on it.
Selectively disable warnings for 3rd party software or non-trivial
issues to be reviewed later to get clang -Werror to build most of the
tree.
2011-05-26 12:56:24 +00:00
martin
518b4814dd Hint from dsl: make sure to have the /etc/protocols file already open
before doing a chroot() if run as root. Easily done by a setprotoent(1)
call. This is a better (less intrusive) fix for PR bin/44721.
2011-04-17 11:45:40 +00:00