{
  "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-2021-47238",
    "sourceURL": "https://www.cve.org/CVERecord?id=CVE-2021-47238",
    "idYear": 2021,
    "status": "PUBLISHED",
    "publishedAt": "2024-05-21T14:19:39.041Z",
    "updatedAt": "2026-05-23T15:19:33.973Z",
    "importedAt": "2026-10-24T01:56:36.661Z",
    "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": "net: ipv4: fix memory leak in ip_mc_add1_src",
      "summary": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet: ipv4: fix memory leak in ip_mc_add1_src\n\nBUG: memory leak\nunreferenced object 0xffff888101bc4c00 (size 32):\n  comm \"syz-executor527\", pid 360, jiffies 4294807421 (age 19.329s)\n  hex dump (first 32 bytes):\n    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................\n    01 00 00 00 00 00 00 00 ac 14 14 bb 00 00 02 00 ................\n  backtrace:\n    [<00000000f17c5244>] kmalloc include/linux/slab.h:558 [inline]\n    [<00000000f17c5244>] kzalloc include/linux/slab.h:688 [inline]\n    [<00000000f17c5244>] ip_mc_add1_src net/ipv4/igmp.c:1971 [inline]\n    [<00000000f17c5244>] ip_mc_add_src+0x95f/0xdb0 net/ipv4/igmp.c:2095\n    [<000000001cb99709>] ip_mc_source+0x84c/0xea0 net/ipv4/igmp.c:2416\n    [<0000000052cf19ed>] do_ip_setsockopt net/ipv4/ip_sockglue.c:1294 [inline]\n    [<0000000052cf19ed>] ip_setsockopt+0x114b/0x30c0 net/ipv4/ip_sockglue.c:1423\n    [<00000000477edfbc>] raw_setsockopt+0x13d/0x170 net/ipv4/raw.c:857\n    [<00000000e75ca9bb>] __sys_setsockopt+0x158/0x270 net/socket.c:2117\n    [<00000000bdb993a8>] __do_sys_setsockopt net/socket.c:2128 [inline]\n    [<00000000bdb993a8>] __se_sys_setsockopt net/socket.c:2125 [inline]\n    [<00000000bdb993a8>] __x64_sys_setsockopt+0xba/0x150 net/socket.c:2125\n    [<000000006a1ffdbd>] do_syscall_64+0x40/0x80 arch/x86/entry/common.c:47\n    [<00000000b11467c4>] entry_SYSCALL_64_after_hwframe+0x44/0xae\n\nIn commit 24803f38a5c0 (\"igmp: do not remove igmp souce list info when set\nlink down\"), the ip_mc_clear_src() in ip_mc_destroy_dev() was removed,\nbecause it was also called in igmpv3_clear_delrec().\n\nRough callgraph:\n\ninetdev_destroy\n-> ip_mc_destroy_dev\n     -> igmpv3_clear_delrec\n        -> ip_mc_clear_src\n-> RCU_INIT_POINTER(dev->ip_ptr, NULL)\n\nHowever, ip_mc_clear_src() called in igmpv3_clear_delrec() doesn't\nrelease in_dev->mc_list->sources. And RCU_INIT_POINTER() assigns the\nNULL to dev->ip_ptr. As a result, in_dev cannot be obtained through\ninetdev_by_index() and then in_dev->mc_list->sources cannot be released\nby ip_mc_del1_src() in the sock_close. Rough call sequence goes like:\n\nsock_close\n-> __sock_release\n   -> inet_release\n      -> ip_mc_drop_socket\n         -> inetdev_by_index\n         -> ip_mc_leave_src\n            -> ip_mc_del_src\n               -> ip_mc_del1_src\n\nSo we still need to call ip_mc_clear_src() in ip_mc_destroy_dev() to free\nin_dev->mc_list->sources.",
      "affected": [
        {
          "vendor": "Linux",
          "product": "Linux",
          "defaultStatus": "unaffected",
          "versions": [
            {
              "version": "24803f38a5c0b6c57ed800b47e695f9ce474bc3a",
              "status": "affected",
              "versionType": "git",
              "lessThan": "0dc13e75507faa17ac9f7562b4ef7bf8fcd78422"
            },
            {
              "version": "24803f38a5c0b6c57ed800b47e695f9ce474bc3a",
              "status": "affected",
              "versionType": "git",
              "lessThan": "6cff57eea3347f79f1867cc53e1093b6614138d8"
            },
            {
              "version": "24803f38a5c0b6c57ed800b47e695f9ce474bc3a",
              "status": "affected",
              "versionType": "git",
              "lessThan": "1e28018b5c83d5073f74a6fb72eabe8370b2f501"
            },
            {
              "version": "24803f38a5c0b6c57ed800b47e695f9ce474bc3a",
              "status": "affected",
              "versionType": "git",
              "lessThan": "3dd2aeac2e9624cff9fa634710837e4f2e352758"
            },
            {
              "version": "24803f38a5c0b6c57ed800b47e695f9ce474bc3a",
              "status": "affected",
              "versionType": "git",
              "lessThan": "ac31cc837cafb57a271babad8ccffbf733caa076"
            },
            {
              "version": "24803f38a5c0b6c57ed800b47e695f9ce474bc3a",
              "status": "affected",
              "versionType": "git",
              "lessThan": "77de6ee73f54a9a89c0afa0bf4c53b239aa9953a"
            },
            {
              "version": "24803f38a5c0b6c57ed800b47e695f9ce474bc3a",
              "status": "affected",
              "versionType": "git",
              "lessThan": "d8e2973029b8b2ce477b564824431f3385c77083"
            },
            {
              "version": "bd1b664a19403ede448d29c87b2f23796bc7a577",
              "status": "affected",
              "versionType": "git"
            },
            {
              "version": "b38c6e0bd5b5e439ecebdc0df599d573c2f610f8",
              "status": "affected",
              "versionType": "git"
            },
            {
              "version": "3.2.87",
              "status": "affected",
              "versionType": "semver",
              "lessThan": "3.3"
            },
            {
              "version": "3.16.42",
              "status": "affected",
              "versionType": "semver",
              "lessThan": "3.17"
            }
          ]
        },
        {
          "vendor": "Linux",
          "product": "Linux",
          "defaultStatus": "affected",
          "versions": [
            {
              "version": "4.9",
              "status": "affected"
            },
            {
              "version": "0",
              "status": "unaffected",
              "versionType": "semver",
              "lessThan": "4.9"
            },
            {
              "version": "4.9.274",
              "status": "unaffected",
              "versionType": "semver",
              "lessThanOrEqual": "4.9.*"
            },
            {
              "version": "4.14.238",
              "status": "unaffected",
              "versionType": "semver",
              "lessThanOrEqual": "4.14.*"
            },
            {
              "version": "4.19.196",
              "status": "unaffected",
              "versionType": "semver",
              "lessThanOrEqual": "4.19.*"
            },
            {
              "version": "5.4.128",
              "status": "unaffected",
              "versionType": "semver",
              "lessThanOrEqual": "5.4.*"
            },
            {
              "version": "5.10.46",
              "status": "unaffected",
              "versionType": "semver",
              "lessThanOrEqual": "5.10.*"
            },
            {
              "version": "5.12.13",
              "status": "unaffected",
              "versionType": "semver",
              "lessThanOrEqual": "5.12.*"
            },
            {
              "version": "5.13",
              "status": "unaffected",
              "versionType": "original_commit_for_fix",
              "lessThanOrEqual": "*"
            }
          ]
        }
      ]
    }
  }
}