CVE-2022-49207: bpf, sockmap: Fix memleak in sk_psock_queue_msg
In the Linux kernel, the following vulnerability has been resolved:
bpf, sockmap: Fix memleak in sk_psock_queue_msg
If tcp_bpf_sendmsg is running during a tear down operation we may enqueue
data on the ingress msg queue while tear down is trying to free it.
sk1 (redirect sk2) sk2
------------------- ---------------
tcp_bpf_sendmsg()
tcp_bpf_send_verdict()
tcp_bpf_sendmsg_redir()
bpf_tcp_ingress()
sock_map_close()
lock_sock()
lock_sock() ... blocking
sk_psock_stop
sk_psock_clear_state(psock, SK_PSOCK_TX_ENABLED);
release_sock(sk);
lock_sock()
sk_mem_charge()
get_page()
sk_psock_queue_msg()
sk_psock_test_state(psock, SK_PSOCK_TX_ENABLED);
drop_sk_msg()
release_sock()
While drop_sk_msg(), the msg has charged memory form sk by sk_mem_charge
and has sg pages need to put. To fix we use sk_msg_free() and then kfee()
msg.
This issue can cause the following info:
WARNING: CPU: 0 PID: 9202 at net/core/stream.c:205 sk_stream_kill_queues+0xc8/0xe0
Call Trace:
<IRQ>
inet_csk_destroy_sock+0x55/0x110
tcp_rcv_state_process+0xe5f/0xe90
? sk_filter_trim_cap+0x10d/0x230
? tcp_v4_do_rcv+0x161/0x250
tcp_v4_do_rcv+0x161/0x250
tcp_v4_rcv+0xc3a/0xce0
ip_protocol_deliver_rcu+0x3d/0x230
ip_local_deliver_finish+0x54/0x60
ip_local_deliver+0xfd/0x110
? ip_protocol_deliver_rcu+0x230/0x230
ip_rcv+0xd6/0x100
? ip_local_deliver+0x110/0x110
__netif_receive_skb_one_core+0x85/0xa0
process_backlog+0xa4/0x160
__napi_poll+0x29/0x1b0
net_rx_action+0x287/0x300
__do_softirq+0xff/0x2fc
do_softirq+0x79/0x90
</IRQ>
WARNING: CPU: 0 PID: 531 at net/ipv4/af_inet.c:154 inet_sock_destruct+0x175/0x1b0
Call Trace:
<TASK>
__sk_destruct+0x24/0x1f0
sk_psock_destroy+0x19b/0x1c0
process_one_work+0x1b3/0x3c0
? process_one_work+0x3c0/0x3c0
worker_thread+0x30/0x350
? process_one_work+0x3c0/0x3c0
kthread+0xe6/0x110
? kthread_complete_and_exit+0x20/0x20
ret_from_fork+0x22/0x30
</TASK>
Security readout for executives and security teams
Plain-English summary
CVE-2022-49207 is a Linux kernel memory leak in the BPF sockmap path. A local low-privileged user could trigger a kernel resource leak during socket teardown, potentially causing a denial of service. It is not described as a data theft or code execution issue.
Executive priority
Treat this as a moderate availability risk. It should be patched through normal kernel maintenance, with faster handling on multi-user or shared compute systems where local low-privileged access is common.
Technical view
The flaw is in sk_psock_queue_msg during tcp_bpf_sendmsg and sockmap teardown. A race can drop a message after memory and page references were charged, leaking resources. The kernel fix frees the sk_msg data correctly before releasing the message object.
Likely exposure
Exposure is most relevant on Linux systems running affected kernel versions and allowing local users or workloads to exercise BPF sockmap networking paths. The source data identifies local attack vector, low privileges, no user interaction, and high availability impact.
Exploitation context
The provided sources do not show active exploitation, and the CVE is not marked KEV. Exploitation is local, not network-borne, and appears focused on resource exhaustion rather than confidentiality or integrity compromise.
Researcher notes
Evidence supports CWE-401 memory leak and CVSS 5.5. The issue is a race between tcp_bpf_sendmsg redirection and sockmap close teardown. Source material gives fix references but not distribution-specific affected package ranges or public exploit evidence.
Mitigation direction
Update affected Linux kernels to vendor-supported builds containing the referenced stable fixes.
Check Linux distribution advisories for exact fixed package versions.
Prioritize shared servers, developer hosts, and container platforms with untrusted local workloads.
Review OS policy for limiting untrusted local access to BPF features.
Monitor for kernel warnings involving sk_stream_kill_queues, inet_sock_destruct, or psock teardown.
Validation and detection
Inventory Linux kernel versions across affected assets.
Map deployed kernels against vendor advisories and the referenced stable commits.
Confirm whether untrusted local users or workloads can access BPF sockmap functionality.
Review kernel logs for matching warning traces during socket destruction.
Verify patched systems are running the updated kernel after reboot.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cwe · low confidence lookup
CWE-401: Exact CWE lookup
Use the exact CWE identifier as the starting point before reviewing related ATT&CK behavior. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.
CWE links open Glexia weakness intelligence pages with official CWE context, developer remediation guidance, and related CVE mappings.
CWE-401 · source CWE mapping
Missing Release of Memory after Effective Lifetime
Missing Release of Memory after Effective Lifetime represents a recurring weakness pattern that can create exploitable paths when design, validation, or implementation controls are missing.