In the Linux kernel, the following vulnerability has been resolved:
iio: light: opt3001: fix deadlock due to concurrent flag access
The threaded IRQ function in this driver is reading the flag twice: once to lock a mutex and once to unlock it. Even though the code setting the flag is designed to prevent it, there are subtle cases where the flag could be true at the mutexlock stage and false at the mutexunlock stage. This results in the mutex not being unlocked, resulting in a deadlock.
Fix it by making the opt3001_irq() code generally more robust, reading the flag into a variable and using the variable value at both stages.
[
{
"id": "CVE-2025-37968-42caf3f6",
"target": {
"file": "drivers/iio/light/opt3001.c"
},
"digest": {
"threshold": 0.9,
"line_hashes": [
"53745283235623132763691994336367845363",
"274011206175609885152813910958328447141",
"289805739766141728824564995738850751498",
"133393689618607097518674191510284638991",
"22280797352206499943004586411939543707",
"247763907613668942972218701991323419197",
"105062727381210537461334373967117886073",
"74720227492634763461773533173035332776",
"33471224890657395582898573346594313541"
]
},
"deprecated": false,
"signature_type": "Line",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@957e8be112636d9bc692917286e81e54bd87decc",
"signature_version": "v1"
},
{
"id": "CVE-2025-37968-45cba5ae",
"target": {
"file": "drivers/iio/light/opt3001.c"
},
"digest": {
"threshold": 0.9,
"line_hashes": [
"53745283235623132763691994336367845363",
"274011206175609885152813910958328447141",
"289805739766141728824564995738850751498",
"133393689618607097518674191510284638991",
"22280797352206499943004586411939543707",
"247763907613668942972218701991323419197",
"105062727381210537461334373967117886073",
"74720227492634763461773533173035332776",
"33471224890657395582898573346594313541"
]
},
"deprecated": false,
"signature_type": "Line",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a9c56ccb7cddfca754291fb24b108a5350a5fbe9",
"signature_version": "v1"
},
{
"id": "CVE-2025-37968-7a27b8ab",
"target": {
"file": "drivers/iio/light/opt3001.c",
"function": "opt3001_irq"
},
"digest": {
"length": 1178.0,
"function_hash": "10298137153039025793988911497663807240"
},
"deprecated": false,
"signature_type": "Function",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@748ebd8e61d0bc182c331b8df3887af7285c8a8f",
"signature_version": "v1"
},
{
"id": "CVE-2025-37968-7cccac9c",
"target": {
"file": "drivers/iio/light/opt3001.c",
"function": "opt3001_irq"
},
"digest": {
"length": 1178.0,
"function_hash": "10298137153039025793988911497663807240"
},
"deprecated": false,
"signature_type": "Function",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a9c56ccb7cddfca754291fb24b108a5350a5fbe9",
"signature_version": "v1"
},
{
"id": "CVE-2025-37968-8577e5bd",
"target": {
"file": "drivers/iio/light/opt3001.c"
},
"digest": {
"threshold": 0.9,
"line_hashes": [
"53745283235623132763691994336367845363",
"274011206175609885152813910958328447141",
"289805739766141728824564995738850751498",
"133393689618607097518674191510284638991",
"22280797352206499943004586411939543707",
"247763907613668942972218701991323419197",
"105062727381210537461334373967117886073",
"74720227492634763461773533173035332776",
"33471224890657395582898573346594313541"
]
},
"deprecated": false,
"signature_type": "Line",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@1d7def97e7eb65865ccc01bbdf4eb9e6bbe8a5b5",
"signature_version": "v1"
},
{
"id": "CVE-2025-37968-89f44c77",
"target": {
"file": "drivers/iio/light/opt3001.c"
},
"digest": {
"threshold": 0.9,
"line_hashes": [
"53745283235623132763691994336367845363",
"274011206175609885152813910958328447141",
"289805739766141728824564995738850751498",
"133393689618607097518674191510284638991",
"22280797352206499943004586411939543707",
"247763907613668942972218701991323419197",
"105062727381210537461334373967117886073",
"74720227492634763461773533173035332776",
"33471224890657395582898573346594313541"
]
},
"deprecated": false,
"signature_type": "Line",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@e791bf216c9e236b34dabf514ec0ede140cca719",
"signature_version": "v1"
},
{
"id": "CVE-2025-37968-8d7df7a8",
"target": {
"file": "drivers/iio/light/opt3001.c",
"function": "opt3001_irq"
},
"digest": {
"length": 1178.0,
"function_hash": "10298137153039025793988911497663807240"
},
"deprecated": false,
"signature_type": "Function",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@e791bf216c9e236b34dabf514ec0ede140cca719",
"signature_version": "v1"
},
{
"id": "CVE-2025-37968-aae2c563",
"target": {
"file": "drivers/iio/light/opt3001.c",
"function": "opt3001_irq"
},
"digest": {
"length": 1204.0,
"function_hash": "202722763434326440247254487402967608400"
},
"deprecated": false,
"signature_type": "Function",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@2c95c8f0959d0a72575eabf2ff888f47ed6d8b77",
"signature_version": "v1"
},
{
"id": "CVE-2025-37968-af470e34",
"target": {
"file": "drivers/iio/light/opt3001.c"
},
"digest": {
"threshold": 0.9,
"line_hashes": [
"63148005516263624898864920192965278502",
"267935134946384663294942416255548324418",
"27111273753615570007657789652945052041",
"217045956477164409438243539802587748824",
"22280797352206499943004586411939543707",
"247763907613668942972218701991323419197",
"105062727381210537461334373967117886073",
"74720227492634763461773533173035332776",
"33471224890657395582898573346594313541"
]
},
"deprecated": false,
"signature_type": "Line",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@f063a28002e3350088b4577c5640882bf4ea17ea",
"signature_version": "v1"
},
{
"id": "CVE-2025-37968-c5932599",
"target": {
"file": "drivers/iio/light/opt3001.c",
"function": "opt3001_irq"
},
"digest": {
"length": 1204.0,
"function_hash": "202722763434326440247254487402967608400"
},
"deprecated": false,
"signature_type": "Function",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@f063a28002e3350088b4577c5640882bf4ea17ea",
"signature_version": "v1"
},
{
"id": "CVE-2025-37968-d6b6a9c8",
"target": {
"file": "drivers/iio/light/opt3001.c",
"function": "opt3001_irq"
},
"digest": {
"length": 1178.0,
"function_hash": "10298137153039025793988911497663807240"
},
"deprecated": false,
"signature_type": "Function",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@7ca84f6a22d50bf8b31efe9eb05f9859947266d7",
"signature_version": "v1"
},
{
"id": "CVE-2025-37968-e4cf558b",
"target": {
"file": "drivers/iio/light/opt3001.c"
},
"digest": {
"threshold": 0.9,
"line_hashes": [
"53745283235623132763691994336367845363",
"274011206175609885152813910958328447141",
"289805739766141728824564995738850751498",
"133393689618607097518674191510284638991",
"22280797352206499943004586411939543707",
"247763907613668942972218701991323419197",
"105062727381210537461334373967117886073",
"74720227492634763461773533173035332776",
"33471224890657395582898573346594313541"
]
},
"deprecated": false,
"signature_type": "Line",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@7ca84f6a22d50bf8b31efe9eb05f9859947266d7",
"signature_version": "v1"
},
{
"id": "CVE-2025-37968-ea38df60",
"target": {
"file": "drivers/iio/light/opt3001.c",
"function": "opt3001_irq"
},
"digest": {
"length": 1178.0,
"function_hash": "10298137153039025793988911497663807240"
},
"deprecated": false,
"signature_type": "Function",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@957e8be112636d9bc692917286e81e54bd87decc",
"signature_version": "v1"
},
{
"id": "CVE-2025-37968-ef8623fc",
"target": {
"file": "drivers/iio/light/opt3001.c",
"function": "opt3001_irq"
},
"digest": {
"length": 1178.0,
"function_hash": "10298137153039025793988911497663807240"
},
"deprecated": false,
"signature_type": "Function",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@1d7def97e7eb65865ccc01bbdf4eb9e6bbe8a5b5",
"signature_version": "v1"
},
{
"id": "CVE-2025-37968-f019e2f4",
"target": {
"file": "drivers/iio/light/opt3001.c"
},
"digest": {
"threshold": 0.9,
"line_hashes": [
"63148005516263624898864920192965278502",
"267935134946384663294942416255548324418",
"27111273753615570007657789652945052041",
"217045956477164409438243539802587748824",
"22280797352206499943004586411939543707",
"247763907613668942972218701991323419197",
"105062727381210537461334373967117886073",
"74720227492634763461773533173035332776",
"33471224890657395582898573346594313541"
]
},
"deprecated": false,
"signature_type": "Line",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@2c95c8f0959d0a72575eabf2ff888f47ed6d8b77",
"signature_version": "v1"
},
{
"id": "CVE-2025-37968-fc044255",
"target": {
"file": "drivers/iio/light/opt3001.c"
},
"digest": {
"threshold": 0.9,
"line_hashes": [
"53745283235623132763691994336367845363",
"274011206175609885152813910958328447141",
"289805739766141728824564995738850751498",
"133393689618607097518674191510284638991",
"22280797352206499943004586411939543707",
"247763907613668942972218701991323419197",
"105062727381210537461334373967117886073",
"74720227492634763461773533173035332776",
"33471224890657395582898573346594313541"
]
},
"deprecated": false,
"signature_type": "Line",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@748ebd8e61d0bc182c331b8df3887af7285c8a8f",
"signature_version": "v1"
}
]