In the Linux kernel, the following vulnerability has been resolved:
i2c: lpi2c: Avoid calling clkgetrate during transfer
Instead of repeatedly calling clkgetrate for each transfer, lock the clock rate and cache the value. A deadlock has been observed while adding tlv320aic32x4 audio codec to the system. When this clock provider adds its clock, the clk mutex is locked already, it needs to access i2c, which in return needs the mutex for clkgetrate as well.
{ "vanir_signatures": [ { "signature_version": "v1", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@4268254a39484fc11ba991ae148bacbe75d9cc0a", "signature_type": "Function", "target": { "function": "lpi2c_imx_probe", "file": "drivers/i2c/busses/i2c-imx-lpi2c.c" }, "deprecated": false, "digest": { "length": 1969.0, "function_hash": "249161286595947077435371031931063064645" }, "id": "CVE-2024-40965-3c980f31" }, { "signature_version": "v1", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@4268254a39484fc11ba991ae148bacbe75d9cc0a", "signature_type": "Function", "target": { "function": "lpi2c_imx_config", "file": "drivers/i2c/busses/i2c-imx-lpi2c.c" }, "deprecated": false, "digest": { "length": 1071.0, "function_hash": "125972088890356409380156362522189878084" }, "id": "CVE-2024-40965-63902f79" }, { "signature_version": "v1", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@2b42e9587a7a9c7b824e0feb92958f258263963e", "signature_type": "Function", "target": { "function": "lpi2c_imx_config", "file": "drivers/i2c/busses/i2c-imx-lpi2c.c" }, "deprecated": false, "digest": { "length": 1071.0, "function_hash": "125972088890356409380156362522189878084" }, "id": "CVE-2024-40965-6ac44781" }, { "signature_version": "v1", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@d038693e08adf9c162c6377800495e4f5a2df045", "signature_type": "Function", "target": { "function": "lpi2c_imx_config", "file": "drivers/i2c/busses/i2c-imx-lpi2c.c" }, "deprecated": false, "digest": { "length": 1071.0, "function_hash": "125972088890356409380156362522189878084" }, "id": "CVE-2024-40965-6d1a8586" }, { "signature_version": "v1", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@2b42e9587a7a9c7b824e0feb92958f258263963e", "signature_type": "Function", "target": { "function": "lpi2c_imx_probe", "file": "drivers/i2c/busses/i2c-imx-lpi2c.c" }, "deprecated": false, "digest": { "length": 1969.0, "function_hash": "249161286595947077435371031931063064645" }, "id": "CVE-2024-40965-77961ff3" }, { "signature_version": "v1", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@4268254a39484fc11ba991ae148bacbe75d9cc0a", "signature_type": "Line", "target": { "file": "drivers/i2c/busses/i2c-imx-lpi2c.c" }, "deprecated": false, "digest": { "line_hashes": [ "325395197386514749229292209355203478252", "332996809185654440391974304112276116450", "94777366471436883003142852100319199941", "72824897393198884848683824930739131998", "148355293243172318341381526433214690617", "244132595293094618302212307435355348948", "131617812468682012081680234024238493332", "244283079424721532340286609852493303320", "237659988088852954268026008679668069788", "130451445523550468077431944035131119449", "114359085205269073496554848887722129717", "195641576716019366519063820000701514076", "257294298994909164972153486918936769053" ], "threshold": 0.9 }, "id": "CVE-2024-40965-92a71a06" }, { "signature_version": "v1", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@d038693e08adf9c162c6377800495e4f5a2df045", "signature_type": "Line", "target": { "file": "drivers/i2c/busses/i2c-imx-lpi2c.c" }, "deprecated": false, "digest": { "line_hashes": [ "325395197386514749229292209355203478252", "332996809185654440391974304112276116450", "94777366471436883003142852100319199941", "72824897393198884848683824930739131998", "148355293243172318341381526433214690617", "244132595293094618302212307435355348948", "131617812468682012081680234024238493332", "244283079424721532340286609852493303320", "237659988088852954268026008679668069788", "130451445523550468077431944035131119449", "114359085205269073496554848887722129717", "195641576716019366519063820000701514076", "257294298994909164972153486918936769053" ], "threshold": 0.9 }, "id": "CVE-2024-40965-a46fb83d" }, { "signature_version": "v1", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@2b42e9587a7a9c7b824e0feb92958f258263963e", "signature_type": "Line", "target": { "file": "drivers/i2c/busses/i2c-imx-lpi2c.c" }, "deprecated": false, "digest": { "line_hashes": [ "325395197386514749229292209355203478252", "332996809185654440391974304112276116450", "94777366471436883003142852100319199941", "72824897393198884848683824930739131998", "148355293243172318341381526433214690617", "244132595293094618302212307435355348948", "131617812468682012081680234024238493332", "244283079424721532340286609852493303320", "237659988088852954268026008679668069788", "130451445523550468077431944035131119449", "114359085205269073496554848887722129717", "195641576716019366519063820000701514076", "257294298994909164972153486918936769053" ], "threshold": 0.9 }, "id": "CVE-2024-40965-addf9c00" }, { "signature_version": "v1", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@d038693e08adf9c162c6377800495e4f5a2df045", "signature_type": "Function", "target": { "function": "lpi2c_imx_probe", "file": "drivers/i2c/busses/i2c-imx-lpi2c.c" }, "deprecated": false, "digest": { "length": 1888.0, "function_hash": "101614699719437996214819815655066789247" }, "id": "CVE-2024-40965-bfb0fa83" } ] }