CyberSecBulletin
CVE-2022-50243NVD status: Modified

Linux: Use After Free

CVE-2022-50243 is a high-severity use after free vulnerability in Linux, with a CVSS 3.1 base score of 7.8 out of 10. It can be exploited with local access to the system by an attacker with a low-privileged account, without any action from a user. The record lists versions b8fa99a3a11bdd77fef6b4a97f1021eb30b5ba40, 382ff44716603a54f5fd238ddec6a2468e217612, f65955340e0044f5c41ac799a01698ac7dee8a4e as the first without the flaw, so updating Linux to one of those releases or later removes the exposure. There is no confirmed exploitation so far. EPSS estimates a 0.16% chance of exploitation within 30 days, which is low compared with other CVEs.

Next patch cycle

High severity with no evidence of exploitation so far.

What to do

  1. Update Linux to b8fa99a3a11bdd77fef6b4a97f1021eb30b5ba40 or 382ff44716603a54f5fd238ddec6a2468e217612 or f65955340e0044f5c41ac799a01698ac7dee8a4e or 19d636b663e0e92951bba5fced929ca7fd25c552, whichever matches your release line, or a later version.
  2. Update Linux Kernel to 4.19.262 or 5.4.220 or 5.10.150 or 5.14, whichever matches your release line, or a later version.

Affected products and versions

VendorProductAffected versionsFixed in
LinuxLinux50b57223da67653c61e405d0a7592355cfe4585e up to, but not including, b8fa99a3a11bdd77fef6b4a97f1021eb30b5ba40; b60461696a0b0fdaf240bc365b7983698f88ded2 up to, but not including, 382ff44716603a54f5fd238ddec6a2468e217612; 8eb225873246312660ccd68296959a7b213d0cdd up to, but not including, f65955340e0044f5c41ac799a01698ac7dee8a4e; 58acd10092268831e49de279446c314727101292 up to, but not including, 19d636b663e0e92951bba5fced929ca7fd25c552; 58acd10092268831e49de279446c314727101292 up to, but not including, 0f90099d18e3abdc01babf686f41f63fe04939c1; 58acd10092268831e49de279446c314727101292 up to, but not including, 3b0fcf5e29c0940e1169ce9c44f73edd98bdf12d; 58acd10092268831e49de279446c314727101292 up to, but not including, 022152aaebe116a25c39818a07e175a8cd3c1e11; c1de376423a7759bf4fa25d6a038a4c1e035c9e1; and 5 more rangesb8fa99a3a11bdd77fef6b4a97f1021eb30b5ba40, 382ff44716603a54f5fd238ddec6a2468e217612, f65955340e0044f5c41ac799a01698ac7dee8a4e, 19d636b663e0e92951bba5fced929ca7fd25c552, 0f90099d18e3abdc01babf686f41f63fe04939c1, 3b0fcf5e29c0940e1169ce9c44f73edd98bdf12d
LinuxLinux Kernel4.19.199 up to, but not including, 4.19.262; 5.4.136 up to, but not including, 5.4.220; 5.10.54 up to, but not including, 5.10.150; 5.13.6 up to, but not including, 5.14; 5.14.1 up to, but not including, 5.15.75; 5.16 up to, but not including, 5.19.17; 6.0 up to, but not including, 6.0.3; 5.144.19.262, 5.4.220, 5.10.150, 5.14, 5.15.75, 5.19.17

Version data comes from the organisation that assigned the CVE. Confirm against the vendor advisory before deciding you are unaffected.

How the severity score breaks down

Attack vector
LocalThe attacker needs local access or must trick a user into running something.
Attack complexity
LowNo special conditions are needed; the attack works reliably.
Privileges required
LowA basic user account is enough.
User interaction
NoneNo action by a victim is required.
Scope
UnchangedImpact stays within the vulnerable component.
Confidentiality
HighAll data handled by the component can be read.
Integrity
HighData or code can be modified at will.
Availability
HighThe component can be taken down completely.

Vector: CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H. Scored by NVD.

Scoring systemScoreSeverityScored by
CVSS 3.17.8HighCNA
CVSS 3.17.8HighNVD

Official description

In the Linux kernel, the following vulnerability has been resolved: sctp: handle the error returned from sctp_auth_asoc_init_active_key When it returns an error from sctp_auth_asoc_init_active_key(), the active_key is actually not updated. The old sh_key will be freeed while it's still used as active key in asoc. Then an use-after-free will be triggered when sending patckets, as found by syzbot: sctp_auth_shkey_hold+0x22/0xa0 net/sctp/auth.c:112 sctp_set_owner_w net/sctp/socket.c:132 [inline] sctp_sendmsg_to_asoc+0xbd5/0x1a20 net/sctp/socket.c:1863 sctp_sendmsg+0x1053/0x1d50 net/sctp/socket.c:2025 inet_sendmsg+0x99/0xe0 net/ipv4/af_inet.c:819 sock_sendmsg_nosec net/socket.c:714 [inline] sock_sendmsg+0xcf/0x120 net/socket.c:734 This patch is to fix it by not replacing the sh_key when it returns errors from sctp_auth_asoc_init_active_key() in sctp_auth_set_key(). For sctp_auth_set_active_key(), old active_key_id will be set back to asoc->active_key_id when the same thing happens.

Source: the CVE record as published by its numbering authority, via NVD and CVE.org.

The underlying weakness: Use After Free

The product reuses or references memory after it has been freed. At some point afterward, the memory may be allocated again and saved in another pointer, while the original pointer references a location somewhere within the new allocation. Any operations using the original pointer are no longer valid because the memory belongs to the code that operates on the new pointer.

How developers prevent this class of flaw

  • Choose a language that provides automatic memory management.
  • When freeing pointers, be sure to set them to NULL once they are freed. However, the utilization of multiple or complex data structures may lower the usefulness of this strategy.

More Use After Free vulnerabilities (CWE-416)

Timeline

  1. CVE record published.
  2. Record last changed materially (score, affected products, status or references).

References

Recent Use After Free vulnerabilities

Spotted an error? Tell us.