CVE-2022-49410 (GCVE-0-2022-49410)
Vulnerability from cvelistv5
Published
2025-02-26 02:12
Modified
2026-08-05 08:55
Summary
In the Linux kernel, the following vulnerability has been resolved: tracing: Fix potential double free in create_var_ref() In create_var_ref(), init_var_ref() is called to initialize the fields of variable ref_field, which is allocated in the previous function call to create_hist_field(). Function init_var_ref() allocates the corresponding fields such as ref_field->system, but frees these fields when the function encounters an error. The caller later calls destroy_hist_field() to conduct error handling, which frees the fields and the variable itself. This results in double free of the fields which are already freed in the previous function. Fix this by storing NULL to the corresponding fields when they are freed in init_var_ref().
Impacted products
Vendor Product Version
Linux Linux Version: 067fe038e70f6e64960d26a79c4df5f1413d0f13
Version: 067fe038e70f6e64960d26a79c4df5f1413d0f13
Version: 067fe038e70f6e64960d26a79c4df5f1413d0f13
Version: 067fe038e70f6e64960d26a79c4df5f1413d0f13
Version: 067fe038e70f6e64960d26a79c4df5f1413d0f13
Version: 067fe038e70f6e64960d26a79c4df5f1413d0f13
Version: 067fe038e70f6e64960d26a79c4df5f1413d0f13
Create a notification for this product.
Show details on NVD website


{
  "containers": {
    "adp": [
      {
        "metrics": [
          {
            "cvssV3_1": {
              "attackComplexity": "LOW",
              "attackVector": "LOCAL",
              "availabilityImpact": "HIGH",
              "baseScore": 7.8,
              "baseSeverity": "HIGH",
              "confidentialityImpact": "HIGH",
              "integrityImpact": "HIGH",
              "privilegesRequired": "LOW",
              "scope": "UNCHANGED",
              "userInteraction": "NONE",
              "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
              "version": "3.1"
            }
          },
          {
            "other": {
              "content": {
                "id": "CVE-2022-49410",
                "options": [
                  {
                    "Exploitation": "none"
                  },
                  {
                    "Automatable": "no"
                  },
                  {
                    "Technical Impact": "total"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2025-10-01T19:41:12.408852Z",
                "version": "2.0.3"
              },
              "type": "ssvc"
            }
          }
        ],
        "problemTypes": [
          {
            "descriptions": [
              {
                "cweId": "CWE-415",
                "description": "CWE-415 Double Free",
                "lang": "en",
                "type": "CWE"
              }
            ]
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2025-10-01T19:46:50.147Z",
          "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
          "shortName": "CISA-ADP"
        },
        "title": "CISA ADP Vulnrichment"
      }
    ],
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "kernel/trace/trace_events_hist.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "f8b383f83cb573152c577eca1ef101e89995b72a",
              "status": "affected",
              "version": "067fe038e70f6e64960d26a79c4df5f1413d0f13",
              "versionType": "git"
            },
            {
              "lessThan": "c27f744ceefadc7bbeb14233b6abc150ced617d2",
              "status": "affected",
              "version": "067fe038e70f6e64960d26a79c4df5f1413d0f13",
              "versionType": "git"
            },
            {
              "lessThan": "058cb6d86b9789377216c936506b346aaa1eb581",
              "status": "affected",
              "version": "067fe038e70f6e64960d26a79c4df5f1413d0f13",
              "versionType": "git"
            },
            {
              "lessThan": "37443b3508b8cce6832f8d25cb4550b2f7801f50",
              "status": "affected",
              "version": "067fe038e70f6e64960d26a79c4df5f1413d0f13",
              "versionType": "git"
            },
            {
              "lessThan": "4fdfb15e08598711dbf50daf56a33965232daf0e",
              "status": "affected",
              "version": "067fe038e70f6e64960d26a79c4df5f1413d0f13",
              "versionType": "git"
            },
            {
              "lessThan": "bd83ff3bbfb003832481c9bff999d12385f396ae",
              "status": "affected",
              "version": "067fe038e70f6e64960d26a79c4df5f1413d0f13",
              "versionType": "git"
            },
            {
              "lessThan": "99696a2592bca641eb88cc9a80c90e591afebd0f",
              "status": "affected",
              "version": "067fe038e70f6e64960d26a79c4df5f1413d0f13",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "kernel/trace/trace_events_hist.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "4.17"
            },
            {
              "lessThan": "4.17",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "4.19.*",
              "status": "unaffected",
              "version": "4.19.247",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.4.*",
              "status": "unaffected",
              "version": "5.4.198",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.10.*",
              "status": "unaffected",
              "version": "5.10.121",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.15.*",
              "status": "unaffected",
              "version": "5.15.46",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.17.*",
              "status": "unaffected",
              "version": "5.17.14",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.18.*",
              "status": "unaffected",
              "version": "5.18.3",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "5.19",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "4.19.247",
                  "versionStartIncluding": "4.17",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.4.198",
                  "versionStartIncluding": "4.17",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.10.121",
                  "versionStartIncluding": "4.17",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.15.46",
                  "versionStartIncluding": "4.17",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.17.14",
                  "versionStartIncluding": "4.17",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.18.3",
                  "versionStartIncluding": "4.17",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.19",
                  "versionStartIncluding": "4.17",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\ntracing: Fix potential double free in create_var_ref()\n\nIn create_var_ref(), init_var_ref() is called to initialize the fields\nof variable ref_field, which is allocated in the previous function call\nto create_hist_field(). Function init_var_ref() allocates the\ncorresponding fields such as ref_field-\u003esystem, but frees these fields\nwhen the function encounters an error. The caller later calls\ndestroy_hist_field() to conduct error handling, which frees the fields\nand the variable itself. This results in double free of the fields which\nare already freed in the previous function.\n\nFix this by storing NULL to the corresponding fields when they are freed\nin init_var_ref()."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 7.8,
            "baseSeverity": "HIGH",
            "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:L - The bug is reached only by writing a histogram trigger command to a local tracefs event trigger file (e.g. /sys/kernel/tracing/events/.../trigger) via write(); there is no network, adjacent, or physical attack path into create_var_ref()/init_var_ref().\nAC:L - An attacker who can write hist triggers fully controls the var-ref/alias command text and can induce the mid-function kstrdup() failure (e.g. memory pressure or large prior hist allocations); no race or victim-controlled state is required.\nPR:L - Trigger writes are gated only by tracefs DAC and LOCKDOWN_TRACEFS (no capable() check), and reasonable deployments (Android traced/readtracefs, ChromeOS, gid=-mounted tracing groups) deliberately grant non-root write access to this same hist-trigger path.\nUI:N - The attacker triggers the bug solely by writing the hist trigger configuration themselves; no separate victim action is required.\nS:U - A kernel heap double-free affects only the local kernel/system security authority and does not cross a VM, IOMMU, or sandbox boundary.\nC:H - Double-free of heap strings (system/event_name/name) enables UAF-style reuse of the freed objects, which can be leveraged for arbitrary kernel memory disclosure.\nI:H - The same double-free/UAF primitive enables heap shaping and arbitrary write or control-flow hijacking in the kernel.\nA:H - A double-free in kernel allocator paths can oops/panic the kernel even when not fully exploited for code execution."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T08:55:04.239Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/f8b383f83cb573152c577eca1ef101e89995b72a"
        },
        {
          "url": "https://git.kernel.org/stable/c/c27f744ceefadc7bbeb14233b6abc150ced617d2"
        },
        {
          "url": "https://git.kernel.org/stable/c/058cb6d86b9789377216c936506b346aaa1eb581"
        },
        {
          "url": "https://git.kernel.org/stable/c/37443b3508b8cce6832f8d25cb4550b2f7801f50"
        },
        {
          "url": "https://git.kernel.org/stable/c/4fdfb15e08598711dbf50daf56a33965232daf0e"
        },
        {
          "url": "https://git.kernel.org/stable/c/bd83ff3bbfb003832481c9bff999d12385f396ae"
        },
        {
          "url": "https://git.kernel.org/stable/c/99696a2592bca641eb88cc9a80c90e591afebd0f"
        }
      ],
      "title": "tracing: Fix potential double free in create_var_ref()",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2022-49410",
    "datePublished": "2025-02-26T02:12:33.124Z",
    "dateReserved": "2025-02-26T02:08:31.567Z",
    "dateUpdated": "2026-08-05T08:55:04.239Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "vulnrichment": {
      "containers": "{\"adp\": [{\"title\": \"CISA ADP Vulnrichment\", \"metrics\": [{\"cvssV3_1\": {\"scope\": \"UNCHANGED\", \"version\": \"3.1\", \"baseScore\": 7.8, \"attackVector\": \"LOCAL\", \"baseSeverity\": \"HIGH\", \"vectorString\": \"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H\", \"integrityImpact\": \"HIGH\", \"userInteraction\": \"NONE\", \"attackComplexity\": \"LOW\", \"availabilityImpact\": \"HIGH\", \"privilegesRequired\": \"LOW\", \"confidentialityImpact\": \"HIGH\"}}, {\"other\": {\"type\": \"ssvc\", \"content\": {\"id\": \"CVE-2022-49410\", \"role\": \"CISA Coordinator\", \"options\": [{\"Exploitation\": \"none\"}, {\"Automatable\": \"no\"}, {\"Technical Impact\": \"total\"}], \"version\": \"2.0.3\", \"timestamp\": \"2025-10-01T19:41:12.408852Z\"}}}], \"problemTypes\": [{\"descriptions\": [{\"lang\": \"en\", \"type\": \"CWE\", \"cweId\": \"CWE-415\", \"description\": \"CWE-415 Double Free\"}]}], \"providerMetadata\": {\"orgId\": \"134c704f-9b21-4f2e-91b3-4a467353bcc0\", \"shortName\": \"CISA-ADP\", \"dateUpdated\": \"2025-10-01T16:46:42.039Z\"}}], \"cna\": {\"title\": \"tracing: Fix potential double free in create_var_ref()\", \"affected\": [{\"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\", \"vendor\": \"Linux\", \"product\": \"Linux\", \"versions\": [{\"status\": \"affected\", \"version\": \"067fe038e70f6e64960d26a79c4df5f1413d0f13\", \"lessThan\": \"f8b383f83cb573152c577eca1ef101e89995b72a\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"067fe038e70f6e64960d26a79c4df5f1413d0f13\", \"lessThan\": \"c27f744ceefadc7bbeb14233b6abc150ced617d2\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"067fe038e70f6e64960d26a79c4df5f1413d0f13\", \"lessThan\": \"058cb6d86b9789377216c936506b346aaa1eb581\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"067fe038e70f6e64960d26a79c4df5f1413d0f13\", \"lessThan\": \"37443b3508b8cce6832f8d25cb4550b2f7801f50\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"067fe038e70f6e64960d26a79c4df5f1413d0f13\", \"lessThan\": \"4fdfb15e08598711dbf50daf56a33965232daf0e\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"067fe038e70f6e64960d26a79c4df5f1413d0f13\", \"lessThan\": \"bd83ff3bbfb003832481c9bff999d12385f396ae\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"067fe038e70f6e64960d26a79c4df5f1413d0f13\", \"lessThan\": \"99696a2592bca641eb88cc9a80c90e591afebd0f\", \"versionType\": \"git\"}], \"programFiles\": [\"kernel/trace/trace_events_hist.c\"], \"defaultStatus\": \"unaffected\"}, {\"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\", \"vendor\": \"Linux\", \"product\": \"Linux\", \"versions\": [{\"status\": \"affected\", \"version\": \"4.17\"}, {\"status\": \"unaffected\", \"version\": \"0\", \"lessThan\": \"4.17\", \"versionType\": \"semver\"}, {\"status\": \"unaffected\", \"version\": \"4.19.247\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"4.19.*\"}, {\"status\": \"unaffected\", \"version\": \"5.4.198\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"5.4.*\"}, {\"status\": \"unaffected\", \"version\": \"5.10.121\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"5.10.*\"}, {\"status\": \"unaffected\", \"version\": \"5.15.46\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"5.15.*\"}, {\"status\": \"unaffected\", \"version\": \"5.17.14\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"5.17.*\"}, {\"status\": \"unaffected\", \"version\": \"5.18.3\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"5.18.*\"}, {\"status\": \"unaffected\", \"version\": \"5.19\", \"versionType\": \"original_commit_for_fix\", \"lessThanOrEqual\": \"*\"}], \"programFiles\": [\"kernel/trace/trace_events_hist.c\"], \"defaultStatus\": \"affected\"}], \"references\": [{\"url\": \"https://git.kernel.org/stable/c/f8b383f83cb573152c577eca1ef101e89995b72a\"}, {\"url\": \"https://git.kernel.org/stable/c/c27f744ceefadc7bbeb14233b6abc150ced617d2\"}, {\"url\": \"https://git.kernel.org/stable/c/058cb6d86b9789377216c936506b346aaa1eb581\"}, {\"url\": \"https://git.kernel.org/stable/c/37443b3508b8cce6832f8d25cb4550b2f7801f50\"}, {\"url\": \"https://git.kernel.org/stable/c/4fdfb15e08598711dbf50daf56a33965232daf0e\"}, {\"url\": \"https://git.kernel.org/stable/c/bd83ff3bbfb003832481c9bff999d12385f396ae\"}, {\"url\": \"https://git.kernel.org/stable/c/99696a2592bca641eb88cc9a80c90e591afebd0f\"}], \"x_generator\": {\"engine\": \"bippy-1.2.0\"}, \"descriptions\": [{\"lang\": \"en\", \"value\": \"In the Linux kernel, the following vulnerability has been resolved:\\n\\ntracing: Fix potential double free in create_var_ref()\\n\\nIn create_var_ref(), init_var_ref() is called to initialize the fields\\nof variable ref_field, which is allocated in the previous function call\\nto create_hist_field(). Function init_var_ref() allocates the\\ncorresponding fields such as ref_field-\u003esystem, but frees these fields\\nwhen the function encounters an error. The caller later calls\\ndestroy_hist_field() to conduct error handling, which frees the fields\\nand the variable itself. This results in double free of the fields which\\nare already freed in the previous function.\\n\\nFix this by storing NULL to the corresponding fields when they are freed\\nin init_var_ref().\"}], \"cpeApplicability\": [{\"nodes\": [{\"negate\": false, \"cpeMatch\": [{\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"4.19.247\", \"versionStartIncluding\": \"4.17\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"5.4.198\", \"versionStartIncluding\": \"4.17\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"5.10.121\", \"versionStartIncluding\": \"4.17\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"5.15.46\", \"versionStartIncluding\": \"4.17\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"5.17.14\", \"versionStartIncluding\": \"4.17\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"5.18.3\", \"versionStartIncluding\": \"4.17\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"5.19\", \"versionStartIncluding\": \"4.17\"}], \"operator\": \"OR\"}]}], \"providerMetadata\": {\"orgId\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\", \"shortName\": \"Linux\", \"dateUpdated\": \"2026-05-11T18:59:13.451Z\"}}}",
      "cveMetadata": "{\"cveId\": \"CVE-2022-49410\", \"state\": \"PUBLISHED\", \"dateUpdated\": \"2026-05-11T18:59:13.451Z\", \"dateReserved\": \"2025-02-26T02:08:31.567Z\", \"assignerOrgId\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\", \"datePublished\": \"2025-02-26T02:12:33.124Z\", \"assignerShortName\": \"Linux\"}",
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }
  }
}


Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Sightings

Author Source Type Date

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or seen somewhere by the user.
  • Confirmed: The vulnerability is confirmed from an analyst perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: This vulnerability was exploited and seen by the user reporting the sighting.
  • Patched: This vulnerability was successfully patched by the user reporting the sighting.
  • Not exploited: This vulnerability was not exploited or seen by the user reporting the sighting.
  • Not confirmed: The user expresses doubt about the veracity of the vulnerability.
  • Not patched: This vulnerability was not successfully patched by the user reporting the sighting.


Loading…

Loading…