Bug 1165161 (CVE-2014-8768)
Summary: | CVE-2014-8768 tcpdump: denial of service in verbose mode using malformed Geonet payload | ||||||
---|---|---|---|---|---|---|---|
Product: | [Other] Security Response | Reporter: | Vasyl Kaigorodov <vkaigoro> | ||||
Component: | vulnerability | Assignee: | Red Hat Product Security <security-response-team> | ||||
Status: | CLOSED ERRATA | QA Contact: | |||||
Severity: | low | Docs Contact: | |||||
Priority: | low | ||||||
Version: | unspecified | CC: | athmanem, carnil, msekleta, sardella, sisharma, thozza | ||||
Target Milestone: | --- | Keywords: | Security | ||||
Target Release: | --- | ||||||
Hardware: | All | ||||||
OS: | Linux | ||||||
Whiteboard: | |||||||
Fixed In Version: | tcpdump 4.7.0 | Doc Type: | Bug Fix | ||||
Doc Text: | Story Points: | --- | |||||
Clone Of: | Environment: | ||||||
Last Closed: | 2018-03-22 02:24:44 UTC | Type: | --- | ||||
Regression: | --- | Mount Type: | --- | ||||
Documentation: | --- | CRM: | |||||
Verified Versions: | Category: | --- | |||||
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||
Cloudforms Team: | --- | Target Upstream Version: | |||||
Embargoed: | |||||||
Bug Depends On: | 1165166 | ||||||
Bug Blocks: | 1165164 | ||||||
Attachments: |
|
Description
Vasyl Kaigorodov
2014-11-18 13:23:15 UTC
Created tcpdump tracking bugs for this issue: Affects: fedora-all [bug 1165166] Created attachment 961283 [details]
Fix_uncheck_length_patch_from_debian_bug
Analysis ======== In function geonet_print(netdissect_options *ndo, const u_char *eth, const u_char *bp, u_int length) size of the argument "length" is not checked before passing it to default_print() function which calls other functions as ndo_default_print()->hex_and_ascii_print() ->hex_and_ascii_print_with_offset(). In function hex_and_ascii_print_with_offset() it calculates nshorts = length / sizeof(u_short); and then while loop iterates depending on value of nshorts which is dependednt on value of argument "length" while (--nshorts >= 0) { s1 = *cp++; s2 = *cp++; (void)snprintf(hsp, sizeof(hexstuff) - (hsp - hexstuff), " %02x%02x", s1, s2); hsp += HEXDUMP_HEXSTUFF_PER_SHORT; *(asp++) = (isgraph(s1) ? s1 : '.'); *(asp++) = (isgraph(s2) ? s2 : '.'); i++; if (i >= HEXDUMP_SHORTS_PER_LINE) { *hsp = *asp = '\0'; (void)printf("%s0x%04x: %-*s %s", ident, oset, HEXDUMP_HEXSTUFF_PER_LINE, hexstuff, asciistuff); i = 0; hsp = hexstuff; asp = asciistuff; oset += HEXDUMP_BYTES_PER_LINE; } having bigger value of length causes crash. tcpdump-4.5.1-2.fc20 has been pushed to the Fedora 20 stable repository. If problems still persist, please make note of it in this bug report. tcpdump-4.6.2-2.fc21 has been pushed to the Fedora 21 stable repository. If problems still persist, please make note of it in this bug report. Statement: (none) |