In the Linux kernel, the following vulnerability has been resolved:
hwrng: core - Fix page fault dead lock on mmap-ed hwrng
There is a dead-lock in the hwrng device read path. This triggers when the user reads from /dev/hwrng into memory also mmap-ed from /dev/hwrng. The resulting page fault triggers a recursive read which then dead-locks.
Fix this by using a stack buffer when calling copytouser.
{ "vanir_signatures": [ { "deprecated": false, "id": "CVE-2023-52615-01521d0c", "digest": { "function_hash": "60095903839143247059337811060220478784", "length": 88.0 }, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@78aafb3884f6bc6636efcc1760c891c8500b9922", "target": { "file": "drivers/char/hw_random/core.c", "function": "rng_buffer_size" }, "signature_type": "Function", "signature_version": "v1" }, { "deprecated": false, "id": "CVE-2023-52615-01dcd2e8", "digest": { "threshold": 0.9, "line_hashes": [ "118788732805656528413547393076949111584", "38768465362963571037700394327026228647", "4962791950256256111405115054483433351", "263438502776364716898849788705495752440", "90044765445241627854414441444853880226", "279800416022436706390139711048152803191", "310624710706141797076921813048590315221", "42083444541404768684109465858806562035", "80268864562327526031982373043706109158", "27679814513809867942394713468072683600", "43803469308069102122365223826794793641", "301653684409587310970041863229990310491", "129006551548980461374800374376770465207", "135635565540607272311337961388886203736", "72674897230272118948179419092807735582", "300186425724459265765308839294600904526", "171616813656877926734864425488613702556", "146260652097276429561082512606790013874", "150820227243308790784407464238871529636", "169205976886757677130961375495367667922", "24463388832511577763311420433840034210", "15309792385942919439714520301449041607", "57345863804665154767103335692984174613", "13356636670743270591603337565559238163", "48666430796643440952301495746624060873", "303279059086463837884213335333158174736", "308243389833365856219723971732673500246", "275190790943834066933631405046956314281", "309480174693037463498321448966284416747", "129440527662430648727152190362531402974", "310895854712090782171443692414763859053", "256066042173203500570505405168730542257", "119096367909609791477672735225773210079", "165418373018130538300003370957359108215", "313701032647186371236763779534854238105", "192543512793440520215680672591258806966", "105553771400584210061473472453427028549", "132529269036448548179920416634138399401", "196732850480621317241010832513124435464", "225974236419444477742746552121932611441", "109388128052665260361439665827095668367", "208311887706310661800366931151172095292", "206975597192620182871715498408592059116", "334340639620327730940606638206063582020" ] }, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@26cc6d7006f922df6cc4389248032d955750b2a0", "target": { "file": "drivers/char/hw_random/core.c" }, "signature_type": "Line", "signature_version": "v1" }, { "deprecated": false, "id": "CVE-2023-52615-08471aa1", "digest": { "function_hash": "60095903839143247059337811060220478784", "length": 88.0 }, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@eafd83b92f6c044007a3591cbd476bcf90455990", "target": { "file": "drivers/char/hw_random/core.c", "function": "rng_buffer_size" }, "signature_type": "Function", "signature_version": "v1" }, { "deprecated": false, "id": "CVE-2023-52615-158ab67c", "digest": { "function_hash": "60095903839143247059337811060220478784", "length": 88.0 }, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@aa8aa16ed9adf1df05bb339d588cf485a011839e", "target": { "file": "drivers/char/hw_random/core.c", "function": "rng_buffer_size" }, "signature_type": "Function", "signature_version": "v1" }, { "deprecated": false, "id": "CVE-2023-52615-20471cec", "digest": { "function_hash": "60095903839143247059337811060220478784", "length": 88.0 }, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@ecabe8cd456d3bf81e92c53b074732f3140f170d", "target": { "file": "drivers/char/hw_random/core.c", "function": "rng_buffer_size" }, "signature_type": "Function", "signature_version": "v1" }, { "deprecated": false, "id": "CVE-2023-52615-2dda86b9", "digest": { "function_hash": "60095903839143247059337811060220478784", "length": 88.0 }, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@5030d4c798863ccb266563201b341a099e8cdd48", "target": { "file": "drivers/char/hw_random/core.c", "function": "rng_buffer_size" }, "signature_type": "Function", "signature_version": "v1" }, { "deprecated": false, "id": "CVE-2023-52615-3745a66f", "digest": { "function_hash": "317426045387503950126610521206355679357", "length": 1170.0 }, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@aa8aa16ed9adf1df05bb339d588cf485a011839e", "target": { "file": "drivers/char/hw_random/core.c", "function": "rng_dev_read" }, "signature_type": "Function", "signature_version": "v1" }, { "deprecated": false, "id": "CVE-2023-52615-503cdd7e", "digest": { "function_hash": "60095903839143247059337811060220478784", "length": 88.0 }, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@c6a8111aacbfe7a8a70f46cc0de8eed00561693c", "target": { "file": "drivers/char/hw_random/core.c", "function": "rng_buffer_size" }, "signature_type": "Function", "signature_version": "v1" }, { "deprecated": false, "id": "CVE-2023-52615-55132237", "digest": { "threshold": 0.9, "line_hashes": [ "63320805699174889050023231005925712105", "175939172805780608888254911711576554159", "44178800555593031474381290133412732698", "263438502776364716898849788705495752440", "90044765445241627854414441444853880226", "279800416022436706390139711048152803191", "310624710706141797076921813048590315221", "42083444541404768684109465858806562035", "80268864562327526031982373043706109158", "27679814513809867942394713468072683600", "43803469308069102122365223826794793641", "301653684409587310970041863229990310491", "129006551548980461374800374376770465207", "135635565540607272311337961388886203736", "72674897230272118948179419092807735582", "300186425724459265765308839294600904526", "171616813656877926734864425488613702556", "146260652097276429561082512606790013874", "150820227243308790784407464238871529636", "169205976886757677130961375495367667922", "24463388832511577763311420433840034210", "15309792385942919439714520301449041607", "57345863804665154767103335692984174613", "13356636670743270591603337565559238163", "48666430796643440952301495746624060873", "303279059086463837884213335333158174736", "308243389833365856219723971732673500246", "275190790943834066933631405046956314281", "309480174693037463498321448966284416747", "129440527662430648727152190362531402974", "310895854712090782171443692414763859053", "256066042173203500570505405168730542257", "119096367909609791477672735225773210079", "165418373018130538300003370957359108215", "313701032647186371236763779534854238105", "192543512793440520215680672591258806966", "105553771400584210061473472453427028549", "132529269036448548179920416634138399401", "196732850480621317241010832513124435464", "225974236419444477742746552121932611441", "109388128052665260361439665827095668367", "208311887706310661800366931151172095292", "206975597192620182871715498408592059116", "334340639620327730940606638206063582020" ] }, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@6822a14271786150e178869f1495cc03e74c5029", "target": { "file": "drivers/char/hw_random/core.c" }, "signature_type": "Line", "signature_version": "v1" }, { "deprecated": false, "id": "CVE-2023-52615-66e52388", "digest": { "function_hash": "317426045387503950126610521206355679357", "length": 1170.0 }, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@eafd83b92f6c044007a3591cbd476bcf90455990", "target": { "file": "drivers/char/hw_random/core.c", "function": "rng_dev_read" }, "signature_type": "Function", "signature_version": "v1" }, { "deprecated": false, "id": "CVE-2023-52615-6b95293b", "digest": { "function_hash": "317426045387503950126610521206355679357", "length": 1170.0 }, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@ecabe8cd456d3bf81e92c53b074732f3140f170d", "target": { "file": "drivers/char/hw_random/core.c", "function": "rng_dev_read" }, "signature_type": "Function", "signature_version": "v1" }, { "deprecated": false, "id": "CVE-2023-52615-8faec924", "digest": { "function_hash": "317426045387503950126610521206355679357", "length": 1170.0 }, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@c6a8111aacbfe7a8a70f46cc0de8eed00561693c", "target": { "file": "drivers/char/hw_random/core.c", "function": "rng_dev_read" }, "signature_type": "Function", "signature_version": "v1" }, { "deprecated": false, "id": "CVE-2023-52615-9c166313", "digest": { "threshold": 0.9, "line_hashes": [ "63320805699174889050023231005925712105", "175939172805780608888254911711576554159", "44178800555593031474381290133412732698", "263438502776364716898849788705495752440", "90044765445241627854414441444853880226", "279800416022436706390139711048152803191", "310624710706141797076921813048590315221", "42083444541404768684109465858806562035", "80268864562327526031982373043706109158", "27679814513809867942394713468072683600", "43803469308069102122365223826794793641", "301653684409587310970041863229990310491", "129006551548980461374800374376770465207", "135635565540607272311337961388886203736", "72674897230272118948179419092807735582", "300186425724459265765308839294600904526", "171616813656877926734864425488613702556", "146260652097276429561082512606790013874", "150820227243308790784407464238871529636", "169205976886757677130961375495367667922", "24463388832511577763311420433840034210", "15309792385942919439714520301449041607", "57345863804665154767103335692984174613", "13356636670743270591603337565559238163", "48666430796643440952301495746624060873", "303279059086463837884213335333158174736", "308243389833365856219723971732673500246", "275190790943834066933631405046956314281", "309480174693037463498321448966284416747", "129440527662430648727152190362531402974", "310895854712090782171443692414763859053", "256066042173203500570505405168730542257", "119096367909609791477672735225773210079", "165418373018130538300003370957359108215", "313701032647186371236763779534854238105", "192543512793440520215680672591258806966", "105553771400584210061473472453427028549", "132529269036448548179920416634138399401", "196732850480621317241010832513124435464", "225974236419444477742746552121932611441", "109388128052665260361439665827095668367", "208311887706310661800366931151172095292", "206975597192620182871715498408592059116", "334340639620327730940606638206063582020" ] }, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@78aafb3884f6bc6636efcc1760c891c8500b9922", "target": { "file": "drivers/char/hw_random/core.c" }, "signature_type": "Line", "signature_version": "v1" }, { "deprecated": false, "id": "CVE-2023-52615-9d286b89", "digest": { "threshold": 0.9, "line_hashes": [ "118788732805656528413547393076949111584", "38768465362963571037700394327026228647", "4962791950256256111405115054483433351", "263438502776364716898849788705495752440", "90044765445241627854414441444853880226", "279800416022436706390139711048152803191", "310624710706141797076921813048590315221", "42083444541404768684109465858806562035", "80268864562327526031982373043706109158", "27679814513809867942394713468072683600", "43803469308069102122365223826794793641", "301653684409587310970041863229990310491", "129006551548980461374800374376770465207", "135635565540607272311337961388886203736", "72674897230272118948179419092807735582", "300186425724459265765308839294600904526", "171616813656877926734864425488613702556", "146260652097276429561082512606790013874", "150820227243308790784407464238871529636", "169205976886757677130961375495367667922", "24463388832511577763311420433840034210", "15309792385942919439714520301449041607", "57345863804665154767103335692984174613", "13356636670743270591603337565559238163", "48666430796643440952301495746624060873", "303279059086463837884213335333158174736", "308243389833365856219723971732673500246", "275190790943834066933631405046956314281", "309480174693037463498321448966284416747", "129440527662430648727152190362531402974", "310895854712090782171443692414763859053", "256066042173203500570505405168730542257", "119096367909609791477672735225773210079", "165418373018130538300003370957359108215", "313701032647186371236763779534854238105", "192543512793440520215680672591258806966", "105553771400584210061473472453427028549", "132529269036448548179920416634138399401", "196732850480621317241010832513124435464", "225974236419444477742746552121932611441", "109388128052665260361439665827095668367", "208311887706310661800366931151172095292", "206975597192620182871715498408592059116", "334340639620327730940606638206063582020" ] }, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@c6a8111aacbfe7a8a70f46cc0de8eed00561693c", "target": { "file": "drivers/char/hw_random/core.c" }, "signature_type": "Line", "signature_version": "v1" }, { "deprecated": false, "id": "CVE-2023-52615-a9daeb08", "digest": { "threshold": 0.9, "line_hashes": [ "118788732805656528413547393076949111584", "38768465362963571037700394327026228647", "4962791950256256111405115054483433351", "263438502776364716898849788705495752440", "90044765445241627854414441444853880226", "279800416022436706390139711048152803191", "310624710706141797076921813048590315221", "42083444541404768684109465858806562035", "80268864562327526031982373043706109158", "27679814513809867942394713468072683600", "43803469308069102122365223826794793641", "301653684409587310970041863229990310491", "129006551548980461374800374376770465207", "135635565540607272311337961388886203736", "72674897230272118948179419092807735582", "300186425724459265765308839294600904526", "171616813656877926734864425488613702556", "146260652097276429561082512606790013874", "150820227243308790784407464238871529636", "169205976886757677130961375495367667922", "24463388832511577763311420433840034210", "15309792385942919439714520301449041607", "57345863804665154767103335692984174613", "13356636670743270591603337565559238163", "48666430796643440952301495746624060873", "303279059086463837884213335333158174736", "308243389833365856219723971732673500246", "275190790943834066933631405046956314281", "309480174693037463498321448966284416747", "129440527662430648727152190362531402974", "310895854712090782171443692414763859053", "256066042173203500570505405168730542257", "119096367909609791477672735225773210079", "165418373018130538300003370957359108215", "313701032647186371236763779534854238105", "192543512793440520215680672591258806966", "105553771400584210061473472453427028549", "132529269036448548179920416634138399401", "196732850480621317241010832513124435464", "225974236419444477742746552121932611441", "109388128052665260361439665827095668367", "208311887706310661800366931151172095292", "206975597192620182871715498408592059116", "334340639620327730940606638206063582020" ] }, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@eafd83b92f6c044007a3591cbd476bcf90455990", "target": { "file": "drivers/char/hw_random/core.c" }, "signature_type": "Line", "signature_version": "v1" }, { "deprecated": false, "id": "CVE-2023-52615-b56a14be", "digest": { "function_hash": "317426045387503950126610521206355679357", "length": 1170.0 }, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@5030d4c798863ccb266563201b341a099e8cdd48", "target": { "file": "drivers/char/hw_random/core.c", "function": "rng_dev_read" }, "signature_type": "Function", "signature_version": "v1" }, { "deprecated": false, "id": "CVE-2023-52615-c0dae32d", "digest": { "threshold": 0.9, "line_hashes": [ "118788732805656528413547393076949111584", "38768465362963571037700394327026228647", "4962791950256256111405115054483433351", "263438502776364716898849788705495752440", "90044765445241627854414441444853880226", "279800416022436706390139711048152803191", "310624710706141797076921813048590315221", "42083444541404768684109465858806562035", "80268864562327526031982373043706109158", "27679814513809867942394713468072683600", "43803469308069102122365223826794793641", "301653684409587310970041863229990310491", "129006551548980461374800374376770465207", "135635565540607272311337961388886203736", "72674897230272118948179419092807735582", "300186425724459265765308839294600904526", "171616813656877926734864425488613702556", "146260652097276429561082512606790013874", "150820227243308790784407464238871529636", "169205976886757677130961375495367667922", "24463388832511577763311420433840034210", "15309792385942919439714520301449041607", "57345863804665154767103335692984174613", "13356636670743270591603337565559238163", "48666430796643440952301495746624060873", "303279059086463837884213335333158174736", "308243389833365856219723971732673500246", "275190790943834066933631405046956314281", "309480174693037463498321448966284416747", "129440527662430648727152190362531402974", "310895854712090782171443692414763859053", "256066042173203500570505405168730542257", "119096367909609791477672735225773210079", "165418373018130538300003370957359108215", "313701032647186371236763779534854238105", "192543512793440520215680672591258806966", "105553771400584210061473472453427028549", "132529269036448548179920416634138399401", "196732850480621317241010832513124435464", "225974236419444477742746552121932611441", "109388128052665260361439665827095668367", "208311887706310661800366931151172095292", "206975597192620182871715498408592059116", "334340639620327730940606638206063582020" ] }, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@5030d4c798863ccb266563201b341a099e8cdd48", "target": { "file": "drivers/char/hw_random/core.c" }, "signature_type": "Line", "signature_version": "v1" }, { "deprecated": false, "id": "CVE-2023-52615-c1857b12", "digest": { "threshold": 0.9, "line_hashes": [ "118788732805656528413547393076949111584", "38768465362963571037700394327026228647", "4962791950256256111405115054483433351", "263438502776364716898849788705495752440", "90044765445241627854414441444853880226", "279800416022436706390139711048152803191", "310624710706141797076921813048590315221", "42083444541404768684109465858806562035", "80268864562327526031982373043706109158", "27679814513809867942394713468072683600", "43803469308069102122365223826794793641", "301653684409587310970041863229990310491", "129006551548980461374800374376770465207", "135635565540607272311337961388886203736", "72674897230272118948179419092807735582", "300186425724459265765308839294600904526", "171616813656877926734864425488613702556", "146260652097276429561082512606790013874", "150820227243308790784407464238871529636", "169205976886757677130961375495367667922", "24463388832511577763311420433840034210", "15309792385942919439714520301449041607", "57345863804665154767103335692984174613", "13356636670743270591603337565559238163", "48666430796643440952301495746624060873", "303279059086463837884213335333158174736", "308243389833365856219723971732673500246", "275190790943834066933631405046956314281", "309480174693037463498321448966284416747", "129440527662430648727152190362531402974", "310895854712090782171443692414763859053", "256066042173203500570505405168730542257", "119096367909609791477672735225773210079", "165418373018130538300003370957359108215", "313701032647186371236763779534854238105", "192543512793440520215680672591258806966", "105553771400584210061473472453427028549", "132529269036448548179920416634138399401", "196732850480621317241010832513124435464", "225974236419444477742746552121932611441", "109388128052665260361439665827095668367", "208311887706310661800366931151172095292", "206975597192620182871715498408592059116", "334340639620327730940606638206063582020" ] }, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@aa8aa16ed9adf1df05bb339d588cf485a011839e", "target": { "file": "drivers/char/hw_random/core.c" }, "signature_type": "Line", "signature_version": "v1" }, { "deprecated": false, "id": "CVE-2023-52615-cd0ec682", "digest": { "function_hash": "317426045387503950126610521206355679357", "length": 1170.0 }, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@78aafb3884f6bc6636efcc1760c891c8500b9922", "target": { "file": "drivers/char/hw_random/core.c", "function": "rng_dev_read" }, "signature_type": "Function", "signature_version": "v1" }, { "deprecated": false, "id": "CVE-2023-52615-d0422d43", "digest": { "function_hash": "317426045387503950126610521206355679357", "length": 1170.0 }, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@26cc6d7006f922df6cc4389248032d955750b2a0", "target": { "file": "drivers/char/hw_random/core.c", "function": "rng_dev_read" }, "signature_type": "Function", "signature_version": "v1" }, { "deprecated": false, "id": "CVE-2023-52615-d1c7fde2", "digest": { "threshold": 0.9, "line_hashes": [ "63320805699174889050023231005925712105", "175939172805780608888254911711576554159", "44178800555593031474381290133412732698", "263438502776364716898849788705495752440", "90044765445241627854414441444853880226", "279800416022436706390139711048152803191", "310624710706141797076921813048590315221", "42083444541404768684109465858806562035", "80268864562327526031982373043706109158", "27679814513809867942394713468072683600", "43803469308069102122365223826794793641", "301653684409587310970041863229990310491", "129006551548980461374800374376770465207", "135635565540607272311337961388886203736", "72674897230272118948179419092807735582", "300186425724459265765308839294600904526", "171616813656877926734864425488613702556", "146260652097276429561082512606790013874", "150820227243308790784407464238871529636", "169205976886757677130961375495367667922", "24463388832511577763311420433840034210", "15309792385942919439714520301449041607", "57345863804665154767103335692984174613", "13356636670743270591603337565559238163", "48666430796643440952301495746624060873", "303279059086463837884213335333158174736", "308243389833365856219723971732673500246", "275190790943834066933631405046956314281", "309480174693037463498321448966284416747", "129440527662430648727152190362531402974", "310895854712090782171443692414763859053", "256066042173203500570505405168730542257", "119096367909609791477672735225773210079", "165418373018130538300003370957359108215", "313701032647186371236763779534854238105", "192543512793440520215680672591258806966", "105553771400584210061473472453427028549", "132529269036448548179920416634138399401", "196732850480621317241010832513124435464", "225974236419444477742746552121932611441", "109388128052665260361439665827095668367", "208311887706310661800366931151172095292", "206975597192620182871715498408592059116", "334340639620327730940606638206063582020" ] }, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@ecabe8cd456d3bf81e92c53b074732f3140f170d", "target": { "file": "drivers/char/hw_random/core.c" }, "signature_type": "Line", "signature_version": "v1" }, { "deprecated": false, "id": "CVE-2023-52615-de9833b2", "digest": { "function_hash": "60095903839143247059337811060220478784", "length": 88.0 }, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@6822a14271786150e178869f1495cc03e74c5029", "target": { "file": "drivers/char/hw_random/core.c", "function": "rng_buffer_size" }, "signature_type": "Function", "signature_version": "v1" }, { "deprecated": false, "id": "CVE-2023-52615-e34f3794", "digest": { "function_hash": "317426045387503950126610521206355679357", "length": 1170.0 }, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@6822a14271786150e178869f1495cc03e74c5029", "target": { "file": "drivers/char/hw_random/core.c", "function": "rng_dev_read" }, "signature_type": "Function", "signature_version": "v1" }, { "deprecated": false, "id": "CVE-2023-52615-faff549f", "digest": { "function_hash": "60095903839143247059337811060220478784", "length": 88.0 }, "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@26cc6d7006f922df6cc4389248032d955750b2a0", "target": { "file": "drivers/char/hw_random/core.c", "function": "rng_buffer_size" }, "signature_type": "Function", "signature_version": "v1" } ] }