Bug 1171182 (CVE-2014-9140) - CVE-2014-9140 tcpdump: incorrect handling of PPP packets printing
Summary: CVE-2014-9140 tcpdump: incorrect handling of PPP packets printing
Keywords:
Status: CLOSED WONTFIX
Alias: CVE-2014-9140
Product: Security Response
Classification: Other
Component: vulnerability
Version: unspecified
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Red Hat Product Security
QA Contact:
URL:
Whiteboard:
Depends On: 1171184
Blocks: 1165164
TreeView+ depends on / blocked
 
Reported: 2014-12-05 15:45 UTC by Martin Prpič
Modified: 2021-06-14 15:04 UTC (History)
5 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
: 1176690 (view as bug list)
Environment:
Last Closed: 2021-06-14 15:04:08 UTC


Attachments (Terms of Use)

Description Martin Prpič 2014-12-05 15:45:16 UTC
It was discovered that tcpdump incorrectly handled the printing of PPP packets. A remote attacker could use this flaw to cause tcpdump to crash, resulting in a denial of service, or possibly execute arbitrary code.

Upstream patch:

https://github.com/the-tcpdump-group/tcpdump/commit/0f95d441e4b5d7512cc5c326c8668a120e048eda

Comment 1 Martin Prpič 2014-12-05 15:50:43 UTC
Created tcpdump tracking bugs for this issue:

Affects: fedora-all [bug 1171184]

Comment 2 Fedora Update System 2014-12-18 06:04:09 UTC
tcpdump-4.5.1-3.fc20 has been pushed to the Fedora 20 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 3 Fedora Update System 2015-01-07 23:52:02 UTC
tcpdump-4.6.2-3.fc21 has been pushed to the Fedora 21 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 5 Siddharth Sharma 2015-01-29 06:19:45 UTC
Analysis
========

In function ppp_hdlc()

1. It declares u_char *b but at line 
    
   b = (uint8_t *)malloc(length);

it typecast into uint and assigns to variable b which is declared as u_char


2. for (s = (u_char *)p, t = b, i = length; i > 0; i--) {
 		c = *s++;
                if (c == 0x7d) {
                      if (i > 1) {
   here in code there is no checking for variable 's' if it contains anything      further or not, if 's' does not contain anything then it should break here to have proper bounds checking.
                              i--;
                              c = *s++ ^ 0x20; 
                      } else
                *t++ = c;
   }

Remote attacker would only be able to DOS the application, RCE (Remote Code Execution) is unlikely to happen. So the impact of this is considered to be moderate only.

Comment 6 Siddharth Sharma 2015-04-30 07:53:48 UTC
Statement:

Red Hat Product Security has rated this issue as having moderate security impact, a future update may address this flaw in tcpdump.

Comment 7 Product Security DevOps Team 2021-06-14 15:04:08 UTC
This bug is now closed. Further updates for individual products will be reflected on the CVE page(s):

https://access.redhat.com/security/cve/cve-2014-9140


Note You need to log in before you can comment on or make changes to this bug.