In the Linux kernel, the following vulnerability has been resolved:
ieee802154: ca8210: Fix a potential UAF in ca8210_probe
If ofclkaddprovider() fails in ca8210registerextclock(), it calls clkunregister() to release priv->clk and returns an error. However, the caller ca8210probe() then calls ca8210remove(), where priv->clk is freed again in ca8210unregisterextclock(). In this case, a use-after-free may happen in the second time we call clk_unregister().
Fix this by removing the first clkunregister(). Also, priv->clk could be an error code on failure of clkregisterfixedrate(). Use ISERRORNULL to catch this case in ca8210unregisterextclock().
[
{
"id": "CVE-2023-52510-0b2844c6",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@cdb46be93c1f7bbf2c4649e9fc5fb147cfb5245d",
"signature_version": "v1",
"digest": {
"length": 721.0,
"function_hash": "298049418277923457531043390944988448218"
},
"target": {
"function": "ca8210_register_ext_clock",
"file": "drivers/net/ieee802154/ca8210.c"
},
"signature_type": "Function",
"deprecated": false
},
{
"id": "CVE-2023-52510-1275badc",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@55e06850c7894f00d41b767c5f5665459f83f58f",
"signature_version": "v1",
"digest": {
"line_hashes": [
"1934619648817077018777595166099933551",
"190333002936427604383517087026967398084",
"72901422582024157452644819133607819965",
"337047186091409406124580968301437849625",
"279406637315808911929671506862589026192",
"268982410407391736804146052413504429653",
"244426327234084460876204155845264301008",
"258476600723767397235015436263203608418",
"252276947513216544991903841380700681881",
"289010127967086217411821388744095660361",
"281426445198044183222706846196925949563",
"254488380876079979060411028898277471347",
"79551768815092044370804231665550851161",
"248012538960291082820420973358931024761",
"125226529806027242995561744356322246696",
"104308717345265756765621423498959959552",
"92662872293989199086543574010099539869",
"218746629100731094976887181509056050501",
"11196664538755759245025344923119297291",
"32212230782482461373267905180113260846",
"208958845276607418321765016875244052444",
"221923230390829382219904917057396864530",
"326142673376362739318413554145340278547"
],
"threshold": 0.9
},
"target": {
"file": "drivers/net/ieee802154/ca8210.c"
},
"signature_type": "Line",
"deprecated": false
},
{
"id": "CVE-2023-52510-1df1e42c",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@becf5c147198f4345243c5df0c4f035415491640",
"signature_version": "v1",
"digest": {
"length": 233.0,
"function_hash": "170819745628610925640040680358214669856"
},
"target": {
"function": "ca8210_unregister_ext_clock",
"file": "drivers/net/ieee802154/ca8210.c"
},
"signature_type": "Function",
"deprecated": false
},
{
"id": "CVE-2023-52510-25e1dad0",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@cdb46be93c1f7bbf2c4649e9fc5fb147cfb5245d",
"signature_version": "v1",
"digest": {
"line_hashes": [
"1934619648817077018777595166099933551",
"190333002936427604383517087026967398084",
"72901422582024157452644819133607819965",
"337047186091409406124580968301437849625",
"279406637315808911929671506862589026192",
"268982410407391736804146052413504429653",
"244426327234084460876204155845264301008",
"258476600723767397235015436263203608418",
"252276947513216544991903841380700681881",
"289010127967086217411821388744095660361",
"281426445198044183222706846196925949563",
"254488380876079979060411028898277471347",
"79551768815092044370804231665550851161",
"248012538960291082820420973358931024761",
"125226529806027242995561744356322246696",
"104308717345265756765621423498959959552",
"92662872293989199086543574010099539869",
"218746629100731094976887181509056050501",
"11196664538755759245025344923119297291",
"32212230782482461373267905180113260846",
"208958845276607418321765016875244052444",
"221923230390829382219904917057396864530",
"326142673376362739318413554145340278547"
],
"threshold": 0.9
},
"target": {
"file": "drivers/net/ieee802154/ca8210.c"
},
"signature_type": "Line",
"deprecated": false
},
{
"id": "CVE-2023-52510-3ba8397c",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@becf5c147198f4345243c5df0c4f035415491640",
"signature_version": "v1",
"digest": {
"line_hashes": [
"1934619648817077018777595166099933551",
"190333002936427604383517087026967398084",
"72901422582024157452644819133607819965",
"337047186091409406124580968301437849625",
"279406637315808911929671506862589026192",
"268982410407391736804146052413504429653",
"244426327234084460876204155845264301008",
"258476600723767397235015436263203608418",
"252276947513216544991903841380700681881",
"289010127967086217411821388744095660361",
"281426445198044183222706846196925949563",
"254488380876079979060411028898277471347",
"79551768815092044370804231665550851161",
"248012538960291082820420973358931024761",
"125226529806027242995561744356322246696",
"104308717345265756765621423498959959552",
"92662872293989199086543574010099539869",
"218746629100731094976887181509056050501",
"11196664538755759245025344923119297291",
"32212230782482461373267905180113260846",
"208958845276607418321765016875244052444",
"221923230390829382219904917057396864530",
"326142673376362739318413554145340278547"
],
"threshold": 0.9
},
"target": {
"file": "drivers/net/ieee802154/ca8210.c"
},
"signature_type": "Line",
"deprecated": false
},
{
"id": "CVE-2023-52510-4f41cb83",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@55e06850c7894f00d41b767c5f5665459f83f58f",
"signature_version": "v1",
"digest": {
"length": 721.0,
"function_hash": "298049418277923457531043390944988448218"
},
"target": {
"function": "ca8210_register_ext_clock",
"file": "drivers/net/ieee802154/ca8210.c"
},
"signature_type": "Function",
"deprecated": false
},
{
"id": "CVE-2023-52510-50f6d84d",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@217efe32a45249eb07dcd7197e8403de98345e66",
"signature_version": "v1",
"digest": {
"length": 233.0,
"function_hash": "170819745628610925640040680358214669856"
},
"target": {
"function": "ca8210_unregister_ext_clock",
"file": "drivers/net/ieee802154/ca8210.c"
},
"signature_type": "Function",
"deprecated": false
},
{
"id": "CVE-2023-52510-5a94ce11",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@becf5c147198f4345243c5df0c4f035415491640",
"signature_version": "v1",
"digest": {
"length": 721.0,
"function_hash": "298049418277923457531043390944988448218"
},
"target": {
"function": "ca8210_register_ext_clock",
"file": "drivers/net/ieee802154/ca8210.c"
},
"signature_type": "Function",
"deprecated": false
},
{
"id": "CVE-2023-52510-6756c7b2",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@28b68cba378e3e50a4082b65f262bc4f2c7c2add",
"signature_version": "v1",
"digest": {
"line_hashes": [
"1934619648817077018777595166099933551",
"190333002936427604383517087026967398084",
"72901422582024157452644819133607819965",
"337047186091409406124580968301437849625",
"279406637315808911929671506862589026192",
"268982410407391736804146052413504429653",
"244426327234084460876204155845264301008",
"258476600723767397235015436263203608418",
"252276947513216544991903841380700681881",
"289010127967086217411821388744095660361",
"281426445198044183222706846196925949563",
"254488380876079979060411028898277471347",
"79551768815092044370804231665550851161",
"248012538960291082820420973358931024761",
"125226529806027242995561744356322246696",
"104308717345265756765621423498959959552",
"92662872293989199086543574010099539869",
"218746629100731094976887181509056050501",
"11196664538755759245025344923119297291",
"32212230782482461373267905180113260846",
"208958845276607418321765016875244052444",
"221923230390829382219904917057396864530",
"326142673376362739318413554145340278547"
],
"threshold": 0.9
},
"target": {
"file": "drivers/net/ieee802154/ca8210.c"
},
"signature_type": "Line",
"deprecated": false
},
{
"id": "CVE-2023-52510-77ef35e5",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@f990874b1c98fe8e57ee9385669f501822979258",
"signature_version": "v1",
"digest": {
"length": 233.0,
"function_hash": "170819745628610925640040680358214669856"
},
"target": {
"function": "ca8210_unregister_ext_clock",
"file": "drivers/net/ieee802154/ca8210.c"
},
"signature_type": "Function",
"deprecated": false
},
{
"id": "CVE-2023-52510-7b610052",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@217efe32a45249eb07dcd7197e8403de98345e66",
"signature_version": "v1",
"digest": {
"line_hashes": [
"1934619648817077018777595166099933551",
"190333002936427604383517087026967398084",
"72901422582024157452644819133607819965",
"337047186091409406124580968301437849625",
"279406637315808911929671506862589026192",
"268982410407391736804146052413504429653",
"244426327234084460876204155845264301008",
"258476600723767397235015436263203608418",
"252276947513216544991903841380700681881",
"289010127967086217411821388744095660361",
"281426445198044183222706846196925949563",
"254488380876079979060411028898277471347",
"79551768815092044370804231665550851161",
"248012538960291082820420973358931024761",
"125226529806027242995561744356322246696",
"104308717345265756765621423498959959552",
"92662872293989199086543574010099539869",
"218746629100731094976887181509056050501",
"11196664538755759245025344923119297291",
"32212230782482461373267905180113260846",
"208958845276607418321765016875244052444",
"221923230390829382219904917057396864530",
"326142673376362739318413554145340278547"
],
"threshold": 0.9
},
"target": {
"file": "drivers/net/ieee802154/ca8210.c"
},
"signature_type": "Line",
"deprecated": false
},
{
"id": "CVE-2023-52510-90b478f2",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@217efe32a45249eb07dcd7197e8403de98345e66",
"signature_version": "v1",
"digest": {
"length": 721.0,
"function_hash": "298049418277923457531043390944988448218"
},
"target": {
"function": "ca8210_register_ext_clock",
"file": "drivers/net/ieee802154/ca8210.c"
},
"signature_type": "Function",
"deprecated": false
},
{
"id": "CVE-2023-52510-90caf00c",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@28b68cba378e3e50a4082b65f262bc4f2c7c2add",
"signature_version": "v1",
"digest": {
"length": 233.0,
"function_hash": "170819745628610925640040680358214669856"
},
"target": {
"function": "ca8210_unregister_ext_clock",
"file": "drivers/net/ieee802154/ca8210.c"
},
"signature_type": "Function",
"deprecated": false
},
{
"id": "CVE-2023-52510-995cfee7",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@84c6aa0ae5c4dc121f9996bb8fed46c80909d80e",
"signature_version": "v1",
"digest": {
"line_hashes": [
"1934619648817077018777595166099933551",
"190333002936427604383517087026967398084",
"72901422582024157452644819133607819965",
"337047186091409406124580968301437849625",
"279406637315808911929671506862589026192",
"268982410407391736804146052413504429653",
"244426327234084460876204155845264301008",
"258476600723767397235015436263203608418",
"252276947513216544991903841380700681881",
"289010127967086217411821388744095660361",
"281426445198044183222706846196925949563",
"254488380876079979060411028898277471347",
"79551768815092044370804231665550851161",
"248012538960291082820420973358931024761",
"125226529806027242995561744356322246696",
"104308717345265756765621423498959959552",
"92662872293989199086543574010099539869",
"218746629100731094976887181509056050501",
"11196664538755759245025344923119297291",
"32212230782482461373267905180113260846",
"208958845276607418321765016875244052444",
"221923230390829382219904917057396864530",
"326142673376362739318413554145340278547"
],
"threshold": 0.9
},
"target": {
"file": "drivers/net/ieee802154/ca8210.c"
},
"signature_type": "Line",
"deprecated": false
},
{
"id": "CVE-2023-52510-9bdbce61",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@84c6aa0ae5c4dc121f9996bb8fed46c80909d80e",
"signature_version": "v1",
"digest": {
"length": 721.0,
"function_hash": "298049418277923457531043390944988448218"
},
"target": {
"function": "ca8210_register_ext_clock",
"file": "drivers/net/ieee802154/ca8210.c"
},
"signature_type": "Function",
"deprecated": false
},
{
"id": "CVE-2023-52510-9c551122",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@55e06850c7894f00d41b767c5f5665459f83f58f",
"signature_version": "v1",
"digest": {
"length": 233.0,
"function_hash": "170819745628610925640040680358214669856"
},
"target": {
"function": "ca8210_unregister_ext_clock",
"file": "drivers/net/ieee802154/ca8210.c"
},
"signature_type": "Function",
"deprecated": false
},
{
"id": "CVE-2023-52510-9f19ea11",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@cdb46be93c1f7bbf2c4649e9fc5fb147cfb5245d",
"signature_version": "v1",
"digest": {
"length": 233.0,
"function_hash": "170819745628610925640040680358214669856"
},
"target": {
"function": "ca8210_unregister_ext_clock",
"file": "drivers/net/ieee802154/ca8210.c"
},
"signature_type": "Function",
"deprecated": false
},
{
"id": "CVE-2023-52510-b71fcf93",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@28b68cba378e3e50a4082b65f262bc4f2c7c2add",
"signature_version": "v1",
"digest": {
"length": 721.0,
"function_hash": "298049418277923457531043390944988448218"
},
"target": {
"function": "ca8210_register_ext_clock",
"file": "drivers/net/ieee802154/ca8210.c"
},
"signature_type": "Function",
"deprecated": false
},
{
"id": "CVE-2023-52510-ce2a135a",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@84c6aa0ae5c4dc121f9996bb8fed46c80909d80e",
"signature_version": "v1",
"digest": {
"length": 233.0,
"function_hash": "170819745628610925640040680358214669856"
},
"target": {
"function": "ca8210_unregister_ext_clock",
"file": "drivers/net/ieee802154/ca8210.c"
},
"signature_type": "Function",
"deprecated": false
},
{
"id": "CVE-2023-52510-d421bf65",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@85c2857ef90041f567ce98722c1c342c4d31f4bc",
"signature_version": "v1",
"digest": {
"length": 721.0,
"function_hash": "298049418277923457531043390944988448218"
},
"target": {
"function": "ca8210_register_ext_clock",
"file": "drivers/net/ieee802154/ca8210.c"
},
"signature_type": "Function",
"deprecated": false
},
{
"id": "CVE-2023-52510-da6b08f6",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@f990874b1c98fe8e57ee9385669f501822979258",
"signature_version": "v1",
"digest": {
"line_hashes": [
"1934619648817077018777595166099933551",
"190333002936427604383517087026967398084",
"72901422582024157452644819133607819965",
"337047186091409406124580968301437849625",
"279406637315808911929671506862589026192",
"268982410407391736804146052413504429653",
"244426327234084460876204155845264301008",
"258476600723767397235015436263203608418",
"252276947513216544991903841380700681881",
"289010127967086217411821388744095660361",
"281426445198044183222706846196925949563",
"254488380876079979060411028898277471347",
"79551768815092044370804231665550851161",
"248012538960291082820420973358931024761",
"125226529806027242995561744356322246696",
"104308717345265756765621423498959959552",
"92662872293989199086543574010099539869",
"218746629100731094976887181509056050501",
"11196664538755759245025344923119297291",
"32212230782482461373267905180113260846",
"208958845276607418321765016875244052444",
"221923230390829382219904917057396864530",
"326142673376362739318413554145340278547"
],
"threshold": 0.9
},
"target": {
"file": "drivers/net/ieee802154/ca8210.c"
},
"signature_type": "Line",
"deprecated": false
},
{
"id": "CVE-2023-52510-e4e91401",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@85c2857ef90041f567ce98722c1c342c4d31f4bc",
"signature_version": "v1",
"digest": {
"line_hashes": [
"1934619648817077018777595166099933551",
"190333002936427604383517087026967398084",
"72901422582024157452644819133607819965",
"337047186091409406124580968301437849625",
"279406637315808911929671506862589026192",
"268982410407391736804146052413504429653",
"244426327234084460876204155845264301008",
"258476600723767397235015436263203608418",
"252276947513216544991903841380700681881",
"289010127967086217411821388744095660361",
"281426445198044183222706846196925949563",
"254488380876079979060411028898277471347",
"79551768815092044370804231665550851161",
"248012538960291082820420973358931024761",
"125226529806027242995561744356322246696",
"104308717345265756765621423498959959552",
"92662872293989199086543574010099539869",
"218746629100731094976887181509056050501",
"11196664538755759245025344923119297291",
"32212230782482461373267905180113260846",
"208958845276607418321765016875244052444",
"221923230390829382219904917057396864530",
"326142673376362739318413554145340278547"
],
"threshold": 0.9
},
"target": {
"file": "drivers/net/ieee802154/ca8210.c"
},
"signature_type": "Line",
"deprecated": false
},
{
"id": "CVE-2023-52510-e85db50c",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@f990874b1c98fe8e57ee9385669f501822979258",
"signature_version": "v1",
"digest": {
"length": 721.0,
"function_hash": "298049418277923457531043390944988448218"
},
"target": {
"function": "ca8210_register_ext_clock",
"file": "drivers/net/ieee802154/ca8210.c"
},
"signature_type": "Function",
"deprecated": false
},
{
"id": "CVE-2023-52510-f13cf74f",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@85c2857ef90041f567ce98722c1c342c4d31f4bc",
"signature_version": "v1",
"digest": {
"length": 233.0,
"function_hash": "170819745628610925640040680358214669856"
},
"target": {
"function": "ca8210_unregister_ext_clock",
"file": "drivers/net/ieee802154/ca8210.c"
},
"signature_type": "Function",
"deprecated": false
}
]