Bug 243258 (CVE-2007-1592)

Summary: CVE-2007-1592 IPv6 oops triggerable by any user
Product: [Other] Security Response Reporter: Marcel Holtmann <holtmann>
Component: vulnerabilityAssignee: Jason Baron <jbaron>
Status: CLOSED ERRATA QA Contact: Martin Jenner <mjenner>
Severity: high Docs Contact:
Priority: medium    
Version: unspecifiedCC: jbaron, knoel, security-response-team
Target Milestone: ---Keywords: Security
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2007-07-10 05:10:58 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:

Description Marcel Holtmann 2007-06-08 10:14:01 UTC
We accidently copy the ipv6 flow list to child sockets of listening TCP
sockets, but don't bump the reference count, clone the object, etc.  And
the list linkage of this object is not built such that multiple sockets
can point to it anyways.

Therefore if a listening socket has a flow list attached, when a child
connection closes we'll OOPS or double free the flow list entry.

Any user can trigger this.

Steps to reproduce this behavior:

1) Open listening IPV6 TCP socket
2) Attach a flowlabel with IPV6_FLOWLABEL_MGR socket option,
   freq->flr_action == IPV6_FL_A_GET and appropriate metadata.
3) Connect to that listening socket, and close()

http://marc.info/?l=linux-netdev&m=117406721731891&w=2