In the Linux kernel, the following vulnerability has been resolved:
ALSA: timer: Set lower bound of start tick time
Currently ALSA timer doesn't have the lower limit of the start tick time, and it allows a very small size, e.g. 1 tick with 1ns resolution for hrtimer. Such a situation may lead to an unexpected RCU stall, where the callback repeatedly queuing the expire update, as reported by fuzzer.
This patch introduces a sanity check of the timer start tick time, so that the system returns an error when a too small start size is set. As of this patch, the lower limit is hard-coded to 100us, which is small enough but can still work somehow.
[
{
"digest": {
"length": 1164.0,
"function_hash": "154454073089889180259115213033264798469"
},
"signature_type": "Function",
"target": {
"function": "snd_timer_start1",
"file": "sound/core/timer.c"
},
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@74bfb8d90f2601718ae203faf45a196844c01fa1",
"id": "CVE-2024-38618-05fee7b3"
},
{
"digest": {
"threshold": 0.9,
"line_hashes": [
"317022826946427101598718039432456218327",
"287421376134478444375804589487758462798",
"41135838289115943154099535689252067786"
]
},
"signature_type": "Line",
"target": {
"file": "sound/core/timer.c"
},
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@4a63bd179fa8d3fcc44a0d9d71d941ddd62f0c4e",
"id": "CVE-2024-38618-1a4396ba"
},
{
"digest": {
"threshold": 0.9,
"line_hashes": [
"134096848761299651210179923304226564486",
"309513232057590855560721777152417111593",
"3793220946494804255243975856860686677"
]
},
"signature_type": "Line",
"target": {
"file": "sound/core/timer.c"
},
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@68396c825c43664b20a3a1ba546844deb2b4e48f",
"id": "CVE-2024-38618-2c7fb229"
},
{
"digest": {
"length": 1164.0,
"function_hash": "154454073089889180259115213033264798469"
},
"signature_type": "Function",
"target": {
"function": "snd_timer_start1",
"file": "sound/core/timer.c"
},
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@ceab795a67dd28dd942d0d8bba648c6c0f7a044b",
"id": "CVE-2024-38618-38ceeffb"
},
{
"digest": {
"length": 1164.0,
"function_hash": "154454073089889180259115213033264798469"
},
"signature_type": "Function",
"target": {
"function": "snd_timer_start1",
"file": "sound/core/timer.c"
},
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@bdd0aa055b8ec7e24bbc19513f3231958741d0ab",
"id": "CVE-2024-38618-743819b8"
},
{
"digest": {
"length": 1075.0,
"function_hash": "101938973137073845626192185809220404911"
},
"signature_type": "Function",
"target": {
"function": "snd_timer_start1",
"file": "sound/core/timer.c"
},
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@4a63bd179fa8d3fcc44a0d9d71d941ddd62f0c4e",
"id": "CVE-2024-38618-7ed57f1a"
},
{
"digest": {
"threshold": 0.9,
"line_hashes": [
"317022826946427101598718039432456218327",
"287421376134478444375804589487758462798",
"41135838289115943154099535689252067786"
]
},
"signature_type": "Line",
"target": {
"file": "sound/core/timer.c"
},
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@abb1ad69d98cf1ff25bb14fff0e7c3f66239e1cd",
"id": "CVE-2024-38618-8ab700cc"
},
{
"digest": {
"length": 1164.0,
"function_hash": "154454073089889180259115213033264798469"
},
"signature_type": "Function",
"target": {
"function": "snd_timer_start1",
"file": "sound/core/timer.c"
},
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@2c95241ac5fc90c929d6c0c023e84bf0d30e84c3",
"id": "CVE-2024-38618-aabe0f92"
},
{
"digest": {
"length": 1085.0,
"function_hash": "208358755801162807232721421507342597147"
},
"signature_type": "Function",
"target": {
"function": "snd_timer_start1",
"file": "sound/core/timer.c"
},
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@68396c825c43664b20a3a1ba546844deb2b4e48f",
"id": "CVE-2024-38618-af4be7ac"
},
{
"digest": {
"threshold": 0.9,
"line_hashes": [
"134096848761299651210179923304226564486",
"309513232057590855560721777152417111593",
"3793220946494804255243975856860686677"
]
},
"signature_type": "Line",
"target": {
"file": "sound/core/timer.c"
},
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@ceab795a67dd28dd942d0d8bba648c6c0f7a044b",
"id": "CVE-2024-38618-cc1b3b19"
},
{
"digest": {
"length": 1075.0,
"function_hash": "101938973137073845626192185809220404911"
},
"signature_type": "Function",
"target": {
"function": "snd_timer_start1",
"file": "sound/core/timer.c"
},
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@abb1ad69d98cf1ff25bb14fff0e7c3f66239e1cd",
"id": "CVE-2024-38618-ce25e677"
},
{
"digest": {
"threshold": 0.9,
"line_hashes": [
"134096848761299651210179923304226564486",
"309513232057590855560721777152417111593",
"3793220946494804255243975856860686677"
]
},
"signature_type": "Line",
"target": {
"file": "sound/core/timer.c"
},
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@2c95241ac5fc90c929d6c0c023e84bf0d30e84c3",
"id": "CVE-2024-38618-dc4cf0df"
},
{
"digest": {
"length": 1164.0,
"function_hash": "154454073089889180259115213033264798469"
},
"signature_type": "Function",
"target": {
"function": "snd_timer_start1",
"file": "sound/core/timer.c"
},
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@83f0ba8592b9e258fd80ac6486510ab1dcd7ad6e",
"id": "CVE-2024-38618-e92a51bc"
},
{
"digest": {
"threshold": 0.9,
"line_hashes": [
"134096848761299651210179923304226564486",
"309513232057590855560721777152417111593",
"3793220946494804255243975856860686677"
]
},
"signature_type": "Line",
"target": {
"file": "sound/core/timer.c"
},
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@83f0ba8592b9e258fd80ac6486510ab1dcd7ad6e",
"id": "CVE-2024-38618-ea049812"
},
{
"digest": {
"threshold": 0.9,
"line_hashes": [
"134096848761299651210179923304226564486",
"309513232057590855560721777152417111593",
"3793220946494804255243975856860686677"
]
},
"signature_type": "Line",
"target": {
"file": "sound/core/timer.c"
},
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@74bfb8d90f2601718ae203faf45a196844c01fa1",
"id": "CVE-2024-38618-eb22e440"
},
{
"digest": {
"threshold": 0.9,
"line_hashes": [
"134096848761299651210179923304226564486",
"309513232057590855560721777152417111593",
"3793220946494804255243975856860686677"
]
},
"signature_type": "Line",
"target": {
"file": "sound/core/timer.c"
},
"deprecated": false,
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@bdd0aa055b8ec7e24bbc19513f3231958741d0ab",
"id": "CVE-2024-38618-f9039f43"
}
]