In the Linux kernel, the following vulnerability has been resolved:
espintcp: use sk_msg_free_partial to fix partial send
sk_msg_free_partial() ensures consistency of the skmsg at every
iteration, without having to manually handle uncharges and offsets.
This simplifies the code, and fixes some bugs in skmsg accounting when
we don't send the full contents.
CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CVSS Score: 9.8
AV:N - espintcp carries IKE/IPsec over TCP (RFC 8229) on internet-facing VPN gateways; a remote TCP peer can induce partial sends during server outbound IKE responses by shrinking/draining the receive window, corrupting skmsg state without local access.
AC:L - The attacker controls both sides of the TCP connection and can reliably force partial sends by not reading, advertising a zero window, or resetting mid-transfer; no race or memory-layout conditions outside attacker control are required.
PR:N - Exploitation needs no credentials on the target—an unauthenticated remote peer during pre-auth IKE-over-TCP can trigger server sends; locally any user can set TCP_ULP to espintcp and sendmsg without CAP_NET_ADMIN or XFRM configuration.
UI:N - No victim user action is required; once an espintcp TCP endpoint exists, the remote peer alone drives the partial-send condition through normal TCP flow control during server transmission.
S:U - Impact is kernel heap corruption and privilege escalation within the host kernel; it does not cross VM, IOMMU, or sandbox security boundaries.
C:H - Incorrect skmsg/page accounting on partial sends causes use-after-free and double-free of scatterlist pages; freed objects can be reallocated and read for arbitrary kernel memory disclosure.
I:H - Corrupted scatterlist offsets and page refcount errors yield exploitable kernel memory corruption primitives that can enable arbitrary writes and local privilege escalation.
A:H - Double-free and invalid page references in the send/resume path can oops or panic the kernel; a remote or local attacker can repeat the trigger via sustained partial-send pressure.
| Attack Vector |
Network |
Scope |
Unchanged |
| Attack Complexity |
Low |
Confidentiality Impact |
High |
| Privileges Required |
None |
Integrity Impact |
High |
| User Interaction |
None |
Availability Impact |
High |
AV:N - espintcp carries IKE/IPsec over TCP (RFC 8229) on internet-facing VPN gateways; a remote TCP peer can induce partial sends during server outbound IKE responses by shrinking/draining the receive window, corrupting skmsg state without local access.
AC:L - The attacker controls both sides of the TCP connection and can reliably force partial sends by not reading, advertising a zero window, or resetting mid-transfer; no race or memory-layout conditions outside attacker control are required.
PR:N - Exploitation needs no credentials on the target—an unauthenticated remote peer during pre-auth IKE-over-TCP can trigger server sends; locally any user can set TCP_ULP to espintcp and sendmsg without CAP_NET_ADMIN or XFRM configuration.
UI:N - No victim user action is required; once an espintcp TCP endpoint exists, the remote peer alone drives the partial-send condition through normal TCP flow control during server transmission.
S:U - Impact is kernel heap corruption and privilege escalation within the host kernel; it does not cross VM, IOMMU, or sandbox security boundaries.
C:H - Incorrect skmsg/page accounting on partial sends causes use-after-free and double-free of scatterlist pages; freed objects can be reallocated and read for arbitrary kernel memory disclosure.
I:H - Corrupted scatterlist offsets and page refcount errors yield exploitable kernel memory corruption primitives that can enable arbitrary writes and local privilege escalation.
A:H - Double-free and invalid page references in the send/resume path can oops or panic the kernel; a remote or local attacker can repeat the trigger via sustained partial-send pressure.
CVSS 3.1