Bug 1360257

Summary: Fix potential null pointer dereference in expr_set_type()
Product: Red Hat Enterprise Linux 7 Reporter: Phil Sutter <psutter>
Component: nftablesAssignee: Timothy Redaelli <tredaelli>
Status: CLOSED ERRATA QA Contact: Tomas Dolezal <todoleza>
Severity: low Docs Contact:
Priority: low    
Version: 7.3CC: mleitner, psutter, rkhan, sukulkar, todoleza, tredaelli
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: nftables-0.6-3.el7 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-08-01 18:56:07 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Phil Sutter 2016-07-26 11:18:12 UTC
As reported by covscan:

In src/netlink_delinearize.c, netlink_parse_ct_stmt() may assign NULL to 'expr', which is then passed as paramter to expr_set_type() which unconditionally dereferences it.

Comment 1 Tomas Dolezal 2016-07-29 11:31:04 UTC
Hello Phil,
can this covscan revealed issue be merged with bug 1360240? It does not make much sense to me to have two reports for covscan issues fixed separately.

Comment 2 Phil Sutter 2016-07-29 11:47:58 UTC
Hi Tomas,

(In reply to Tomas Dolezal from comment #1)
> Hello Phil,
> can this covscan revealed issue be merged with bug 1360240? It does not make
> much sense to me to have two reports for covscan issues fixed separately.

I have created multiple tickets for covscan reported issues. My motivation behind this is since they are unrelated problems, they require separate fixes. In addition to that, I am not overly sure each of them is really valid, so some of the fixes might be rejected upstream.

Of course all this can be handled from a single ticket as well, but unless this leads to inconvenience for QA I would rather keep them separate.

Thanks, Phil

Comment 3 Tomas Dolezal 2016-07-29 12:07:59 UTC
Thank you for explaining the motivation Phil, it's useful to know it.
Let's keep the bugs separate then.

Comment 5 Phil Sutter 2016-09-08 13:29:42 UTC
The following fix from upstream should be backported:

commit d975ab412c33ddce2c39e0e86f87085d13b1aeca
Author: Pablo Neira Ayuso <pablo>
Date:   Mon Sep 5 18:52:43 2016 +0200

    netlink_delinearize: Avoid potential null pointer deref
    
    Phil Sutter says:
    
    As netlink_get_register() may return NULL, we must not pass the returned
    data unchecked to expr_set_type() as that will dereference it. Since the
    parser has failed at that point anyway, by returning early we can skip
    the useless statement allocation that follows in
    netlink_parse_ct_stmt().
    
    Signed-off-by: Pablo Neira Ayuso <pablo>
    Acked-by: Phil Sutter <phil>

Comment 8 Timothy Redaelli 2017-02-24 10:36:05 UTC
d975ab412c33ddce2c39e0e86f87085d13b1aeca partially backported

Comment 11 errata-xmlrpc 2017-08-01 18:56:07 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2017:2047