In the Linux kernel, the following vulnerability has been resolved:
iio: Fix the sorting functionality in iiogtsbuildavailtime_table
The sorting in iiogtsbuildavailtime_table is not working as intended. It could result in an out-of-bounds access when the time is zero.
Here are more details:
3, 0, 1, the inner for-loop will not terminate and do
out-of-bound writes. This is because once times[j] > new, the value
new will be added in the current position and the times[j] will be
moved to j+1 position, which makes the if-condition always hold.
Meanwhile, idx will be added one, making the loop keep running without
termination and out-of-bound write.For more details, please refer to https://lore.kernel.org/all/6dd0d822-046c-4dd2-9532-79d7ab96ec05@gmail.com.
[
{
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@31ff8464ef540785344994986a010031410f9ff3",
"id": "CVE-2024-43825-09ba4c1a",
"target": {
"file": "drivers/iio/industrialio-gts-helper.c"
},
"deprecated": false,
"digest": {
"threshold": 0.9,
"line_hashes": [
"127060211763066042753704345674454525777",
"121629038936822160852457435216844718189",
"73205434750768244714729114203199563555",
"272646699128014812104408896779830663627",
"73867400717754448675790539486444402580",
"88845988432148939598236903912073364030",
"38365844261694626424864076644766173285",
"328693112997514189870923168067452265037",
"108141469629790537439416508136015864998",
"252498574320474132332644259398011607114",
"312561577511945557273063792263525278127",
"16088316066663513270661286528588105956",
"227639465630318890389508663619922496819"
]
},
"signature_type": "Line"
},
{
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@5acc3f971a01be48d5ff4252d8f9cdb87998cdfb",
"id": "CVE-2024-43825-1f05f6bc",
"target": {
"function": "iio_gts_build_avail_time_table",
"file": "drivers/iio/industrialio-gts-helper.c"
},
"deprecated": false,
"digest": {
"length": 832.0,
"function_hash": "299145870891090607900794959029133546921"
},
"signature_type": "Function"
},
{
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@b5046de32fd1532c3f67065197fc1da82f0b5193",
"id": "CVE-2024-43825-63198d3e",
"target": {
"file": "drivers/iio/industrialio-gts-helper.c"
},
"deprecated": false,
"digest": {
"threshold": 0.9,
"line_hashes": [
"127060211763066042753704345674454525777",
"121629038936822160852457435216844718189",
"73205434750768244714729114203199563555",
"272646699128014812104408896779830663627",
"73867400717754448675790539486444402580",
"88845988432148939598236903912073364030",
"38365844261694626424864076644766173285",
"328693112997514189870923168067452265037",
"108141469629790537439416508136015864998",
"252498574320474132332644259398011607114",
"312561577511945557273063792263525278127",
"16088316066663513270661286528588105956",
"227639465630318890389508663619922496819"
]
},
"signature_type": "Line"
},
{
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@b5046de32fd1532c3f67065197fc1da82f0b5193",
"id": "CVE-2024-43825-8260320f",
"target": {
"function": "iio_gts_build_avail_time_table",
"file": "drivers/iio/industrialio-gts-helper.c"
},
"deprecated": false,
"digest": {
"length": 832.0,
"function_hash": "299145870891090607900794959029133546921"
},
"signature_type": "Function"
},
{
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@31ff8464ef540785344994986a010031410f9ff3",
"id": "CVE-2024-43825-b8531290",
"target": {
"function": "iio_gts_build_avail_time_table",
"file": "drivers/iio/industrialio-gts-helper.c"
},
"deprecated": false,
"digest": {
"length": 832.0,
"function_hash": "299145870891090607900794959029133546921"
},
"signature_type": "Function"
},
{
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@5acc3f971a01be48d5ff4252d8f9cdb87998cdfb",
"id": "CVE-2024-43825-df96e2fb",
"target": {
"file": "drivers/iio/industrialio-gts-helper.c"
},
"deprecated": false,
"digest": {
"threshold": 0.9,
"line_hashes": [
"127060211763066042753704345674454525777",
"121629038936822160852457435216844718189",
"73205434750768244714729114203199563555",
"272646699128014812104408896779830663627",
"73867400717754448675790539486444402580",
"88845988432148939598236903912073364030",
"38365844261694626424864076644766173285",
"328693112997514189870923168067452265037",
"108141469629790537439416508136015864998",
"252498574320474132332644259398011607114",
"312561577511945557273063792263525278127",
"16088316066663513270661286528588105956",
"227639465630318890389508663619922496819"
]
},
"signature_type": "Line"
}
]