CyberSecBulletin
CVE-2023-53388NVD status: Modified

Linux: Use After Free

CVE-2023-53388 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 9a48f99aa7bea15e0b1d8b0040c46b4792eddf3b, a161f1d92aabb3b8463f752bdc3474dc3a5ec0e5, 6a89ddee1686a8872384aaa9f0bcfa6b675acd86 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 9a48f99aa7bea15e0b1d8b0040c46b4792eddf3b or a161f1d92aabb3b8463f752bdc3474dc3a5ec0e5 or 6a89ddee1686a8872384aaa9f0bcfa6b675acd86 or 49cf87919daeeeeeb9e924c39bdd9203af434461, whichever matches your release line, or a later version.
  2. Update Linux Kernel to 4.19.276 or 5.4.235 or 5.10.173 or 5.15.99, whichever matches your release line, or a later version.

Affected products and versions

VendorProductAffected versionsFixed in
LinuxLinux119f5173628aa7a0c3cf9db83460d40709e8241d up to, but not including, 9a48f99aa7bea15e0b1d8b0040c46b4792eddf3b; 119f5173628aa7a0c3cf9db83460d40709e8241d up to, but not including, a161f1d92aabb3b8463f752bdc3474dc3a5ec0e5; 119f5173628aa7a0c3cf9db83460d40709e8241d up to, but not including, 6a89ddee1686a8872384aaa9f0bcfa6b675acd86; 119f5173628aa7a0c3cf9db83460d40709e8241d up to, but not including, 49cf87919daeeeeeb9e924c39bdd9203af434461; 119f5173628aa7a0c3cf9db83460d40709e8241d up to, but not including, 7b551a501fa714890e55bae73efede1185728d72; 119f5173628aa7a0c3cf9db83460d40709e8241d up to, but not including, f3887c771576c5d740c5c5b8bf654a8ab8020b7d; 119f5173628aa7a0c3cf9db83460d40709e8241d up to, but not including, 36aa8c61af55675ed967900fbe5deb32d776f051; 4.79a48f99aa7bea15e0b1d8b0040c46b4792eddf3b, a161f1d92aabb3b8463f752bdc3474dc3a5ec0e5, 6a89ddee1686a8872384aaa9f0bcfa6b675acd86, 49cf87919daeeeeeb9e924c39bdd9203af434461, 7b551a501fa714890e55bae73efede1185728d72, f3887c771576c5d740c5c5b8bf654a8ab8020b7d
LinuxLinux Kernel4.7 up to, but not including, 4.19.276; 4.20 up to, but not including, 5.4.235; 5.5 up to, but not including, 5.10.173; 5.11 up to, but not including, 5.15.99; 5.16 up to, but not including, 6.1.16; 6.2 up to, but not including, 6.2.34.19.276, 5.4.235, 5.10.173, 5.15.99, 6.1.16, 6.2.3

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.8HighNVD
CVSS 3.17.8HighCISA (ADP)

Official description

In the Linux kernel, the following vulnerability has been resolved: drm/mediatek: Clean dangling pointer on bind error path mtk_drm_bind() can fail, in which case drm_dev_put() is called, destroying the drm_device object. However a pointer to it was still being held in the private object, and that pointer would be passed along to DRM in mtk_drm_sys_prepare() if a suspend were triggered at that point, resulting in a panic. Clean the pointer when destroying the object in the error path to prevent this from happening.

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. CISA published its SSVC assessment (exploitation: none, automatable: no, technical impact: total).
  3. Record last changed materially (score, affected products, status or references).

References

Recent Use After Free vulnerabilities

Spotted an error? Tell us.