cve-2023-52897
Vulnerability from cvelistv5
Published
2024-08-21 06:10
Modified
2024-11-04 14:54
Severity ?
Summary
btrfs: qgroup: do not warn on record without old_roots populated
Impacted products
Vendor Product Version
Linux Linux Version: 6.1
Show details on NVD website


{
  "containers": {
    "adp": [
      {
        "metrics": [
          {
            "other": {
              "content": {
                "id": "CVE-2023-52897",
                "options": [
                  {
                    "Exploitation": "none"
                  },
                  {
                    "Automatable": "no"
                  },
                  {
                    "Technical Impact": "partial"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2024-09-10T16:03:40.621800Z",
                "version": "2.0.3"
              },
              "type": "ssvc"
            }
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2024-09-12T17:33:12.687Z",
          "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
          "shortName": "CISA-ADP"
        },
        "title": "CISA ADP Vulnrichment"
      }
    ],
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "fs/btrfs/qgroup.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "bb2c2e62539f",
              "status": "affected",
              "version": "e15e9f43c7ca",
              "versionType": "git"
            },
            {
              "lessThan": "75181406b4ea",
              "status": "affected",
              "version": "e15e9f43c7ca",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "fs/btrfs/qgroup.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "6.1"
            },
            {
              "lessThan": "6.1",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.1.*",
              "status": "unaffected",
              "version": "6.1.8",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "6.2",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nbtrfs: qgroup: do not warn on record without old_roots populated\n\n[BUG]\nThere are some reports from the mailing list that since v6.1 kernel, the\nWARN_ON() inside btrfs_qgroup_account_extent() gets triggered during\nrescan:\n\n  WARNING: CPU: 3 PID: 6424 at fs/btrfs/qgroup.c:2756 btrfs_qgroup_account_extents+0x1ae/0x260 [btrfs]\n  CPU: 3 PID: 6424 Comm: snapperd Tainted: P           OE      6.1.2-1-default #1 openSUSE Tumbleweed 05c7a1b1b61d5627475528f71f50444637b5aad7\n  RIP: 0010:btrfs_qgroup_account_extents+0x1ae/0x260 [btrfs]\n  Call Trace:\n   \u003cTASK\u003e\n  btrfs_commit_transaction+0x30c/0xb40 [btrfs c39c9c546c241c593f03bd6d5f39ea1b676250f6]\n   ? start_transaction+0xc3/0x5b0 [btrfs c39c9c546c241c593f03bd6d5f39ea1b676250f6]\n  btrfs_qgroup_rescan+0x42/0xc0 [btrfs c39c9c546c241c593f03bd6d5f39ea1b676250f6]\n   btrfs_ioctl+0x1ab9/0x25c0 [btrfs c39c9c546c241c593f03bd6d5f39ea1b676250f6]\n   ? __rseq_handle_notify_resume+0xa9/0x4a0\n   ? mntput_no_expire+0x4a/0x240\n   ? __seccomp_filter+0x319/0x4d0\n   __x64_sys_ioctl+0x90/0xd0\n   do_syscall_64+0x5b/0x80\n   ? syscall_exit_to_user_mode+0x17/0x40\n   ? do_syscall_64+0x67/0x80\n  entry_SYSCALL_64_after_hwframe+0x63/0xcd\n  RIP: 0033:0x7fd9b790d9bf\n   \u003c/TASK\u003e\n\n[CAUSE]\nSince commit e15e9f43c7ca (\"btrfs: introduce\nBTRFS_QGROUP_RUNTIME_FLAG_NO_ACCOUNTING to skip qgroup accounting\"), if\nour qgroup is already in inconsistent state, we will no longer do the\ntime-consuming backref walk.\n\nThis can leave some qgroup records without a valid old_roots ulist.\nNormally this is fine, as btrfs_qgroup_account_extents() would also skip\nthose records if we have NO_ACCOUNTING flag set.\n\nBut there is a small window, if we have NO_ACCOUNTING flag set, and\ninserted some qgroup_record without a old_roots ulist, but then the user\ntriggered a qgroup rescan.\n\nDuring btrfs_qgroup_rescan(), we firstly clear NO_ACCOUNTING flag, then\ncommit current transaction.\n\nAnd since we have a qgroup_record with old_roots = NULL, we trigger the\nWARN_ON() during btrfs_qgroup_account_extents().\n\n[FIX]\nUnfortunately due to the introduction of NO_ACCOUNTING flag, the\nassumption that every qgroup_record would have its old_roots populated\nis no longer correct.\n\nFix the false alerts and drop the WARN_ON()."
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2024-11-04T14:54:46.321Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/bb2c2e62539f2b63c5e0beb51501d328260c7595"
        },
        {
          "url": "https://git.kernel.org/stable/c/75181406b4eafacc531ff2ee5fb032bd93317e2b"
        }
      ],
      "title": "btrfs: qgroup: do not warn on record without old_roots populated",
      "x_generator": {
        "engine": "bippy-9e1c9544281a"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2023-52897",
    "datePublished": "2024-08-21T06:10:37.316Z",
    "dateReserved": "2024-08-21T06:07:11.014Z",
    "dateUpdated": "2024-11-04T14:54:46.321Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.1",
  "meta": {
    "nvd": "{\"cve\":{\"id\":\"CVE-2023-52897\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2024-08-21T07:15:06.120\",\"lastModified\":\"2024-09-13T13:52:07.717\",\"vulnStatus\":\"Analyzed\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\nbtrfs: qgroup: do not warn on record without old_roots populated\\n\\n[BUG]\\nThere are some reports from the mailing list that since v6.1 kernel, the\\nWARN_ON() inside btrfs_qgroup_account_extent() gets triggered during\\nrescan:\\n\\n  WARNING: CPU: 3 PID: 6424 at fs/btrfs/qgroup.c:2756 btrfs_qgroup_account_extents+0x1ae/0x260 [btrfs]\\n  CPU: 3 PID: 6424 Comm: snapperd Tainted: P           OE      6.1.2-1-default #1 openSUSE Tumbleweed 05c7a1b1b61d5627475528f71f50444637b5aad7\\n  RIP: 0010:btrfs_qgroup_account_extents+0x1ae/0x260 [btrfs]\\n  Call Trace:\\n   \u003cTASK\u003e\\n  btrfs_commit_transaction+0x30c/0xb40 [btrfs c39c9c546c241c593f03bd6d5f39ea1b676250f6]\\n   ? start_transaction+0xc3/0x5b0 [btrfs c39c9c546c241c593f03bd6d5f39ea1b676250f6]\\n  btrfs_qgroup_rescan+0x42/0xc0 [btrfs c39c9c546c241c593f03bd6d5f39ea1b676250f6]\\n   btrfs_ioctl+0x1ab9/0x25c0 [btrfs c39c9c546c241c593f03bd6d5f39ea1b676250f6]\\n   ? __rseq_handle_notify_resume+0xa9/0x4a0\\n   ? mntput_no_expire+0x4a/0x240\\n   ? __seccomp_filter+0x319/0x4d0\\n   __x64_sys_ioctl+0x90/0xd0\\n   do_syscall_64+0x5b/0x80\\n   ? syscall_exit_to_user_mode+0x17/0x40\\n   ? do_syscall_64+0x67/0x80\\n  entry_SYSCALL_64_after_hwframe+0x63/0xcd\\n  RIP: 0033:0x7fd9b790d9bf\\n   \u003c/TASK\u003e\\n\\n[CAUSE]\\nSince commit e15e9f43c7ca (\\\"btrfs: introduce\\nBTRFS_QGROUP_RUNTIME_FLAG_NO_ACCOUNTING to skip qgroup accounting\\\"), if\\nour qgroup is already in inconsistent state, we will no longer do the\\ntime-consuming backref walk.\\n\\nThis can leave some qgroup records without a valid old_roots ulist.\\nNormally this is fine, as btrfs_qgroup_account_extents() would also skip\\nthose records if we have NO_ACCOUNTING flag set.\\n\\nBut there is a small window, if we have NO_ACCOUNTING flag set, and\\ninserted some qgroup_record without a old_roots ulist, but then the user\\ntriggered a qgroup rescan.\\n\\nDuring btrfs_qgroup_rescan(), we firstly clear NO_ACCOUNTING flag, then\\ncommit current transaction.\\n\\nAnd since we have a qgroup_record with old_roots = NULL, we trigger the\\nWARN_ON() during btrfs_qgroup_account_extents().\\n\\n[FIX]\\nUnfortunately due to the introduction of NO_ACCOUNTING flag, the\\nassumption that every qgroup_record would have its old_roots populated\\nis no longer correct.\\n\\nFix the false alerts and drop the WARN_ON().\"},{\"lang\":\"es\",\"value\":\"En el kernel de Linux, se resolvi\u00f3 la siguiente vulnerabilidad: btrfs: qgroup: no advertir en el registro sin old_roots poblado [ERROR] Hay algunos informes de la lista de correo que desde el kernel v6.1, WARN_ON() dentro de btrfs_qgroup_account_extent() se activa durante la nueva exploraci\u00f3n: ADVERTENCIA: CPU: 3 PID: 6424 en fs/btrfs/qgroup.c:2756 btrfs_qgroup_account_extents+0x1ae/0x260 [btrfs] CPU: 3 PID: 6424 Comm: snapperd Contaminado: P OE 6.1.2-1- predeterminado #1 openSUSE Tumbleweed 05c7a1b1b61d5627475528f71f50444637b5aad7 RIP: 0010:btrfs_qgroup_account_extents+0x1ae/0x260 [btrfs] Seguimiento de llamadas:  btrfs_commit_transaction+0x30c/0xb40 c39c9c546c241c593f03bd6d5f39ea1b676250f6] ? start_transaction+0xc3/0x5b0 [btrfs c39c9c546c241c593f03bd6d5f39ea1b676250f6] btrfs_qgroup_rescan+0x42/0xc0 [btrfs c39c9c546c241c593f03bd6d5f39ea1b676250f 6]btrfs_ioctl+0x1ab9/0x25c0 [btrfs c39c9c546c241c593f03bd6d5f39ea1b676250f6]? __rseq_handle_notify_resume+0xa9/0x4a0 ? mntput_no_expire+0x4a/0x240? __seccomp_filter+0x319/0x4d0 __x64_sys_ioctl+0x90/0xd0 do_syscall_64+0x5b/0x80 ? syscall_exit_to_user_mode+0x17/0x40? do_syscall_64+0x67/0x80 Entry_SYSCALL_64_after_hwframe+0x63/0xcd RIP: 0033:0x7fd9b790d9bf  [CAUSA] Desde el commit e15e9f43c7ca (\\\"btrfs: introduzca BTRFS_QGROUP_RUNTIME_FLAG_NO_ACCOUNTING para omitir la contabilidad de qgroup\\\"), si qgroup ya est\u00e1 en estado inconsistente, no lo haremos Ya no hagas la larga caminata hacia atr\u00e1s. Esto puede dejar algunos registros de qgroup sin una lista old_roots v\u00e1lida. Normalmente, esto est\u00e1 bien, ya que btrfs_qgroup_account_extents() tambi\u00e9n omitir\u00eda esos registros si tenemos configurado el indicador NO_ACCOUNTING. Pero hay una peque\u00f1a ventana, si tenemos el indicador NO_ACCOUNTING configurado e insertamos alg\u00fan qgroup_record sin una lista old_roots, pero luego el usuario activ\u00f3 una nueva exploraci\u00f3n de qgroup. Durante btrfs_qgroup_rescan(), primero borramos el indicador NO_ACCOUNTING y luego confirmamos la transacci\u00f3n actual. Y como tenemos un qgroup_record con old_roots = NULL, activamos WARN_ON() durante btrfs_qgroup_account_extents(). [FIX] Desafortunadamente, debido a la introducci\u00f3n del indicador NO_ACCOUNTING, la suposici\u00f3n de que cada qgroup_record tendr\u00eda sus old_roots completadas ya no es correcta. Corrija las alertas falsas y elimine WARN_ON().\"}],\"metrics\":{\"cvssMetricV31\":[{\"source\":\"nvd@nist.gov\",\"type\":\"Primary\",\"cvssData\":{\"version\":\"3.1\",\"vectorString\":\"CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:H\",\"baseScore\":4.7,\"baseSeverity\":\"MEDIUM\",\"attackVector\":\"LOCAL\",\"attackComplexity\":\"HIGH\",\"privilegesRequired\":\"LOW\",\"userInteraction\":\"NONE\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"NONE\",\"integrityImpact\":\"NONE\",\"availabilityImpact\":\"HIGH\"},\"exploitabilityScore\":1.0,\"impactScore\":3.6}]},\"weaknesses\":[{\"source\":\"nvd@nist.gov\",\"type\":\"Primary\",\"description\":[{\"lang\":\"en\",\"value\":\"NVD-CWE-noinfo\"}]}],\"configurations\":[{\"nodes\":[{\"operator\":\"OR\",\"negate\":false,\"cpeMatch\":[{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.1\",\"versionEndExcluding\":\"6.1.8\",\"matchCriteriaId\":\"0EF71645-1ABD-4584-8FEC-AF3D155E1F5B\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:6.2:rc1:*:*:*:*:*:*\",\"matchCriteriaId\":\"FF501633-2F44-4913-A8EE-B021929F49F6\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:6.2:rc2:*:*:*:*:*:*\",\"matchCriteriaId\":\"2BDA597B-CAC1-4DF0-86F0-42E142C654E9\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:6.2:rc3:*:*:*:*:*:*\",\"matchCriteriaId\":\"725C78C9-12CE-406F-ABE8-0813A01D66E8\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:6.2:rc4:*:*:*:*:*:*\",\"matchCriteriaId\":\"A127C155-689C-4F67-B146-44A57F4BFD85\"}]}]}],\"references\":[{\"url\":\"https://git.kernel.org/stable/c/75181406b4eafacc531ff2ee5fb032bd93317e2b\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/bb2c2e62539f2b63c5e0beb51501d328260c7595\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]}]}}"
  }
}


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.
  • 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.