In the Linux kernel, the following vulnerability has been resolved:
drm/msm/dpu: Add mutex lock in control vblank irq
Add a mutex lock to control vblank irq to synchronize vblank enable/disable operations happening from different threads to prevent race conditions while registering/unregistering the vblank irq callback.
v4: -Removed vblankctllock from dpuencodervirt, so it is only a parameter of dpuencoderphys. -Switch from atomic refcnt to a simple int counter as mutex has now been added v3: Mistakenly did not change wording in last version. It is done now. v2: Slightly changed wording of commit message
Patchwork: https://patchwork.freedesktop.org/patch/571854/
[
{
"deprecated": false,
"id": "CVE-2023-52586-164fcf58",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@14f109bf74dd67e1d0469fed859c8e506b0df53f",
"digest": {
"line_hashes": [
"53379050050581112683413881549288178379",
"230140897050662518692074706564056540570",
"22366296264692619909627432151399379743",
"55865905965158253740576657109938198566",
"45187751187277936561330073553471685712",
"144874697272859715355828504298456819375",
"130980303365809470078078788067724196477",
"261541440361491087110401623518275584186",
"90411467872538928228119982930816963992",
"105333465707665250498957347697325842916",
"285728150040329875185381003630461112369",
"84838730466872867377021465540900863982",
"320321824697611661713830297108382817017",
"270156712754235533152281222984687689248",
"227972967322449406856614169524070934290",
"71447271849613717543344477787686565210",
"126904681118022986606412979029716940432",
"177856609966855579389818126459221100587",
"268774727155588185508615296496144766467",
"170660804117354970548491607826179849913",
"239854158382929354419113917258965725357",
"61149566997663986524002958634564239689",
"112272590159319513140991701488567497343"
],
"threshold": 0.9
},
"target": {
"file": "drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_cmd.c"
},
"signature_type": "Line",
"signature_version": "v1"
},
{
"deprecated": false,
"id": "CVE-2023-52586-190600b0",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@45284ff733e4caf6c118aae5131eb7e7cf3eea5a",
"digest": {
"line_hashes": [
"132817199680338378479745764952239825899",
"23864126197301683834674756337288290649",
"231364723845622132775825977890938057469",
"78444926623967571810636264373540695898"
],
"threshold": 0.9
},
"target": {
"file": "drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c"
},
"signature_type": "Line",
"signature_version": "v1"
},
{
"deprecated": false,
"id": "CVE-2023-52586-1b2e80bf",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@14f109bf74dd67e1d0469fed859c8e506b0df53f",
"digest": {
"function_hash": "242992180743335144745858993947669997506",
"length": 983.0
},
"target": {
"function": "dpu_encoder_phys_cmd_control_vblank_irq",
"file": "drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_cmd.c"
},
"signature_type": "Function",
"signature_version": "v1"
},
{
"deprecated": false,
"id": "CVE-2023-52586-27d32f44",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@45284ff733e4caf6c118aae5131eb7e7cf3eea5a",
"digest": {
"line_hashes": [
"330567290074130432720223402933012324357",
"291626599984896132704261866825515693684",
"151539529120362583030558092038768180957",
"171606672771740659742743241948922427271",
"241928582322411640165175888347977563489",
"339856556211971222977851190258746618990",
"24895058737657577776386335331992125273",
"70627987252179671594134601603116316406",
"73186714201298611904339237790239009254",
"85570510025732964886455694589776029629",
"16691563319053065024853252408729588120",
"293416067179369530046638175841121455972"
],
"threshold": 0.9
},
"target": {
"file": "drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys.h"
},
"signature_type": "Line",
"signature_version": "v1"
},
{
"deprecated": false,
"id": "CVE-2023-52586-2b459d61",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@45284ff733e4caf6c118aae5131eb7e7cf3eea5a",
"digest": {
"function_hash": "287055121678586999026546831233483709855",
"length": 889.0
},
"target": {
"function": "dpu_encoder_phys_cmd_init",
"file": "drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_cmd.c"
},
"signature_type": "Function",
"signature_version": "v1"
},
{
"deprecated": false,
"id": "CVE-2023-52586-2f8c3d15",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@45284ff733e4caf6c118aae5131eb7e7cf3eea5a",
"digest": {
"line_hashes": [
"53379050050581112683413881549288178379",
"230140897050662518692074706564056540570",
"22366296264692619909627432151399379743",
"55865905965158253740576657109938198566",
"45187751187277936561330073553471685712",
"144874697272859715355828504298456819375",
"130980303365809470078078788067724196477",
"261541440361491087110401623518275584186",
"90411467872538928228119982930816963992",
"105333465707665250498957347697325842916",
"285728150040329875185381003630461112369",
"84838730466872867377021465540900863982",
"320321824697611661713830297108382817017",
"270156712754235533152281222984687689248",
"227972967322449406856614169524070934290",
"71447271849613717543344477787686565210",
"126904681118022986606412979029716940432",
"177856609966855579389818126459221100587",
"268774727155588185508615296496144766467",
"170660804117354970548491607826179849913",
"239854158382929354419113917258965725357",
"61149566997663986524002958634564239689",
"112272590159319513140991701488567497343"
],
"threshold": 0.9
},
"target": {
"file": "drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_cmd.c"
},
"signature_type": "Line",
"signature_version": "v1"
},
{
"deprecated": false,
"id": "CVE-2023-52586-4335ad8e",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@45284ff733e4caf6c118aae5131eb7e7cf3eea5a",
"digest": {
"function_hash": "290348068663986323226540306233643560588",
"length": 502.0
},
"target": {
"function": "dpu_encoder_phys_vid_irq_control",
"file": "drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_vid.c"
},
"signature_type": "Function",
"signature_version": "v1"
},
{
"deprecated": false,
"id": "CVE-2023-52586-4ef4d86f",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@14f109bf74dd67e1d0469fed859c8e506b0df53f",
"digest": {
"function_hash": "290348068663986323226540306233643560588",
"length": 502.0
},
"target": {
"function": "dpu_encoder_phys_vid_irq_control",
"file": "drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_vid.c"
},
"signature_type": "Function",
"signature_version": "v1"
},
{
"deprecated": false,
"id": "CVE-2023-52586-56290a1d",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@14f109bf74dd67e1d0469fed859c8e506b0df53f",
"digest": {
"line_hashes": [
"132817199680338378479745764952239825899",
"23864126197301683834674756337288290649",
"231364723845622132775825977890938057469",
"78444926623967571810636264373540695898"
],
"threshold": 0.9
},
"target": {
"file": "drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c"
},
"signature_type": "Line",
"signature_version": "v1"
},
{
"deprecated": false,
"id": "CVE-2023-52586-5921603a",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@45284ff733e4caf6c118aae5131eb7e7cf3eea5a",
"digest": {
"function_hash": "242992180743335144745858993947669997506",
"length": 983.0
},
"target": {
"function": "dpu_encoder_phys_cmd_control_vblank_irq",
"file": "drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_cmd.c"
},
"signature_type": "Function",
"signature_version": "v1"
},
{
"deprecated": false,
"id": "CVE-2023-52586-5a075a8e",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@45284ff733e4caf6c118aae5131eb7e7cf3eea5a",
"digest": {
"line_hashes": [
"283282682606389241046729951360248057217",
"259012996455239633390299099987670056631",
"201982087700178071132110757965089246216",
"315476076038985789935553222701642182750",
"258820938584249498631231124721811496217",
"38518541107719239992457337149875575505",
"301556626577037931244027976103116566305",
"140734656469043277633623350060166740058",
"95850681201166760297709313676278038046",
"65010529212569762146513639177835820224",
"280530535009422274227535340650333198640",
"133492498540827361368914531245426567317",
"20038966207944044906750164453909994915",
"3177288067462189075086477357238140303",
"49536733002536564712772385651703662537",
"194763789143569013396868951863628916814",
"216139595146448154853133209088625043648",
"47755595280050747695286281849958874242",
"140877551945406004864230346826743759992",
"15275699254321886978548133459238127156",
"240349519834127516621389089285542531708",
"211941641938411548089499576128439669394",
"44515461842993520913682143057414275430",
"298636609026330213284626549382472202909",
"8555921577831232673098838795590540290"
],
"threshold": 0.9
},
"target": {
"file": "drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_vid.c"
},
"signature_type": "Line",
"signature_version": "v1"
},
{
"deprecated": false,
"id": "CVE-2023-52586-6144b975",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@45284ff733e4caf6c118aae5131eb7e7cf3eea5a",
"digest": {
"function_hash": "23479811944148838675993153245097051586",
"length": 578.0
},
"target": {
"function": "dpu_encoder_phys_vid_init",
"file": "drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_vid.c"
},
"signature_type": "Function",
"signature_version": "v1"
},
{
"deprecated": false,
"id": "CVE-2023-52586-72136bb6",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@14f109bf74dd67e1d0469fed859c8e506b0df53f",
"digest": {
"function_hash": "248933644414677388410464654257938842567",
"length": 874.0
},
"target": {
"function": "dpu_encoder_phys_cmd_irq_control",
"file": "drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_cmd.c"
},
"signature_type": "Function",
"signature_version": "v1"
},
{
"deprecated": false,
"id": "CVE-2023-52586-8c3cef98",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@14f109bf74dd67e1d0469fed859c8e506b0df53f",
"digest": {
"function_hash": "178601426682823867139044490431655377551",
"length": 554.0
},
"target": {
"function": "dpu_encoder_phys_vid_init",
"file": "drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_vid.c"
},
"signature_type": "Function",
"signature_version": "v1"
},
{
"deprecated": false,
"id": "CVE-2023-52586-8efadace",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@14f109bf74dd67e1d0469fed859c8e506b0df53f",
"digest": {
"function_hash": "244257706700183851081968320680940393142",
"length": 865.0
},
"target": {
"function": "dpu_encoder_phys_cmd_init",
"file": "drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_cmd.c"
},
"signature_type": "Function",
"signature_version": "v1"
},
{
"deprecated": false,
"id": "CVE-2023-52586-a024d5c9",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@14f109bf74dd67e1d0469fed859c8e506b0df53f",
"digest": {
"function_hash": "73816021990678216896963470501218712290",
"length": 853.0
},
"target": {
"function": "dpu_encoder_phys_vid_control_vblank_irq",
"file": "drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_vid.c"
},
"signature_type": "Function",
"signature_version": "v1"
},
{
"deprecated": false,
"id": "CVE-2023-52586-aec2139e",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@45284ff733e4caf6c118aae5131eb7e7cf3eea5a",
"digest": {
"function_hash": "162518008287441266126216463665936076706",
"length": 658.0
},
"target": {
"function": "dpu_encoder_phys_init",
"file": "drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c"
},
"signature_type": "Function",
"signature_version": "v1"
},
{
"deprecated": false,
"id": "CVE-2023-52586-c7621a31",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@14f109bf74dd67e1d0469fed859c8e506b0df53f",
"digest": {
"line_hashes": [
"283282682606389241046729951360248057217",
"259012996455239633390299099987670056631",
"201982087700178071132110757965089246216",
"315476076038985789935553222701642182750",
"258820938584249498631231124721811496217",
"38518541107719239992457337149875575505",
"301556626577037931244027976103116566305",
"140734656469043277633623350060166740058",
"95850681201166760297709313676278038046",
"65010529212569762146513639177835820224",
"280530535009422274227535340650333198640",
"133492498540827361368914531245426567317",
"20038966207944044906750164453909994915",
"3177288067462189075086477357238140303",
"49536733002536564712772385651703662537",
"194763789143569013396868951863628916814",
"216139595146448154853133209088625043648",
"47755595280050747695286281849958874242",
"140877551945406004864230346826743759992",
"15275699254321886978548133459238127156",
"240349519834127516621389089285542531708",
"211941641938411548089499576128439669394",
"44515461842993520913682143057414275430",
"298636609026330213284626549382472202909",
"8555921577831232673098838795590540290"
],
"threshold": 0.9
},
"target": {
"file": "drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_vid.c"
},
"signature_type": "Line",
"signature_version": "v1"
},
{
"deprecated": false,
"id": "CVE-2023-52586-d9e273b8",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@14f109bf74dd67e1d0469fed859c8e506b0df53f",
"digest": {
"line_hashes": [
"330567290074130432720223402933012324357",
"291626599984896132704261866825515693684",
"151539529120362583030558092038768180957",
"286815437969053448215863776399363004025",
"162502400917985897213455351217853457898",
"339856556211971222977851190258746618990",
"24895058737657577776386335331992125273",
"70627987252179671594134601603116316406",
"73186714201298611904339237790239009254",
"85570510025732964886455694589776029629",
"16691563319053065024853252408729588120",
"293416067179369530046638175841121455972"
],
"threshold": 0.9
},
"target": {
"file": "drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys.h"
},
"signature_type": "Line",
"signature_version": "v1"
},
{
"deprecated": false,
"id": "CVE-2023-52586-dc01fb57",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@45284ff733e4caf6c118aae5131eb7e7cf3eea5a",
"digest": {
"function_hash": "248933644414677388410464654257938842567",
"length": 874.0
},
"target": {
"function": "dpu_encoder_phys_cmd_irq_control",
"file": "drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_cmd.c"
},
"signature_type": "Function",
"signature_version": "v1"
},
{
"deprecated": false,
"id": "CVE-2023-52586-f14f208a",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@14f109bf74dd67e1d0469fed859c8e506b0df53f",
"digest": {
"function_hash": "162518008287441266126216463665936076706",
"length": 658.0
},
"target": {
"function": "dpu_encoder_phys_init",
"file": "drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c"
},
"signature_type": "Function",
"signature_version": "v1"
},
{
"deprecated": false,
"id": "CVE-2023-52586-fbd5f099",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@45284ff733e4caf6c118aae5131eb7e7cf3eea5a",
"digest": {
"function_hash": "73816021990678216896963470501218712290",
"length": 853.0
},
"target": {
"function": "dpu_encoder_phys_vid_control_vblank_irq",
"file": "drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_vid.c"
},
"signature_type": "Function",
"signature_version": "v1"
}
]