GCVE Workshop - 22 September 2026 (14:00-18:00), Luxembourg Before The Vulnopticon Conference - Registration

CVE-2021-47089 (GCVE-0-2021-47089)

Vulnerability from cvelistv5 – Published: 2024-03-04 18:10 – Updated: 2026-05-11 13:47
VLAI
Title
kfence: fix memory leak when cat kfence objects
Summary
In the Linux kernel, the following vulnerability has been resolved: kfence: fix memory leak when cat kfence objects Hulk robot reported a kmemleak problem: unreferenced object 0xffff93d1d8cc02e8 (size 248): comm "cat", pid 23327, jiffies 4624670141 (age 495992.217s) hex dump (first 32 bytes): 00 40 85 19 d4 93 ff ff 00 10 00 00 00 00 00 00 .@.............. 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ backtrace: seq_open+0x2a/0x80 full_proxy_open+0x167/0x1e0 do_dentry_open+0x1e1/0x3a0 path_openat+0x961/0xa20 do_filp_open+0xae/0x120 do_sys_openat2+0x216/0x2f0 do_sys_open+0x57/0x80 do_syscall_64+0x33/0x40 entry_SYSCALL_64_after_hwframe+0x44/0xa9 unreferenced object 0xffff93d419854000 (size 4096): comm "cat", pid 23327, jiffies 4624670141 (age 495992.217s) hex dump (first 32 bytes): 6b 66 65 6e 63 65 2d 23 32 35 30 3a 20 30 78 30 kfence-#250: 0x0 30 30 30 30 30 30 30 37 35 34 62 64 61 31 32 2d 0000000754bda12- backtrace: seq_read_iter+0x313/0x440 seq_read+0x14b/0x1a0 full_proxy_read+0x56/0x80 vfs_read+0xa5/0x1b0 ksys_read+0xa0/0xf0 do_syscall_64+0x33/0x40 entry_SYSCALL_64_after_hwframe+0x44/0xa9 I find that we can easily reproduce this problem with the following commands: cat /sys/kernel/debug/kfence/objects echo scan > /sys/kernel/debug/kmemleak cat /sys/kernel/debug/kmemleak The leaked memory is allocated in the stack below: do_syscall_64 do_sys_open do_dentry_open full_proxy_open seq_open ---> alloc seq_file vfs_read full_proxy_read seq_read seq_read_iter traverse ---> alloc seq_buf And it should have been released in the following process: do_syscall_64 syscall_exit_to_user_mode exit_to_user_mode_prepare task_work_run ____fput __fput full_proxy_release ---> free here However, the release function corresponding to file_operations is not implemented in kfence. As a result, a memory leak occurs. Therefore, the solution to this problem is to implement the corresponding release function.
SSVC
Exploitation: none Automatable: no Technical Impact: total
CISA Coordinator · CISA-ADP (v2.0.3)
Decision recorded 2024-10-31 13:23 UTC
Impacted products
Vendor Product Version CPE status
Linux Linux Affected: 0ce20dd840897b12ae70869c69f1ba34d6d16965 , < 2f06c8293d27f6337f907042c602c9c953988c48 (git)
Affected: 0ce20dd840897b12ae70869c69f1ba34d6d16965 , < 0129ab1f268b6cf88825eae819b9b84aa0a85634 (git)
guessed Create a notification for this product.
Linux Linux Affected: 5.12
Unaffected: 0 , < 5.12 (semver)
Unaffected: 5.15.12 , ≤ 5.15.* (semver)
Unaffected: 5.16 , ≤ * (original_commit_for_fix)
guessed Create a notification for this product.
linux linux_kernel Affected: 0ce20dd84089 , < 2f06c8293d27 (custom)
Affected: 0ce20dd84089 , < 0129ab1f268b (custom)
Affected: 5.12
Affected: 0 , < 5.12 (custom)
Affected: 5.15.12 , ≤ 5.15* (custom)
Affected: 5.16 , ≤ * (custom)
    cpe:2.3:o:linux:linux_kernel:-:*:*:*:*:*:*:*
Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "adp": [
      {
        "affected": [
          {
            "cpes": [
              "cpe:2.3:o:linux:linux_kernel:-:*:*:*:*:*:*:*"
            ],
            "defaultStatus": "unknown",
            "product": "linux_kernel",
            "vendor": "linux",
            "versions": [
              {
                "lessThan": "2f06c8293d27",
                "status": "affected",
                "version": "0ce20dd84089",
                "versionType": "custom"
              },
              {
                "lessThan": "0129ab1f268b",
                "status": "affected",
                "version": "0ce20dd84089",
                "versionType": "custom"
              },
              {
                "status": "affected",
                "version": "5.12"
              },
              {
                "lessThan": "5.12",
                "status": "affected",
                "version": "0",
                "versionType": "custom"
              },
              {
                "lessThanOrEqual": "5.15*",
                "status": "affected",
                "version": "5.15.12",
                "versionType": "custom"
              },
              {
                "lessThanOrEqual": "*",
                "status": "affected",
                "version": "5.16",
                "versionType": "custom"
              }
            ]
          }
        ],
        "metrics": [
          {
            "cvssV3_1": {
              "attackComplexity": "LOW",
              "attackVector": "LOCAL",
              "availabilityImpact": "LOW",
              "baseScore": 3.3,
              "baseSeverity": "LOW",
              "confidentialityImpact": "NONE",
              "integrityImpact": "NONE",
              "privilegesRequired": "LOW",
              "scope": "UNCHANGED",
              "userInteraction": "NONE",
              "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:L",
              "version": "3.1"
            }
          },
          {
            "other": {
              "content": {
                "id": "CVE-2021-47089",
                "options": [
                  {
                    "Exploitation": "none"
                  },
                  {
                    "Automatable": "no"
                  },
                  {
                    "Technical Impact": "total"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2024-10-31T13:23:25.318113Z",
                "version": "2.0.3"
              },
              "type": "ssvc"
            }
          }
        ],
        "problemTypes": [
          {
            "descriptions": [
              {
                "description": "CWE-noinfo Not enough information",
                "lang": "en",
                "type": "CWE"
              }
            ]
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2024-10-31T13:28:13.519Z",
          "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
          "shortName": "CISA-ADP"
        },
        "title": "CISA ADP Vulnrichment"
      },
      {
        "providerMetadata": {
          "dateUpdated": "2024-08-04T05:24:39.939Z",
          "orgId": "af854a3a-2127-422b-91ae-364da2661108",
          "shortName": "CVE"
        },
        "references": [
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/2f06c8293d27f6337f907042c602c9c953988c48"
          },
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/0129ab1f268b6cf88825eae819b9b84aa0a85634"
          }
        ],
        "title": "CVE Program Container"
      }
    ],
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "mm/kfence/core.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "2f06c8293d27f6337f907042c602c9c953988c48",
              "status": "affected",
              "version": "0ce20dd840897b12ae70869c69f1ba34d6d16965",
              "versionType": "git"
            },
            {
              "lessThan": "0129ab1f268b6cf88825eae819b9b84aa0a85634",
              "status": "affected",
              "version": "0ce20dd840897b12ae70869c69f1ba34d6d16965",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "mm/kfence/core.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "5.12"
            },
            {
              "lessThan": "5.12",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.15.*",
              "status": "unaffected",
              "version": "5.15.12",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "5.16",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.15.12",
                  "versionStartIncluding": "5.12",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.16",
                  "versionStartIncluding": "5.12",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nkfence: fix memory leak when cat kfence objects\n\nHulk robot reported a kmemleak problem:\n\n    unreferenced object 0xffff93d1d8cc02e8 (size 248):\n      comm \"cat\", pid 23327, jiffies 4624670141 (age 495992.217s)\n      hex dump (first 32 bytes):\n        00 40 85 19 d4 93 ff ff 00 10 00 00 00 00 00 00  .@..............\n        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................\n      backtrace:\n         seq_open+0x2a/0x80\n         full_proxy_open+0x167/0x1e0\n         do_dentry_open+0x1e1/0x3a0\n         path_openat+0x961/0xa20\n         do_filp_open+0xae/0x120\n         do_sys_openat2+0x216/0x2f0\n         do_sys_open+0x57/0x80\n         do_syscall_64+0x33/0x40\n         entry_SYSCALL_64_after_hwframe+0x44/0xa9\n    unreferenced object 0xffff93d419854000 (size 4096):\n      comm \"cat\", pid 23327, jiffies 4624670141 (age 495992.217s)\n      hex dump (first 32 bytes):\n        6b 66 65 6e 63 65 2d 23 32 35 30 3a 20 30 78 30  kfence-#250: 0x0\n        30 30 30 30 30 30 30 37 35 34 62 64 61 31 32 2d  0000000754bda12-\n      backtrace:\n         seq_read_iter+0x313/0x440\n         seq_read+0x14b/0x1a0\n         full_proxy_read+0x56/0x80\n         vfs_read+0xa5/0x1b0\n         ksys_read+0xa0/0xf0\n         do_syscall_64+0x33/0x40\n         entry_SYSCALL_64_after_hwframe+0x44/0xa9\n\nI find that we can easily reproduce this problem with the following\ncommands:\n\n\tcat /sys/kernel/debug/kfence/objects\n\techo scan \u003e /sys/kernel/debug/kmemleak\n\tcat /sys/kernel/debug/kmemleak\n\nThe leaked memory is allocated in the stack below:\n\n    do_syscall_64\n      do_sys_open\n        do_dentry_open\n          full_proxy_open\n            seq_open            ---\u003e alloc seq_file\n      vfs_read\n        full_proxy_read\n          seq_read\n            seq_read_iter\n              traverse          ---\u003e alloc seq_buf\n\nAnd it should have been released in the following process:\n\n    do_syscall_64\n      syscall_exit_to_user_mode\n        exit_to_user_mode_prepare\n          task_work_run\n            ____fput\n              __fput\n                full_proxy_release  ---\u003e free here\n\nHowever, the release function corresponding to file_operations is not\nimplemented in kfence.  As a result, a memory leak occurs.  Therefore,\nthe solution to this problem is to implement the corresponding release\nfunction."
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-05-11T13:47:49.944Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/2f06c8293d27f6337f907042c602c9c953988c48"
        },
        {
          "url": "https://git.kernel.org/stable/c/0129ab1f268b6cf88825eae819b9b84aa0a85634"
        }
      ],
      "title": "kfence: fix memory leak when cat kfence objects",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2021-47089",
    "datePublished": "2024-03-04T18:10:27.495Z",
    "dateReserved": "2024-02-29T22:33:44.300Z",
    "dateUpdated": "2026-05-11T13:47:49.944Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2021-47089",
      "date": "2026-09-16",
      "epss": "0.0019",
      "percentile": "0.08879"
    },
    "fkie_nvd": {
      "descriptions": "[{\"lang\": \"en\", \"value\": \"In the Linux kernel, the following vulnerability has been resolved:\\n\\nkfence: fix memory leak when cat kfence objects\\n\\nHulk robot reported a kmemleak problem:\\n\\n    unreferenced object 0xffff93d1d8cc02e8 (size 248):\\n      comm \\\"cat\\\", pid 23327, jiffies 4624670141 (age 495992.217s)\\n      hex dump (first 32 bytes):\\n        00 40 85 19 d4 93 ff ff 00 10 00 00 00 00 00 00  .@..............\\n        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................\\n      backtrace:\\n         seq_open+0x2a/0x80\\n         full_proxy_open+0x167/0x1e0\\n         do_dentry_open+0x1e1/0x3a0\\n         path_openat+0x961/0xa20\\n         do_filp_open+0xae/0x120\\n         do_sys_openat2+0x216/0x2f0\\n         do_sys_open+0x57/0x80\\n         do_syscall_64+0x33/0x40\\n         entry_SYSCALL_64_after_hwframe+0x44/0xa9\\n    unreferenced object 0xffff93d419854000 (size 4096):\\n      comm \\\"cat\\\", pid 23327, jiffies 4624670141 (age 495992.217s)\\n      hex dump (first 32 bytes):\\n        6b 66 65 6e 63 65 2d 23 32 35 30 3a 20 30 78 30  kfence-#250: 0x0\\n        30 30 30 30 30 30 30 37 35 34 62 64 61 31 32 2d  0000000754bda12-\\n      backtrace:\\n         seq_read_iter+0x313/0x440\\n         seq_read+0x14b/0x1a0\\n         full_proxy_read+0x56/0x80\\n         vfs_read+0xa5/0x1b0\\n         ksys_read+0xa0/0xf0\\n         do_syscall_64+0x33/0x40\\n         entry_SYSCALL_64_after_hwframe+0x44/0xa9\\n\\nI find that we can easily reproduce this problem with the following\\ncommands:\\n\\n\\tcat /sys/kernel/debug/kfence/objects\\n\\techo scan \u003e /sys/kernel/debug/kmemleak\\n\\tcat /sys/kernel/debug/kmemleak\\n\\nThe leaked memory is allocated in the stack below:\\n\\n    do_syscall_64\\n      do_sys_open\\n        do_dentry_open\\n          full_proxy_open\\n            seq_open            ---\u003e alloc seq_file\\n      vfs_read\\n        full_proxy_read\\n          seq_read\\n            seq_read_iter\\n              traverse          ---\u003e alloc seq_buf\\n\\nAnd it should have been released in the following process:\\n\\n    do_syscall_64\\n      syscall_exit_to_user_mode\\n        exit_to_user_mode_prepare\\n          task_work_run\\n            ____fput\\n              __fput\\n                full_proxy_release  ---\u003e free here\\n\\nHowever, the release function corresponding to file_operations is not\\nimplemented in kfence.  As a result, a memory leak occurs.  Therefore,\\nthe solution to this problem is to implement the corresponding release\\nfunction.\"}, {\"lang\": \"es\", \"value\": \"En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: kfence: repara la p\\u00e9rdida de memoria cuando los objetos cat kfence Hulk robot inform\\u00f3 un problema kmemleak: objeto sin referencia 0xffff93d1d8cc02e8 (tama\\u00f1o 248): comm \\\"cat\\\", pid 23327, jiffies 4624670141 (edad 495992.217s ) volcado hexadecimal (primeros 32 bytes): 00 40 85 19 d4 93 ff ff 00 10 00 00 00 00 00 00 .@.............. 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................. rastreo inverso: seq_open+0x2a/0x80 full_proxy_open+0x167/0x1e0 do_dentry_open+0x1e1/0x3a0 path_openat+0x961/0xa20 do_filp_open+0xae/0x120 do_sys_openat2+0x216/0x2f0 do_sys_open+0x57/0x80 do_syscall_64+0x33/0x40 Entry_SYSCALL_64_after_hwframe+0x44/0xa9 objeto sin referencia 0xffff93d419854000 (tama\\u00f1o 4096): comm \\\"cat\\\", pid 23327, Jiffies 4624670141 (edad 495992,217 s) volcado hexadecimal (primeros 32 bytes) : 6b 66 65 6e 63 65 2d 23 32 35 30 3a 20 30 78 30 kfence-#250: 0x0 30 30 30 30 30 30 30 37 35 34 62 64 61 31 32 2d 0000000754bda1 2- rastreo inverso: seq_read_iter+0x313/0x440 seq_read+ 0x14b/0x1a0 full_proxy_read+0x56/0x80 vfs_read+0xa5/0x1b0 ksys_read+0xa0/0xf0 do_syscall_64+0x33/0x40 Entry_SYSCALL_64_after_hwframe+0x44/0xa9 Creo que podemos reproducir f\\u00e1cilmente este problema con los siguientes comandos: cat /sys/kernel/ depurar/ kfence/objects echo scan \u0026gt; /sys/kernel/debug/kmemleak cat /sys/kernel/debug/kmemleak La memoria filtrada se asigna en la pila siguiente: do_syscall_64 do_sys_open do_dentry_open full_proxy_open seq_open ---\u0026gt; alloc seq_file vfs_read full_proxy_read seq_read seq_read_iter traverse - --\u0026gt; alloc seq_buf Y deber\\u00eda haberse liberado en el siguiente proceso: do_syscall_64 syscall_exit_to_user_mode exit_to_user_mode_prepare task_work_run ____fput __fput full_proxy_release ---\u0026gt; free aqu\\u00ed Sin embargo, la funci\\u00f3n de liberaci\\u00f3n correspondiente a file_operatives no est\\u00e1 implementada en kfence. Como resultado, se produce una p\\u00e9rdida de memoria. Por tanto, la soluci\\u00f3n a este problema es implementar la funci\\u00f3n de liberaci\\u00f3n correspondiente.\"}]",
      "id": "CVE-2021-47089",
      "lastModified": "2024-11-21T06:35:22.480",
      "metrics": "{\"cvssMetricV31\": [{\"source\": \"134c704f-9b21-4f2e-91b3-4a467353bcc0\", \"type\": \"Secondary\", \"cvssData\": {\"version\": \"3.1\", \"vectorString\": \"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:L\", \"baseScore\": 3.3, \"baseSeverity\": \"LOW\", \"attackVector\": \"LOCAL\", \"attackComplexity\": \"LOW\", \"privilegesRequired\": \"LOW\", \"userInteraction\": \"NONE\", \"scope\": \"UNCHANGED\", \"confidentialityImpact\": \"NONE\", \"integrityImpact\": \"NONE\", \"availabilityImpact\": \"LOW\"}, \"exploitabilityScore\": 1.8, \"impactScore\": 1.4}]}",
      "published": "2024-03-04T18:15:07.560",
      "references": "[{\"url\": \"https://git.kernel.org/stable/c/0129ab1f268b6cf88825eae819b9b84aa0a85634\", \"source\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"}, {\"url\": \"https://git.kernel.org/stable/c/2f06c8293d27f6337f907042c602c9c953988c48\", \"source\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"}, {\"url\": \"https://git.kernel.org/stable/c/0129ab1f268b6cf88825eae819b9b84aa0a85634\", \"source\": \"af854a3a-2127-422b-91ae-364da2661108\"}, {\"url\": \"https://git.kernel.org/stable/c/2f06c8293d27f6337f907042c602c9c953988c48\", \"source\": \"af854a3a-2127-422b-91ae-364da2661108\"}]",
      "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "vulnStatus": "Awaiting Analysis"
    },
    "nvd": "{\"cve\":{\"id\":\"CVE-2021-47089\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2024-03-04T18:15:07.560\",\"lastModified\":\"2026-06-17T04:16:26.517\",\"vulnStatus\":\"Analyzed\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\nkfence: fix memory leak when cat kfence objects\\n\\nHulk robot reported a kmemleak problem:\\n\\n    unreferenced object 0xffff93d1d8cc02e8 (size 248):\\n      comm \\\"cat\\\", pid 23327, jiffies 4624670141 (age 495992.217s)\\n      hex dump (first 32 bytes):\\n        00 40 85 19 d4 93 ff ff 00 10 00 00 00 00 00 00  .@..............\\n        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................\\n      backtrace:\\n         seq_open+0x2a/0x80\\n         full_proxy_open+0x167/0x1e0\\n         do_dentry_open+0x1e1/0x3a0\\n         path_openat+0x961/0xa20\\n         do_filp_open+0xae/0x120\\n         do_sys_openat2+0x216/0x2f0\\n         do_sys_open+0x57/0x80\\n         do_syscall_64+0x33/0x40\\n         entry_SYSCALL_64_after_hwframe+0x44/0xa9\\n    unreferenced object 0xffff93d419854000 (size 4096):\\n      comm \\\"cat\\\", pid 23327, jiffies 4624670141 (age 495992.217s)\\n      hex dump (first 32 bytes):\\n        6b 66 65 6e 63 65 2d 23 32 35 30 3a 20 30 78 30  kfence-#250: 0x0\\n        30 30 30 30 30 30 30 37 35 34 62 64 61 31 32 2d  0000000754bda12-\\n      backtrace:\\n         seq_read_iter+0x313/0x440\\n         seq_read+0x14b/0x1a0\\n         full_proxy_read+0x56/0x80\\n         vfs_read+0xa5/0x1b0\\n         ksys_read+0xa0/0xf0\\n         do_syscall_64+0x33/0x40\\n         entry_SYSCALL_64_after_hwframe+0x44/0xa9\\n\\nI find that we can easily reproduce this problem with the following\\ncommands:\\n\\n\\tcat /sys/kernel/debug/kfence/objects\\n\\techo scan \u003e /sys/kernel/debug/kmemleak\\n\\tcat /sys/kernel/debug/kmemleak\\n\\nThe leaked memory is allocated in the stack below:\\n\\n    do_syscall_64\\n      do_sys_open\\n        do_dentry_open\\n          full_proxy_open\\n            seq_open            ---\u003e alloc seq_file\\n      vfs_read\\n        full_proxy_read\\n          seq_read\\n            seq_read_iter\\n              traverse          ---\u003e alloc seq_buf\\n\\nAnd it should have been released in the following process:\\n\\n    do_syscall_64\\n      syscall_exit_to_user_mode\\n        exit_to_user_mode_prepare\\n          task_work_run\\n            ____fput\\n              __fput\\n                full_proxy_release  ---\u003e free here\\n\\nHowever, the release function corresponding to file_operations is not\\nimplemented in kfence.  As a result, a memory leak occurs.  Therefore,\\nthe solution to this problem is to implement the corresponding release\\nfunction.\"},{\"lang\":\"es\",\"value\":\"En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: kfence: repara la p\u00e9rdida de memoria cuando los objetos cat kfence Hulk robot inform\u00f3 un problema kmemleak: objeto sin referencia 0xffff93d1d8cc02e8 (tama\u00f1o 248): comm \\\"cat\\\", pid 23327, jiffies 4624670141 (edad 495992.217s ) volcado hexadecimal (primeros 32 bytes): 00 40 85 19 d4 93 ff ff 00 10 00 00 00 00 00 00 .@.............. 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................. rastreo inverso: seq_open+0x2a/0x80 full_proxy_open+0x167/0x1e0 do_dentry_open+0x1e1/0x3a0 path_openat+0x961/0xa20 do_filp_open+0xae/0x120 do_sys_openat2+0x216/0x2f0 do_sys_open+0x57/0x80 do_syscall_64+0x33/0x40 Entry_SYSCALL_64_after_hwframe+0x44/0xa9 objeto sin referencia 0xffff93d419854000 (tama\u00f1o 4096): comm \\\"cat\\\", pid 23327, Jiffies 4624670141 (edad 495992,217 s) volcado hexadecimal (primeros 32 bytes) : 6b 66 65 6e 63 65 2d 23 32 35 30 3a 20 30 78 30 kfence-#250: 0x0 30 30 30 30 30 30 30 37 35 34 62 64 61 31 32 2d 0000000754bda1 2- rastreo inverso: seq_read_iter+0x313/0x440 seq_read+ 0x14b/0x1a0 full_proxy_read+0x56/0x80 vfs_read+0xa5/0x1b0 ksys_read+0xa0/0xf0 do_syscall_64+0x33/0x40 Entry_SYSCALL_64_after_hwframe+0x44/0xa9 Creo que podemos reproducir f\u00e1cilmente este problema con los siguientes comandos: cat /sys/kernel/ depurar/ kfence/objects echo scan \u0026gt; /sys/kernel/debug/kmemleak cat /sys/kernel/debug/kmemleak La memoria filtrada se asigna en la pila siguiente: do_syscall_64 do_sys_open do_dentry_open full_proxy_open seq_open ---\u0026gt; alloc seq_file vfs_read full_proxy_read seq_read seq_read_iter traverse - --\u0026gt; alloc seq_buf Y deber\u00eda haberse liberado en el siguiente proceso: do_syscall_64 syscall_exit_to_user_mode exit_to_user_mode_prepare task_work_run ____fput __fput full_proxy_release ---\u0026gt; free aqu\u00ed Sin embargo, la funci\u00f3n de liberaci\u00f3n correspondiente a file_operatives no est\u00e1 implementada en kfence. Como resultado, se produce una p\u00e9rdida de memoria. Por tanto, la soluci\u00f3n a este problema es implementar la funci\u00f3n de liberaci\u00f3n correspondiente.\"}],\"affected\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"affectedData\":[{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"unaffected\",\"programFiles\":[\"mm/kfence/core.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"0ce20dd840897b12ae70869c69f1ba34d6d16965\",\"lessThan\":\"2f06c8293d27f6337f907042c602c9c953988c48\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"0ce20dd840897b12ae70869c69f1ba34d6d16965\",\"lessThan\":\"0129ab1f268b6cf88825eae819b9b84aa0a85634\",\"versionType\":\"git\",\"status\":\"affected\"}]},{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"affected\",\"programFiles\":[\"mm/kfence/core.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"5.12\",\"status\":\"affected\"},{\"version\":\"0\",\"lessThan\":\"5.12\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"5.15.12\",\"lessThanOrEqual\":\"5.15.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"5.16\",\"lessThanOrEqual\":\"*\",\"versionType\":\"original_commit_for_fix\",\"status\":\"unaffected\"}]}]},{\"source\":\"134c704f-9b21-4f2e-91b3-4a467353bcc0\",\"affectedData\":[{\"vendor\":\"linux\",\"product\":\"linux_kernel\",\"defaultStatus\":\"unknown\",\"cpes\":[\"cpe:2.3:o:linux:linux_kernel:-:*:*:*:*:*:*:*\"],\"versions\":[{\"version\":\"0ce20dd84089\",\"lessThan\":\"2f06c8293d27\",\"versionType\":\"custom\",\"status\":\"affected\"},{\"version\":\"0ce20dd84089\",\"lessThan\":\"0129ab1f268b\",\"versionType\":\"custom\",\"status\":\"affected\"},{\"version\":\"5.12\",\"status\":\"affected\"},{\"version\":\"0\",\"lessThan\":\"5.12\",\"versionType\":\"custom\",\"status\":\"affected\"},{\"version\":\"5.15.12\",\"lessThanOrEqual\":\"5.15*\",\"versionType\":\"custom\",\"status\":\"affected\"},{\"version\":\"5.16\",\"lessThanOrEqual\":\"*\",\"versionType\":\"custom\",\"status\":\"affected\"}]}]}],\"metrics\":{\"cvssMetricV31\":[{\"source\":\"134c704f-9b21-4f2e-91b3-4a467353bcc0\",\"type\":\"Secondary\",\"cvssData\":{\"version\":\"3.1\",\"vectorString\":\"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:L\",\"baseScore\":3.3,\"baseSeverity\":\"LOW\",\"attackVector\":\"LOCAL\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"LOW\",\"userInteraction\":\"NONE\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"NONE\",\"integrityImpact\":\"NONE\",\"availabilityImpact\":\"LOW\"},\"exploitabilityScore\":1.8,\"impactScore\":1.4}],\"ssvcV203\":[{\"source\":\"134c704f-9b21-4f2e-91b3-4a467353bcc0\",\"ssvcData\":{\"timestamp\":\"2024-10-31T13:23:25.318113Z\",\"id\":\"CVE-2021-47089\",\"options\":[{\"exploitation\":\"none\"},{\"automatable\":\"no\"},{\"technicalImpact\":\"total\"}],\"role\":\"CISA Coordinator\",\"version\":\"2.0.3\"}}]},\"weaknesses\":[{\"source\":\"nvd@nist.gov\",\"type\":\"Primary\",\"description\":[{\"lang\":\"en\",\"value\":\"CWE-401\"}]}],\"configurations\":[{\"nodes\":[{\"operator\":\"OR\",\"negate\":false,\"cpeMatch\":[{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"5.12\",\"versionEndExcluding\":\"5.15.12\",\"matchCriteriaId\":\"5CAD6D48-E560-4E57-93BC-36BEBD6A8FA6\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:5.16:rc1:*:*:*:*:*:*\",\"matchCriteriaId\":\"357AA433-37E8-4323-BFB2-3038D6E4B414\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:5.16:rc2:*:*:*:*:*:*\",\"matchCriteriaId\":\"A73429BA-C2D9-4D0C-A75F-06A1CA8B3983\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:5.16:rc3:*:*:*:*:*:*\",\"matchCriteriaId\":\"F621B5E3-E99D-49E7-90B9-EC3B77C95383\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:5.16:rc4:*:*:*:*:*:*\",\"matchCriteriaId\":\"F7BFDCAA-1650-49AA-8462-407DD593F94F\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:5.16:rc5:*:*:*:*:*:*\",\"matchCriteriaId\":\"6EC9882F-866D-4ACB-8FBC-213D8D8436C8\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:5.16:rc6:*:*:*:*:*:*\",\"matchCriteriaId\":\"8A0915FE-A4AA-4C94-B783-CF29D81E7E54\"}]}]}],\"references\":[{\"url\":\"https://git.kernel.org/stable/c/0129ab1f268b6cf88825eae819b9b84aa0a85634\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/2f06c8293d27f6337f907042c602c9c953988c48\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/0129ab1f268b6cf88825eae819b9b84aa0a85634\",\"source\":\"af854a3a-2127-422b-91ae-364da2661108\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/2f06c8293d27f6337f907042c602c9c953988c48\",\"source\":\"af854a3a-2127-422b-91ae-364da2661108\",\"tags\":[\"Patch\"]}]}}",
    "redhat_vex": {
      "aggregate_severity": "Low",
      "current_release_date": "2025-11-21T14:43:14+00:00",
      "cve": "CVE-2021-47089",
      "id": "CVE-2021-47089",
      "initial_release_date": "2021-01-01T00:00:00+00:00",
      "product_status:known_affected": "108",
      "product_status:known_not_affected": "90",
      "source": "Red Hat CSAF VEX",
      "status": "final",
      "title": "kernel: kfence: fix memory leak when cat kfence objects",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2021/cve-2021-47089.json",
      "version": "3"
    },
    "suse_vex": {
      "aggregate_severity": "moderate",
      "current_release_date": "2026-09-11T16:59:24Z",
      "cve": "CVE-2021-47089",
      "id": "CVE-2021-47089",
      "initial_release_date": "2024-03-06T04:52:29Z",
      "product_status:known_affected": "330",
      "product_status:known_not_affected": "342",
      "product_status:recommended": "298",
      "source": "SUSE CSAF VEX",
      "status": "interim",
      "title": "SUSE CVE CVE-2021-47089",
      "url": "https://ftp.suse.com/pub/projects/security/csaf-vex/cve-2021-47089.json",
      "version": "63"
    },
    "vulnrichment": {
      "containers": "{\"adp\": [{\"title\": \"CVE Program Container\", \"references\": [{\"url\": \"https://git.kernel.org/stable/c/2f06c8293d27f6337f907042c602c9c953988c48\", \"tags\": [\"x_transferred\"]}, {\"url\": \"https://git.kernel.org/stable/c/0129ab1f268b6cf88825eae819b9b84aa0a85634\", \"tags\": [\"x_transferred\"]}], \"providerMetadata\": {\"orgId\": \"af854a3a-2127-422b-91ae-364da2661108\", \"shortName\": \"CVE\", \"dateUpdated\": \"2024-08-04T05:24:39.939Z\"}}, {\"title\": \"CISA ADP Vulnrichment\", \"metrics\": [{\"cvssV3_1\": {\"scope\": \"UNCHANGED\", \"version\": \"3.1\", \"baseScore\": 3.3, \"attackVector\": \"LOCAL\", \"baseSeverity\": \"LOW\", \"vectorString\": \"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:L\", \"integrityImpact\": \"NONE\", \"userInteraction\": \"NONE\", \"attackComplexity\": \"LOW\", \"availabilityImpact\": \"LOW\", \"privilegesRequired\": \"LOW\", \"confidentialityImpact\": \"NONE\"}}, {\"other\": {\"type\": \"ssvc\", \"content\": {\"id\": \"CVE-2021-47089\", \"role\": \"CISA Coordinator\", \"options\": [{\"Exploitation\": \"none\"}, {\"Automatable\": \"no\"}, {\"Technical Impact\": \"total\"}], \"version\": \"2.0.3\", \"timestamp\": \"2024-10-31T13:23:25.318113Z\"}}}], \"affected\": [{\"cpes\": [\"cpe:2.3:o:linux:linux_kernel:-:*:*:*:*:*:*:*\"], \"vendor\": \"linux\", \"product\": \"linux_kernel\", \"versions\": [{\"status\": \"affected\", \"version\": \"0ce20dd84089\", \"lessThan\": \"2f06c8293d27\", \"versionType\": \"custom\"}, {\"status\": \"affected\", \"version\": \"0ce20dd84089\", \"lessThan\": \"0129ab1f268b\", \"versionType\": \"custom\"}, {\"status\": \"affected\", \"version\": \"5.12\"}, {\"status\": \"affected\", \"version\": \"0\", \"lessThan\": \"5.12\", \"versionType\": \"custom\"}, {\"status\": \"affected\", \"version\": \"5.15.12\", \"versionType\": \"custom\", \"lessThanOrEqual\": \"5.15*\"}, {\"status\": \"affected\", \"version\": \"5.16\", \"versionType\": \"custom\", \"lessThanOrEqual\": \"*\"}], \"defaultStatus\": \"unknown\"}], \"problemTypes\": [{\"descriptions\": [{\"lang\": \"en\", \"type\": \"CWE\", \"description\": \"CWE-noinfo Not enough information\"}]}], \"providerMetadata\": {\"orgId\": \"134c704f-9b21-4f2e-91b3-4a467353bcc0\", \"shortName\": \"CISA-ADP\", \"dateUpdated\": \"2024-07-24T14:25:51.167Z\"}}], \"cna\": {\"title\": \"kfence: fix memory leak when cat kfence objects\", \"affected\": [{\"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\", \"vendor\": \"Linux\", \"product\": \"Linux\", \"versions\": [{\"status\": \"affected\", \"version\": \"0ce20dd840897b12ae70869c69f1ba34d6d16965\", \"lessThan\": \"2f06c8293d27f6337f907042c602c9c953988c48\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"0ce20dd840897b12ae70869c69f1ba34d6d16965\", \"lessThan\": \"0129ab1f268b6cf88825eae819b9b84aa0a85634\", \"versionType\": \"git\"}], \"programFiles\": [\"mm/kfence/core.c\"], \"defaultStatus\": \"unaffected\"}, {\"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\", \"vendor\": \"Linux\", \"product\": \"Linux\", \"versions\": [{\"status\": \"affected\", \"version\": \"5.12\"}, {\"status\": \"unaffected\", \"version\": \"0\", \"lessThan\": \"5.12\", \"versionType\": \"semver\"}, {\"status\": \"unaffected\", \"version\": \"5.15.12\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"5.15.*\"}, {\"status\": \"unaffected\", \"version\": \"5.16\", \"versionType\": \"original_commit_for_fix\", \"lessThanOrEqual\": \"*\"}], \"programFiles\": [\"mm/kfence/core.c\"], \"defaultStatus\": \"affected\"}], \"references\": [{\"url\": \"https://git.kernel.org/stable/c/2f06c8293d27f6337f907042c602c9c953988c48\"}, {\"url\": \"https://git.kernel.org/stable/c/0129ab1f268b6cf88825eae819b9b84aa0a85634\"}], \"x_generator\": {\"engine\": \"bippy-1.2.0\"}, \"descriptions\": [{\"lang\": \"en\", \"value\": \"In the Linux kernel, the following vulnerability has been resolved:\\n\\nkfence: fix memory leak when cat kfence objects\\n\\nHulk robot reported a kmemleak problem:\\n\\n    unreferenced object 0xffff93d1d8cc02e8 (size 248):\\n      comm \\\"cat\\\", pid 23327, jiffies 4624670141 (age 495992.217s)\\n      hex dump (first 32 bytes):\\n        00 40 85 19 d4 93 ff ff 00 10 00 00 00 00 00 00  .@..............\\n        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................\\n      backtrace:\\n         seq_open+0x2a/0x80\\n         full_proxy_open+0x167/0x1e0\\n         do_dentry_open+0x1e1/0x3a0\\n         path_openat+0x961/0xa20\\n         do_filp_open+0xae/0x120\\n         do_sys_openat2+0x216/0x2f0\\n         do_sys_open+0x57/0x80\\n         do_syscall_64+0x33/0x40\\n         entry_SYSCALL_64_after_hwframe+0x44/0xa9\\n    unreferenced object 0xffff93d419854000 (size 4096):\\n      comm \\\"cat\\\", pid 23327, jiffies 4624670141 (age 495992.217s)\\n      hex dump (first 32 bytes):\\n        6b 66 65 6e 63 65 2d 23 32 35 30 3a 20 30 78 30  kfence-#250: 0x0\\n        30 30 30 30 30 30 30 37 35 34 62 64 61 31 32 2d  0000000754bda12-\\n      backtrace:\\n         seq_read_iter+0x313/0x440\\n         seq_read+0x14b/0x1a0\\n         full_proxy_read+0x56/0x80\\n         vfs_read+0xa5/0x1b0\\n         ksys_read+0xa0/0xf0\\n         do_syscall_64+0x33/0x40\\n         entry_SYSCALL_64_after_hwframe+0x44/0xa9\\n\\nI find that we can easily reproduce this problem with the following\\ncommands:\\n\\n\\tcat /sys/kernel/debug/kfence/objects\\n\\techo scan \u003e /sys/kernel/debug/kmemleak\\n\\tcat /sys/kernel/debug/kmemleak\\n\\nThe leaked memory is allocated in the stack below:\\n\\n    do_syscall_64\\n      do_sys_open\\n        do_dentry_open\\n          full_proxy_open\\n            seq_open            ---\u003e alloc seq_file\\n      vfs_read\\n        full_proxy_read\\n          seq_read\\n            seq_read_iter\\n              traverse          ---\u003e alloc seq_buf\\n\\nAnd it should have been released in the following process:\\n\\n    do_syscall_64\\n      syscall_exit_to_user_mode\\n        exit_to_user_mode_prepare\\n          task_work_run\\n            ____fput\\n              __fput\\n                full_proxy_release  ---\u003e free here\\n\\nHowever, the release function corresponding to file_operations is not\\nimplemented in kfence.  As a result, a memory leak occurs.  Therefore,\\nthe solution to this problem is to implement the corresponding release\\nfunction.\"}], \"cpeApplicability\": [{\"nodes\": [{\"negate\": false, \"cpeMatch\": [{\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"5.15.12\", \"versionStartIncluding\": \"5.12\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"5.16\", \"versionStartIncluding\": \"5.12\"}], \"operator\": \"OR\"}]}], \"providerMetadata\": {\"orgId\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\", \"shortName\": \"Linux\", \"dateUpdated\": \"2025-05-04T07:03:54.349Z\"}}}",
      "cveMetadata": "{\"cveId\": \"CVE-2021-47089\", \"state\": \"PUBLISHED\", \"dateUpdated\": \"2025-05-04T07:03:54.349Z\", \"dateReserved\": \"2024-02-29T22:33:44.300Z\", \"assignerOrgId\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\", \"datePublished\": \"2024-03-04T18:10:27.495Z\", \"assignerShortName\": \"Linux\"}",
      "dataType": "CVE_RECORD",
      "dataVersion": "5.1"
    }
  }
}



Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.

Sightings

Author Source Type Date Other

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or observed by the user.
  • Confirmed: The vulnerability has been validated from an analyst's perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
  • Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
  • Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
  • Not confirmed: The user expressed doubt about the validity of the vulnerability.
  • Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.

Loading…

Detection rules are retrieved from Rulezet.

Loading…

Loading…

Related by attack behaviour

Vulnerabilities whose description is nearest to this one in the vector space of the CIRCL/vulnerability-attack-technique-biencoder model. This is a similarity search over the bi-encoder space (plain cosine), not a classification, and it has no measured accuracy.


Loading…