alsa-lib versions 1.2.2 up to and including 1.2.15.2, prior to commit 5f7fe33, contain a heap-based buffer overflow in the topology mixer control decoder. The tplgdecodecontrolmixer1() function reads the numchannels field from untrusted .tplg data and uses it as a loop bound without validating it against the fixed-size channel array (SNDTPLGMAXCHAN). A crafted topology file with an excessive numchannels value can cause out-of-bounds heap writes, leading to a crash.
{
"binaries": [
{
"binary_name": "libasound2",
"binary_version": "1.2.2-2.1ubuntu2.5"
},
{
"binary_name": "libasound2-data",
"binary_version": "1.2.2-2.1ubuntu2.5"
},
{
"binary_name": "libasound2-dev",
"binary_version": "1.2.2-2.1ubuntu2.5"
},
{
"binary_name": "libasound2-plugin-smixer",
"binary_version": "1.2.2-2.1ubuntu2.5"
},
{
"binary_name": "libatopology-dev",
"binary_version": "1.2.2-2.1ubuntu2.5"
},
{
"binary_name": "libatopology2",
"binary_version": "1.2.2-2.1ubuntu2.5"
}
]
}
{
"availability": "No subscription required",
"binaries": [
{
"binary_name": "libasound2",
"binary_version": "1.2.6.1-1ubuntu1.1"
},
{
"binary_name": "libasound2-data",
"binary_version": "1.2.6.1-1ubuntu1.1"
},
{
"binary_name": "libasound2-dev",
"binary_version": "1.2.6.1-1ubuntu1.1"
},
{
"binary_name": "libasound2-plugin-smixer",
"binary_version": "1.2.6.1-1ubuntu1.1"
},
{
"binary_name": "libatopology-dev",
"binary_version": "1.2.6.1-1ubuntu1.1"
},
{
"binary_name": "libatopology2",
"binary_version": "1.2.6.1-1ubuntu1.1"
}
]
}
{
"availability": "No subscription required",
"binaries": [
{
"binary_name": "libasound2-data",
"binary_version": "1.2.11-1ubuntu0.2"
},
{
"binary_name": "libasound2-dev",
"binary_version": "1.2.11-1ubuntu0.2"
},
{
"binary_name": "libasound2-plugin-smixer",
"binary_version": "1.2.11-1ubuntu0.2"
},
{
"binary_name": "libasound2t64",
"binary_version": "1.2.11-1ubuntu0.2"
},
{
"binary_name": "libatopology-dev",
"binary_version": "1.2.11-1ubuntu0.2"
},
{
"binary_name": "libatopology2t64",
"binary_version": "1.2.11-1ubuntu0.2"
}
]
}
{
"availability": "No subscription required",
"binaries": [
{
"binary_name": "libasound2-data",
"binary_version": "1.2.14-1ubuntu1.1"
},
{
"binary_name": "libasound2-dev",
"binary_version": "1.2.14-1ubuntu1.1"
},
{
"binary_name": "libasound2-plugin-smixer",
"binary_version": "1.2.14-1ubuntu1.1"
},
{
"binary_name": "libasound2t64",
"binary_version": "1.2.14-1ubuntu1.1"
},
{
"binary_name": "libatopology-dev",
"binary_version": "1.2.14-1ubuntu1.1"
},
{
"binary_name": "libatopology2t64",
"binary_version": "1.2.14-1ubuntu1.1"
}
]
}