{
  "schemaVersion": 1,
  "attribution": [
    {
      "source": "CISA Known Exploited Vulnerabilities",
      "url": "https://www.cisa.gov/known-exploited-vulnerabilities-catalog",
      "licence": "US government work"
    },
    {
      "source": "GitHub Advisory Database",
      "url": "https://github.com/advisories",
      "licence": "CC BY 4.0"
    },
    {
      "source": "Have I Been Pwned",
      "url": "https://haveibeenpwned.com/",
      "licence": "CC BY 4.0"
    },
    {
      "source": "CVE Program (CVE records)",
      "url": "https://www.cve.org/Legal/TermsOfUse",
      "licence": "CVE Terms of Use",
      "notice": "Copyright © 1999-2026, The MITRE Corporation. CVE is a trademark and the CVE logo is a registered trademark of The MITRE Corporation.",
      "terms": "CVE Usage: MITRE hereby grants you a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, and distribute Common Vulnerabilities and Exposures (CVE™). Any copy you make for such purposes is authorized provided that you reproduce MITRE's copyright designation and this license in any such copy."
    },
    {
      "source": "FIRST EPSS",
      "url": "https://www.first.org/epss/",
      "licence": "free to use; FIRST requests attribution"
    }
  ],
  "record": {
    "id": "CVE-2020-36789",
    "sourceURL": "https://www.cve.org/CVERecord?id=CVE-2020-36789",
    "idYear": 2020,
    "status": "PUBLISHED",
    "publishedAt": "2025-04-17T18:01:28.613Z",
    "updatedAt": "2026-05-11T13:42:55.817Z",
    "importedAt": "2026-10-24T01:56:21.187Z",
    "snapshot": {
      "id": "cve_2026-10-24_midnight_baseline",
      "at": "2026-10-24T00:00:00.000Z",
      "source": "https://github.com/CVEProject/cvelistV5/releases/tag/cve_2026-10-24_0100Z"
    },
    "facts": {
      "title": "can: dev: can_get_echo_skb(): prevent call to kfree_skb() in hard IRQ context",
      "summary": "In the Linux kernel, the following vulnerability has been resolved:\n\ncan: dev: can_get_echo_skb(): prevent call to kfree_skb() in hard IRQ context\n\nIf a driver calls can_get_echo_skb() during a hardware IRQ (which is often, but\nnot always, the case), the 'WARN_ON(in_irq)' in\nnet/core/skbuff.c#skb_release_head_state() might be triggered, under network\ncongestion circumstances, together with the potential risk of a NULL pointer\ndereference.\n\nThe root cause of this issue is the call to kfree_skb() instead of\ndev_kfree_skb_irq() in net/core/dev.c#enqueue_to_backlog().\n\nThis patch prevents the skb to be freed within the call to netif_rx() by\nincrementing its reference count with skb_get(). The skb is finally freed by\none of the in-irq-context safe functions: dev_consume_skb_any() or\ndev_kfree_skb_any(). The \"any\" version is used because some drivers might call\ncan_get_echo_skb() in a normal context.\n\nThe reason for this issue to occur is that initially, in the core network\nstack, loopback skb were not supposed to be received in hardware IRQ context.\nThe CAN stack is an exeption.\n\nThis bug was previously reported back in 2017 in [1] but the proposed patch\nnever got accepted.\n\nWhile [1] directly modifies net/core/dev.c, we try to propose here a\nsmoother modification local to CAN network stack (the assumption\nbehind is that only CAN devices are affected by this issue).\n\n[1] http://lore.kernel.org/r/57a3ffb6-3309-3ad5-5a34-e93c3fe3614d@cetitec.com",
      "affected": [
        {
          "vendor": "Linux",
          "product": "Linux",
          "defaultStatus": "unaffected",
          "versions": [
            {
              "version": "39549eef3587f1c1e8c65c88a2400d10fd30ea17",
              "status": "affected",
              "versionType": "git",
              "lessThan": "248b71ce92d4f3a574b2537f9838f48e892618f4"
            },
            {
              "version": "39549eef3587f1c1e8c65c88a2400d10fd30ea17",
              "status": "affected",
              "versionType": "git",
              "lessThan": "451187b20431924d13fcfecc500d7cd2d9951bac"
            },
            {
              "version": "39549eef3587f1c1e8c65c88a2400d10fd30ea17",
              "status": "affected",
              "versionType": "git",
              "lessThan": "3a922a85701939624484e7f2fd07d32beed00d25"
            },
            {
              "version": "39549eef3587f1c1e8c65c88a2400d10fd30ea17",
              "status": "affected",
              "versionType": "git",
              "lessThan": "7e4cf2ec0ca236c3e5f904239cec6efe1f3baf22"
            },
            {
              "version": "39549eef3587f1c1e8c65c88a2400d10fd30ea17",
              "status": "affected",
              "versionType": "git",
              "lessThan": "ab46748bf98864f9c3f5559060bf8caf9df2b41e"
            },
            {
              "version": "39549eef3587f1c1e8c65c88a2400d10fd30ea17",
              "status": "affected",
              "versionType": "git",
              "lessThan": "87530b557affe01c764de32dbeb58cdf47234574"
            },
            {
              "version": "39549eef3587f1c1e8c65c88a2400d10fd30ea17",
              "status": "affected",
              "versionType": "git",
              "lessThan": "2283f79b22684d2812e5c76fc2280aae00390365"
            }
          ]
        },
        {
          "vendor": "Linux",
          "product": "Linux",
          "defaultStatus": "affected",
          "versions": [
            {
              "version": "2.6.31",
              "status": "affected"
            },
            {
              "version": "0",
              "status": "unaffected",
              "versionType": "semver",
              "lessThan": "2.6.31"
            },
            {
              "version": "4.4.244",
              "status": "unaffected",
              "versionType": "semver",
              "lessThanOrEqual": "4.4.*"
            },
            {
              "version": "4.9.244",
              "status": "unaffected",
              "versionType": "semver",
              "lessThanOrEqual": "4.9.*"
            },
            {
              "version": "4.14.207",
              "status": "unaffected",
              "versionType": "semver",
              "lessThanOrEqual": "4.14.*"
            },
            {
              "version": "4.19.158",
              "status": "unaffected",
              "versionType": "semver",
              "lessThanOrEqual": "4.19.*"
            },
            {
              "version": "5.4.78",
              "status": "unaffected",
              "versionType": "semver",
              "lessThanOrEqual": "5.4.*"
            },
            {
              "version": "5.9.9",
              "status": "unaffected",
              "versionType": "semver",
              "lessThanOrEqual": "5.9.*"
            },
            {
              "version": "5.10",
              "status": "unaffected",
              "versionType": "original_commit_for_fix",
              "lessThanOrEqual": "*"
            }
          ]
        }
      ]
    }
  }
}