lkml.org 
[lkml]   [2018]   [Feb]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.14 018/195] dccp: CVE-2017-8824: use-after-free in DCCP code
    Date
    4.14-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Mohamed Ghannam <simo.ghannam@gmail.com>

    commit 69c64866ce072dea1d1e59a0d61e0f66c0dffb76 upstream.

    Whenever the sock object is in DCCP_CLOSED state,
    dccp_disconnect() must free dccps_hc_tx_ccid and
    dccps_hc_rx_ccid and set to NULL.

    Signed-off-by: Mohamed Ghannam <simo.ghannam@gmail.com>
    Reviewed-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    net/dccp/proto.c | 5 +++++
    1 file changed, 5 insertions(+)

    --- a/net/dccp/proto.c
    +++ b/net/dccp/proto.c
    @@ -259,6 +259,7 @@ int dccp_disconnect(struct sock *sk, int
    {
    struct inet_connection_sock *icsk = inet_csk(sk);
    struct inet_sock *inet = inet_sk(sk);
    + struct dccp_sock *dp = dccp_sk(sk);
    int err = 0;
    const int old_state = sk->sk_state;

    @@ -278,6 +279,10 @@ int dccp_disconnect(struct sock *sk, int
    sk->sk_err = ECONNRESET;

    dccp_clear_xmit_timers(sk);
    + ccid_hc_rx_delete(dp->dccps_hc_rx_ccid, sk);
    + ccid_hc_tx_delete(dp->dccps_hc_tx_ccid, sk);
    + dp->dccps_hc_rx_ccid = NULL;
    + dp->dccps_hc_tx_ccid = NULL;

    __skb_queue_purge(&sk->sk_receive_queue);
    __skb_queue_purge(&sk->sk_write_queue);

    \
     
     \ /
      Last update: 2018-02-15 18:56    [W:4.192 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site