CVE-2022-49006: tracing: Free buffers when a used dynamic event is removed

Published Oct 21, 2024
·
Updated

In the Linux kernel, the following vulnerability has been resolved:

tracing: Free buffers when a used dynamic event is removed

After 65536 dynamic events have been added and removed, the "type" field of the event then uses the first type number that is available (not currently used by other events). A type number is the identifier of the binary blobs in the tracing ring buffer (known as events) to map them to logic that can parse the binary blob.

The issue is that if a dynamic event (like a kprobe event) is traced and is in the ring buffer, and then that event is removed (because it is dynamic, which means it can be created and destroyed), if another dynamic event is created that has the same number that new event's logic on parsing the binary blob will be used.

To show how this can be an issue, the following can crash the kernel:

# cd /sys/kernel/tracing # for i in seq 65536; do echo 'p:kprobes/foo dosysopenat2 $arg1:u32' > kprobeevents # done

For every iteration of the above, the writing to the kprobeevents will remove the old event and create a new one (with the same format) and increase the type number to the next available on until the type number reaches over 65535 which is the max number for the 16 bit type. After it reaches that number, the logic to allocate a new number simply looks for the next available number. When an dynamic event is removed, that number is then available to be reused by the next dynamic event created. That is, once the above reaches the max number, the number assigned to the event in that loop will remain the same.

Now that means deleting one dynamic event and created another will reuse the previous events type number. This is where bad things can happen. After the above loop finishes, the kprobes/foo event which reads the dosysopenat2 function call's first parameter as an integer.

# echo 1 > kprobes/foo/enable # cat /etc/passwd > /dev/null # cat trace cat-2211 [005] .... 2007.849603: foo: (dosysopenat2+0x0/0x130) arg1=4294967196 cat-2211 [005] .... 2007.849620: foo: (dosysopenat2+0x0/0x130) arg1=4294967196 cat-2211 [005] .... 2007.849838: foo: (dosysopenat2+0x0/0x130) arg1=4294967196 cat-2211 [005] .... 2007.849880: foo: (dosysopenat2+0x0/0x130) arg1=4294967196 # echo 0 > kprobes/foo/enable

Now if we delete the kprobe and create a new one that reads a string:

# echo 'p:kprobes/foo dosysopenat2 +0($arg2):string' > kprobeevents

And now we can the trace:

# cat trace sendmail-1942 [002] ..... 530.136320: foo: (dosysopenat2+0x0/0x240) arg1= cat-2046 [004] ..... 530.930817: foo: (dosysopenat2+0x0/0x240) arg1="������������������������������������������������������������������������������������������������" cat-2046 [004] ..... 530.930961: foo: (dosysopenat2+0x0/0x240) arg1="������������������������������������������������������������������������������������������������" cat-2046 [004] ..... 530.934278: foo: (dosysopenat2+0x0/0x240) arg1="������������������������������������������������������������������������������������������������" cat-2046 [004] ..... 530.934563: foo: (dosysopenat2+0x0/0x240) arg1="��������������������������������������� ---truncated---

Affected Software

173 affected componentsFixes available
Linux Linux kernel>=2.6.33<5.4.226
Linux Linux kernel>=5.5<5.10.158
Linux Linux kernel>=5.11<5.15.82
Linux Linux kernel>=5.16<6.0.12
Linux Linux kernel=6.1-rc1
Linux Linux kernel=6.1-rc2
Linux Linux kernel=6.1-rc3
Linux Linux kernel=6.1-rc4
Linux Linux kernel=6.1-rc5
Linux Linux kernel=6.1-rc6
Linux Linux kernel=6.1-rc7
debian/linux<6.0.12-1
6.0.12-1
debian/linux<6.0.12-1
6.0.12-1
debian/linux<6.0.12-1
6.0.12-1
debian/linux
6.1.176-16.1.190-16.12.107-16.12.115-27.2.12-17.2.15-1
ubuntu/linux*
ubuntu/linux-aws*
ubuntu/linux-azure*
ubuntu/linux-lts-xenial*
ubuntu/linux*
ubuntu/linux-aws*
ubuntu/linux-aws-hwe*
ubuntu/linux-azure*
ubuntu/linux-gcp*
ubuntu/linux-hwe*
ubuntu/linux-hwe-edge*
ubuntu/linux-kvm*
ubuntu/linux-oracle*
ubuntu/linux-fips*
ubuntu/linux-fips*
ubuntu/linux-aws-5.4<5.4.0-1097.105~18.04.1
5.4.0-1097.105~18.04.1
ubuntu/linux-azure-5.4<5.4.0-1104.110~18.04.1
5.4.0-1104.110~18.04.1
ubuntu/linux-gcp-5.4<5.4.0-1101.110~18.04.1
5.4.0-1101.110~18.04.1
ubuntu/linux-hwe-5.4<5.4.0-144.161~18.04.1
5.4.0-144.161~18.04.1
ubuntu/linux-ibm-5.4<5.4.0-1045.50~18.04.1
5.4.0-1045.50~18.04.1
ubuntu/linux-oracle-5.4<5.4.0-1094.103~18.04.1
5.4.0-1094.103~18.04.1
ubuntu/linux-raspi-5.4<5.4.0-1081.92~18.04.1
5.4.0-1081.92~18.04.1
ubuntu/linux*
ubuntu/linux-aws*
ubuntu/linux-aws-5.0*
ubuntu/linux-aws-5.3*
ubuntu/linux-azure*
ubuntu/linux-azure-4.15*
ubuntu/linux-azure-5.3*
ubuntu/linux-azure-edge*
ubuntu/linux-gcp*
ubuntu/linux-gcp-4.15*
ubuntu/linux-gcp-5.3*
ubuntu/linux-gke-4.15*
ubuntu/linux-gke-5.4*
ubuntu/linux-gkeop-5.4*
ubuntu/linux-hwe*
ubuntu/linux-hwe-edge*
ubuntu/linux-kvm*
ubuntu/linux-oem*
ubuntu/linux-oracle*
ubuntu/linux-oracle-5.0*
ubuntu/linux-oracle-5.3*
ubuntu/linux-aws-fips*
ubuntu/linux-azure-fips*
ubuntu/linux-fips*
ubuntu/linux-gcp-fips*
ubuntu/linux-aws-fips*
ubuntu/linux-azure-fips*
ubuntu/linux-fips*
ubuntu/linux-gcp-fips*
ubuntu/linux<5.4.0-144.161
5.4.0-144.161
ubuntu/linux-aws<5.4.0-1097.105
5.4.0-1097.105
ubuntu/linux-aws-5.15<5.15.0-1031.35~20.04.1
5.15.0-1031.35~20.04.1
ubuntu/linux-azure<5.4.0-1104.110
5.4.0-1104.110
ubuntu/linux-azure-5.15<5.15.0-1034.41~20.04.1
5.15.0-1034.41~20.04.1
ubuntu/linux-bluefield<5.4.0-1059.65
5.4.0-1059.65
ubuntu/linux-gcp<5.4.0-1101.110
5.4.0-1101.110
ubuntu/linux-gcp-5.15<5.15.0-1030.37~20.04.1
5.15.0-1030.37~20.04.1
ubuntu/linux-gkeop<5.4.0-1065.69
5.4.0-1065.69
ubuntu/linux-gkeop-5.15<5.15.0-1016.21~20.04.1
5.15.0-1016.21~20.04.1
ubuntu/linux-hwe-5.15<5.15.0-67.74~20.04.1
5.15.0-67.74~20.04.1
ubuntu/linux-ibm<5.4.0-1045.50
5.4.0-1045.50
ubuntu/linux-intel-iotg-5.15<5.15.0-1026.31~20.04.1
5.15.0-1026.31~20.04.1
ubuntu/linux-iot<5.4.0-1013.15
5.4.0-1013.15
ubuntu/linux-kvm<5.4.0-1087.93
5.4.0-1087.93
ubuntu/linux-lowlatency-hwe-5.15<5.15.0-67.74~20.04.1
5.15.0-67.74~20.04.1
ubuntu/linux-nvidia-tegra-5.15<5.15.0-1014.14~20.04.1
5.15.0-1014.14~20.04.1
ubuntu/linux-oracle<5.4.0-1094.103
5.4.0-1094.103
ubuntu/linux-oracle-5.15<5.15.0-1030.36~20.04.1
5.15.0-1030.36~20.04.1
ubuntu/linux-raspi<5.4.0-1081.92
5.4.0-1081.92
ubuntu/linux-riscv-5.15<5.15.0-1030.34~20.04.1
5.15.0-1030.34~20.04.1
ubuntu/linux-xilinx-zynqmp<5.4.0-1022.26
5.4.0-1022.26
ubuntu/linux-aws-5.11*
ubuntu/linux-aws-5.13*
ubuntu/linux-aws-5.8*
ubuntu/linux-azure-5.11*
ubuntu/linux-azure-5.13*
ubuntu/linux-azure-5.8*
ubuntu/linux-azure-fde*
ubuntu/linux-gcp-5.11*
ubuntu/linux-gcp-5.13*
ubuntu/linux-gcp-5.8*
ubuntu/linux-gke*
ubuntu/linux-gke-5.15*
ubuntu/linux-hwe-5.11*
ubuntu/linux-hwe-5.13*
ubuntu/linux-hwe-5.8*
ubuntu/linux-intel-5.13*
ubuntu/linux-oem-5.10*
ubuntu/linux-oem-5.13*
ubuntu/linux-oem-5.6*
ubuntu/linux-oracle-5.11*
ubuntu/linux-oracle-5.13*
ubuntu/linux-oracle-5.8*
ubuntu/linux-raspi2*
ubuntu/linux-riscv*
ubuntu/linux-riscv-5.11*
ubuntu/linux-riscv-5.8*
ubuntu/linux-aws-fips<5.4.0-1099.107+fips1
5.4.0-1099.107+fips1
ubuntu/linux-azure-fips<5.4.0-1104.110+fips1
5.4.0-1104.110+fips1
ubuntu/linux-fips<5.4.0-1073.82
5.4.0-1073.82
ubuntu/linux-gcp-fips<5.4.0-1101.110+fips1
5.4.0-1101.110+fips1
ubuntu/linux-aws-fips*
ubuntu/linux-azure-fips*
ubuntu/linux-fips*
ubuntu/linux-gcp-fips*
ubuntu/linux<5.15.0-67.74
5.15.0-67.74
ubuntu/linux-allwinner-5.19*
ubuntu/linux-aws<5.15.0-1031.35
5.15.0-1031.35
ubuntu/linux-aws-5.19*
ubuntu/linux-aws-6.2*
ubuntu/linux-aws-6.5*
ubuntu/linux-azure<5.15.0-1034.41
5.15.0-1034.41
ubuntu/linux-azure-5.19*
ubuntu/linux-azure-6.2*
ubuntu/linux-azure-6.5*
ubuntu/linux-azure-fde<5.15.0-1034.41.1
5.15.0-1034.41.1
ubuntu/linux-azure-fde-5.19*
ubuntu/linux-azure-fde-6.2*
ubuntu/linux-gcp<5.15.0-1030.37
5.15.0-1030.37
ubuntu/linux-gcp-5.19*
ubuntu/linux-gcp-6.2*
ubuntu/linux-gcp-6.5*
ubuntu/linux-gke<5.15.0-1028.33
5.15.0-1028.33
ubuntu/linux-gkeop<5.15.0-1016.21
5.15.0-1016.21
ubuntu/linux-hwe-5.19*
ubuntu/linux-hwe-6.2*
ubuntu/linux-hwe-6.5*
ubuntu/linux-ibm<5.15.0-1026.29
5.15.0-1026.29
ubuntu/linux-intel-iotg<5.15.0-1026.31
5.15.0-1026.31
ubuntu/linux-kvm<5.15.0-1029.34
5.15.0-1029.34
ubuntu/linux-lowlatency<5.15.0-67.74
5.15.0-67.74
ubuntu/linux-lowlatency-hwe-5.19*
ubuntu/linux-lowlatency-hwe-6.2*
ubuntu/linux-lowlatency-hwe-6.5*
ubuntu/linux-nvidia<5.15.0-1023.23
5.15.0-1023.23
ubuntu/linux-nvidia-6.2*
ubuntu/linux-nvidia-6.5*
ubuntu/linux-oem-5.17*
ubuntu/linux-oem-6.0*
ubuntu/linux-oem-6.1*
ubuntu/linux-oem-6.5*
ubuntu/linux-oracle<5.15.0-1030.36
5.15.0-1030.36
ubuntu/linux-oracle-6.5*
ubuntu/linux-raspi<5.15.0-1025.27
5.15.0-1025.27
ubuntu/linux-realtime*
ubuntu/linux-riscv*
ubuntu/linux-riscv-5.19*
ubuntu/linux-riscv-6.5*
ubuntu/linux-starfive-5.19*
ubuntu/linux-starfive-6.2*
ubuntu/linux-starfive-6.5*
ubuntu/linux-bluefield<5.15.0-1014.16
5.15.0-1014.16
ubuntu/linux-intel-iot-realtime<5.15.0-1022.27
5.15.0-1022.27
ubuntu/linux-realtime<5.15.0-1033.36
5.15.0-1033.36
ubuntu/linux-raspi-realtime*
ubuntu/linux-vmware*

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade debian/linux to a version that resolves this vulnerability.

    Fixed in 6.0.12-1
  2. Upgrade

    Upgrade debian/linux to a version that resolves this vulnerability.

    Fixed in 6.1.176-1Fixed in 6.1.190-1Fixed in 6.12.107-1Fixed in 6.12.115-2Fixed in 7.2.12-1Fixed in 7.2.15-1
  3. Upgrade

    Upgrade ubuntu/linux-aws-5.4 to a version that resolves this vulnerability.

    Fixed in 5.4.0-1097.105~18.04.1
  4. Upgrade

    Upgrade ubuntu/linux-azure-5.4 to a version that resolves this vulnerability.

    Fixed in 5.4.0-1104.110~18.04.1
  5. Upgrade

    Upgrade ubuntu/linux-gcp-5.4 to a version that resolves this vulnerability.

    Fixed in 5.4.0-1101.110~18.04.1
  6. Upgrade

    Upgrade ubuntu/linux-hwe-5.4 to a version that resolves this vulnerability.

    Fixed in 5.4.0-144.161~18.04.1
  7. Upgrade

    Upgrade ubuntu/linux-ibm-5.4 to a version that resolves this vulnerability.

    Fixed in 5.4.0-1045.50~18.04.1
  8. Upgrade

    Upgrade ubuntu/linux-oracle-5.4 to a version that resolves this vulnerability.

    Fixed in 5.4.0-1094.103~18.04.1
  9. Upgrade

    Upgrade ubuntu/linux-raspi-5.4 to a version that resolves this vulnerability.

    Fixed in 5.4.0-1081.92~18.04.1
  10. Upgrade

    Upgrade ubuntu/linux to a version that resolves this vulnerability.

    Fixed in 5.4.0-144.161
  11. Upgrade

    Upgrade ubuntu/linux-aws to a version that resolves this vulnerability.

    Fixed in 5.4.0-1097.105
  12. Upgrade

    Upgrade ubuntu/linux-aws-5.15 to a version that resolves this vulnerability.

    Fixed in 5.15.0-1031.35~20.04.1
  13. Upgrade

    Upgrade ubuntu/linux-azure to a version that resolves this vulnerability.

    Fixed in 5.4.0-1104.110
  14. Upgrade

    Upgrade ubuntu/linux-azure-5.15 to a version that resolves this vulnerability.

    Fixed in 5.15.0-1034.41~20.04.1
  15. Upgrade

    Upgrade ubuntu/linux-bluefield to a version that resolves this vulnerability.

    Fixed in 5.4.0-1059.65
  16. Upgrade

    Upgrade ubuntu/linux-gcp to a version that resolves this vulnerability.

    Fixed in 5.4.0-1101.110
  17. Upgrade

    Upgrade ubuntu/linux-gcp-5.15 to a version that resolves this vulnerability.

    Fixed in 5.15.0-1030.37~20.04.1
  18. Upgrade

    Upgrade ubuntu/linux-gkeop to a version that resolves this vulnerability.

    Fixed in 5.4.0-1065.69
  19. Upgrade

    Upgrade ubuntu/linux-gkeop-5.15 to a version that resolves this vulnerability.

    Fixed in 5.15.0-1016.21~20.04.1
  20. Upgrade

    Upgrade ubuntu/linux-hwe-5.15 to a version that resolves this vulnerability.

    Fixed in 5.15.0-67.74~20.04.1
  21. Upgrade

    Upgrade ubuntu/linux-ibm to a version that resolves this vulnerability.

    Fixed in 5.4.0-1045.50
  22. Upgrade

    Upgrade ubuntu/linux-intel-iotg-5.15 to a version that resolves this vulnerability.

    Fixed in 5.15.0-1026.31~20.04.1
  23. Upgrade

    Upgrade ubuntu/linux-iot to a version that resolves this vulnerability.

    Fixed in 5.4.0-1013.15
  24. Upgrade

    Upgrade ubuntu/linux-kvm to a version that resolves this vulnerability.

    Fixed in 5.4.0-1087.93
  25. Upgrade

    Upgrade ubuntu/linux-lowlatency-hwe-5.15 to a version that resolves this vulnerability.

    Fixed in 5.15.0-67.74~20.04.1
  26. Upgrade

    Upgrade ubuntu/linux-nvidia-tegra-5.15 to a version that resolves this vulnerability.

    Fixed in 5.15.0-1014.14~20.04.1
  27. Upgrade

    Upgrade ubuntu/linux-oracle to a version that resolves this vulnerability.

    Fixed in 5.4.0-1094.103
  28. Upgrade

    Upgrade ubuntu/linux-oracle-5.15 to a version that resolves this vulnerability.

    Fixed in 5.15.0-1030.36~20.04.1
  29. Upgrade

    Upgrade ubuntu/linux-raspi to a version that resolves this vulnerability.

    Fixed in 5.4.0-1081.92
  30. Upgrade

    Upgrade ubuntu/linux-riscv-5.15 to a version that resolves this vulnerability.

    Fixed in 5.15.0-1030.34~20.04.1
  31. Upgrade

    Upgrade ubuntu/linux-xilinx-zynqmp to a version that resolves this vulnerability.

    Fixed in 5.4.0-1022.26
  32. Upgrade

    Upgrade ubuntu/linux-aws-fips to a version that resolves this vulnerability.

    Fixed in 5.4.0-1099.107+fips1
  33. Upgrade

    Upgrade ubuntu/linux-azure-fips to a version that resolves this vulnerability.

    Fixed in 5.4.0-1104.110+fips1
  34. Upgrade

    Upgrade ubuntu/linux-fips to a version that resolves this vulnerability.

    Fixed in 5.4.0-1073.82
  35. Upgrade

    Upgrade ubuntu/linux-gcp-fips to a version that resolves this vulnerability.

    Fixed in 5.4.0-1101.110+fips1
  36. Upgrade

    Upgrade ubuntu/linux to a version that resolves this vulnerability.

    Fixed in 5.15.0-67.74
  37. Upgrade

    Upgrade ubuntu/linux-aws to a version that resolves this vulnerability.

    Fixed in 5.15.0-1031.35
  38. Upgrade

    Upgrade ubuntu/linux-azure to a version that resolves this vulnerability.

    Fixed in 5.15.0-1034.41
  39. Upgrade

    Upgrade ubuntu/linux-azure-fde to a version that resolves this vulnerability.

    Fixed in 5.15.0-1034.41.1
  40. Upgrade

    Upgrade ubuntu/linux-gcp to a version that resolves this vulnerability.

    Fixed in 5.15.0-1030.37
  41. Upgrade

    Upgrade ubuntu/linux-gke to a version that resolves this vulnerability.

    Fixed in 5.15.0-1028.33
  42. Upgrade

    Upgrade ubuntu/linux-gkeop to a version that resolves this vulnerability.

    Fixed in 5.15.0-1016.21
  43. Upgrade

    Upgrade ubuntu/linux-ibm to a version that resolves this vulnerability.

    Fixed in 5.15.0-1026.29
  44. Upgrade

    Upgrade ubuntu/linux-intel-iotg to a version that resolves this vulnerability.

    Fixed in 5.15.0-1026.31
  45. Upgrade

    Upgrade ubuntu/linux-kvm to a version that resolves this vulnerability.

    Fixed in 5.15.0-1029.34
  46. Upgrade

    Upgrade ubuntu/linux-lowlatency to a version that resolves this vulnerability.

    Fixed in 5.15.0-67.74
  47. Upgrade

    Upgrade ubuntu/linux-nvidia to a version that resolves this vulnerability.

    Fixed in 5.15.0-1023.23
  48. Upgrade

    Upgrade ubuntu/linux-oracle to a version that resolves this vulnerability.

    Fixed in 5.15.0-1030.36
  49. Upgrade

    Upgrade ubuntu/linux-raspi to a version that resolves this vulnerability.

    Fixed in 5.15.0-1025.27
  50. Upgrade

    Upgrade ubuntu/linux-bluefield to a version that resolves this vulnerability.

    Fixed in 5.15.0-1014.16
  51. Upgrade

    Upgrade ubuntu/linux-intel-iot-realtime to a version that resolves this vulnerability.

    Fixed in 5.15.0-1022.27
  52. Upgrade

    Upgrade ubuntu/linux-realtime to a version that resolves this vulnerability.

    Fixed in 5.15.0-1033.36

Event History

Oct 21, 2024
CVE Published
via MITRE·08:06 PM
Data Sourced
via MITRE·08:06 PM
Description
Data Sourced
via OSV·08:15 PM
DescriptionSeverityAffected Software
Data Sourced
via Red Hat·10:03 PM
DescriptionSeverityAffected Software

Frequently Asked Questions

1

What is the severity of CVE-2022-49006?

The severity of CVE-2022-49006 is classified as a medium-level vulnerability.

2

How do I fix CVE-2022-49006?

To fix CVE-2022-49006, it is recommended to update the Linux kernel to a version that addresses this vulnerability.

3

Which versions of the Linux kernel are affected by CVE-2022-49006?

CVE-2022-49006 affects Linux kernel versions from 2.6.33 to 6.1-rc7.

4

What are the potential impacts of CVE-2022-49006?

The potential impacts of CVE-2022-49006 include the possibility of a denial of service due to improper handling of dynamic events.

5

When was CVE-2022-49006 first reported?

CVE-2022-49006 was first reported in 2022 as part of the ongoing security assessments of the Linux kernel.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203