• P
    selinux: handle TCP SYN-ACK packets correctly in selinux_ip_postroute() · 7f721643
    Paul Moore 提交于
    In selinux_ip_postroute() we perform access checks based on the
    packet's security label.  For locally generated traffic we get the
    packet's security label from the associated socket; this works in all
    cases except for TCP SYN-ACK packets.  In the case of SYN-ACK packet's
    the correct security label is stored in the connection's request_sock,
    not the server's socket.  Unfortunately, at the point in time when
    selinux_ip_postroute() is called we can't query the request_sock
    directly, we need to recreate the label using the same logic that
    originally labeled the associated request_sock.
    
    See the inline comments for more explanation.
    Reported-by: NJanak Desai <Janak.Desai@gtri.gatech.edu>
    Tested-by: NJanak Desai <Janak.Desai@gtri.gatech.edu>
    Cc: stable@vger.kernel.org
    Signed-off-by: NPaul Moore <pmoore@redhat.com>
    7f721643
hooks.c 149.4 KB