cve-2024-35793
Vulnerability from cvelistv5
Published
2024-05-17 12:24
Modified
2024-12-19 08:55
Severity ?
Summary
In the Linux kernel, the following vulnerability has been resolved: debugfs: fix wait/cancellation handling during remove Ben Greear further reports deadlocks during concurrent debugfs remove while files are being accessed, even though the code in question now uses debugfs cancellations. Turns out that despite all the review on the locking, we missed completely that the logic is wrong: if the refcount hits zero we can finish (and need not wait for the completion), but if it doesn't we have to trigger all the cancellations. As written, we can _never_ get into the loop triggering the cancellations. Fix this, and explain it better while at it.
Impacted products
Vendor Product Version
Linux Linux Version: 8c88a474357ead632b07c70bf7f119ace8c3b39e
Version: 8c88a474357ead632b07c70bf7f119ace8c3b39e
Version: 8c88a474357ead632b07c70bf7f119ace8c3b39e
Create a notification for this product.
   Linux Linux Version: 6.7
Create a notification for this product.
Show details on NVD website


{
   containers: {
      adp: [
         {
            providerMetadata: {
               dateUpdated: "2024-08-02T03:21:47.366Z",
               orgId: "af854a3a-2127-422b-91ae-364da2661108",
               shortName: "CVE",
            },
            references: [
               {
                  tags: [
                     "x_transferred",
                  ],
                  url: "https://git.kernel.org/stable/c/e88b5ae01901c4a655a53158397746334778a57b",
               },
               {
                  tags: [
                     "x_transferred",
                  ],
                  url: "https://git.kernel.org/stable/c/3d08cca5fd0aabb62b7015067ab40913b33da906",
               },
               {
                  tags: [
                     "x_transferred",
                  ],
                  url: "https://git.kernel.org/stable/c/952c3fce297f12c7ff59380adb66b564e2bc9b64",
               },
            ],
            title: "CVE Program Container",
         },
         {
            metrics: [
               {
                  other: {
                     content: {
                        id: "CVE-2024-35793",
                        options: [
                           {
                              Exploitation: "none",
                           },
                           {
                              Automatable: "no",
                           },
                           {
                              "Technical Impact": "partial",
                           },
                        ],
                        role: "CISA Coordinator",
                        timestamp: "2024-09-10T15:42:47.871301Z",
                        version: "2.0.3",
                     },
                     type: "ssvc",
                  },
               },
            ],
            providerMetadata: {
               dateUpdated: "2024-09-11T17:33:22.657Z",
               orgId: "134c704f-9b21-4f2e-91b3-4a467353bcc0",
               shortName: "CISA-ADP",
            },
            title: "CISA ADP Vulnrichment",
         },
      ],
      cna: {
         affected: [
            {
               defaultStatus: "unaffected",
               product: "Linux",
               programFiles: [
                  "fs/debugfs/inode.c",
               ],
               repo: "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
               vendor: "Linux",
               versions: [
                  {
                     lessThan: "e88b5ae01901c4a655a53158397746334778a57b",
                     status: "affected",
                     version: "8c88a474357ead632b07c70bf7f119ace8c3b39e",
                     versionType: "git",
                  },
                  {
                     lessThan: "3d08cca5fd0aabb62b7015067ab40913b33da906",
                     status: "affected",
                     version: "8c88a474357ead632b07c70bf7f119ace8c3b39e",
                     versionType: "git",
                  },
                  {
                     lessThan: "952c3fce297f12c7ff59380adb66b564e2bc9b64",
                     status: "affected",
                     version: "8c88a474357ead632b07c70bf7f119ace8c3b39e",
                     versionType: "git",
                  },
               ],
            },
            {
               defaultStatus: "affected",
               product: "Linux",
               programFiles: [
                  "fs/debugfs/inode.c",
               ],
               repo: "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
               vendor: "Linux",
               versions: [
                  {
                     status: "affected",
                     version: "6.7",
                  },
                  {
                     lessThan: "6.7",
                     status: "unaffected",
                     version: "0",
                     versionType: "semver",
                  },
                  {
                     lessThanOrEqual: "6.7.*",
                     status: "unaffected",
                     version: "6.7.12",
                     versionType: "semver",
                  },
                  {
                     lessThanOrEqual: "6.8.*",
                     status: "unaffected",
                     version: "6.8.3",
                     versionType: "semver",
                  },
                  {
                     lessThanOrEqual: "*",
                     status: "unaffected",
                     version: "6.9",
                     versionType: "original_commit_for_fix",
                  },
               ],
            },
         ],
         descriptions: [
            {
               lang: "en",
               value: "In the Linux kernel, the following vulnerability has been resolved:\n\ndebugfs: fix wait/cancellation handling during remove\n\nBen Greear further reports deadlocks during concurrent debugfs\nremove while files are being accessed, even though the code in\nquestion now uses debugfs cancellations. Turns out that despite\nall the review on the locking, we missed completely that the\nlogic is wrong: if the refcount hits zero we can finish (and\nneed not wait for the completion), but if it doesn't we have\nto trigger all the cancellations. As written, we can _never_\nget into the loop triggering the cancellations. Fix this, and\nexplain it better while at it.",
            },
         ],
         providerMetadata: {
            dateUpdated: "2024-12-19T08:55:17.353Z",
            orgId: "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            shortName: "Linux",
         },
         references: [
            {
               url: "https://git.kernel.org/stable/c/e88b5ae01901c4a655a53158397746334778a57b",
            },
            {
               url: "https://git.kernel.org/stable/c/3d08cca5fd0aabb62b7015067ab40913b33da906",
            },
            {
               url: "https://git.kernel.org/stable/c/952c3fce297f12c7ff59380adb66b564e2bc9b64",
            },
         ],
         title: "debugfs: fix wait/cancellation handling during remove",
         x_generator: {
            engine: "bippy-5f407fcff5a0",
         },
      },
   },
   cveMetadata: {
      assignerOrgId: "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      assignerShortName: "Linux",
      cveId: "CVE-2024-35793",
      datePublished: "2024-05-17T12:24:56.630Z",
      dateReserved: "2024-05-17T12:19:12.339Z",
      dateUpdated: "2024-12-19T08:55:17.353Z",
      state: "PUBLISHED",
   },
   dataType: "CVE_RECORD",
   dataVersion: "5.1",
   "vulnerability-lookup:meta": {
      nvd: "{\"cve\":{\"id\":\"CVE-2024-35793\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2024-05-17T13:15:59.023\",\"lastModified\":\"2024-11-21T09:20:54.497\",\"vulnStatus\":\"Awaiting Analysis\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\ndebugfs: fix wait/cancellation handling during remove\\n\\nBen Greear further reports deadlocks during concurrent debugfs\\nremove while files are being accessed, even though the code in\\nquestion now uses debugfs cancellations. Turns out that despite\\nall the review on the locking, we missed completely that the\\nlogic is wrong: if the refcount hits zero we can finish (and\\nneed not wait for the completion), but if it doesn't we have\\nto trigger all the cancellations. As written, we can _never_\\nget into the loop triggering the cancellations. Fix this, and\\nexplain it better while at it.\"},{\"lang\":\"es\",\"value\":\" En el kernel de Linux, se resolvió la siguiente vulnerabilidad: debugfs: corrige el manejo de espera/cancelación durante la eliminación Ben Greear informa además bloqueos durante la eliminación de debugfs concurrentes mientras se accede a los archivos, aunque el código en cuestión ahora usa cancelaciones de debugfs. Resulta que a pesar de toda la revisión sobre el bloqueo, no entendimos por completo que la lógica es incorrecta: si el recuento llega a cero, podemos finalizar (y no necesitamos esperar a que se complete), pero si no es así, tenemos que activar todos los cancelaciones. Tal como está escrito, _nunca_ podemos entrar en el ciclo que desencadena las cancelaciones. Arregla esto y explícalo mejor mientras lo haces.\"}],\"metrics\":{},\"references\":[{\"url\":\"https://git.kernel.org/stable/c/3d08cca5fd0aabb62b7015067ab40913b33da906\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/952c3fce297f12c7ff59380adb66b564e2bc9b64\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/e88b5ae01901c4a655a53158397746334778a57b\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/3d08cca5fd0aabb62b7015067ab40913b33da906\",\"source\":\"af854a3a-2127-422b-91ae-364da2661108\"},{\"url\":\"https://git.kernel.org/stable/c/952c3fce297f12c7ff59380adb66b564e2bc9b64\",\"source\":\"af854a3a-2127-422b-91ae-364da2661108\"},{\"url\":\"https://git.kernel.org/stable/c/e88b5ae01901c4a655a53158397746334778a57b\",\"source\":\"af854a3a-2127-422b-91ae-364da2661108\"}]}}",
      vulnrichment: {
         containers: "{\"adp\": [{\"title\": \"CVE Program Container\", \"references\": [{\"url\": \"https://git.kernel.org/stable/c/e88b5ae01901c4a655a53158397746334778a57b\", \"tags\": [\"x_transferred\"]}, {\"url\": \"https://git.kernel.org/stable/c/3d08cca5fd0aabb62b7015067ab40913b33da906\", \"tags\": [\"x_transferred\"]}, {\"url\": \"https://git.kernel.org/stable/c/952c3fce297f12c7ff59380adb66b564e2bc9b64\", \"tags\": [\"x_transferred\"]}], \"providerMetadata\": {\"orgId\": \"af854a3a-2127-422b-91ae-364da2661108\", \"shortName\": \"CVE\", \"dateUpdated\": \"2024-08-02T03:21:47.366Z\"}}, {\"title\": \"CISA ADP Vulnrichment\", \"metrics\": [{\"other\": {\"type\": \"ssvc\", \"content\": {\"id\": \"CVE-2024-35793\", \"role\": \"CISA Coordinator\", \"options\": [{\"Exploitation\": \"none\"}, {\"Automatable\": \"no\"}, {\"Technical Impact\": \"partial\"}], \"version\": \"2.0.3\", \"timestamp\": \"2024-09-10T15:42:47.871301Z\"}}}], \"providerMetadata\": {\"orgId\": \"134c704f-9b21-4f2e-91b3-4a467353bcc0\", \"shortName\": \"CISA-ADP\", \"dateUpdated\": \"2024-09-11T12:42:16.398Z\"}}], \"cna\": {\"title\": \"debugfs: fix wait/cancellation handling during remove\", \"affected\": [{\"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\", \"vendor\": \"Linux\", \"product\": \"Linux\", \"versions\": [{\"status\": \"affected\", \"version\": \"8c88a474357e\", \"lessThan\": \"e88b5ae01901\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"8c88a474357e\", \"lessThan\": \"3d08cca5fd0a\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"8c88a474357e\", \"lessThan\": \"952c3fce297f\", \"versionType\": \"git\"}], \"programFiles\": [\"fs/debugfs/inode.c\"], \"defaultStatus\": \"unaffected\"}, {\"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\", \"vendor\": \"Linux\", \"product\": \"Linux\", \"versions\": [{\"status\": \"affected\", \"version\": \"6.7\"}, {\"status\": \"unaffected\", \"version\": \"0\", \"lessThan\": \"6.7\", \"versionType\": \"custom\"}, {\"status\": \"unaffected\", \"version\": \"6.7.12\", \"versionType\": \"custom\", \"lessThanOrEqual\": \"6.7.*\"}, {\"status\": \"unaffected\", \"version\": \"6.8.3\", \"versionType\": \"custom\", \"lessThanOrEqual\": \"6.8.*\"}, {\"status\": \"unaffected\", \"version\": \"6.9\", \"versionType\": \"original_commit_for_fix\", \"lessThanOrEqual\": \"*\"}], \"programFiles\": [\"fs/debugfs/inode.c\"], \"defaultStatus\": \"affected\"}], \"references\": [{\"url\": \"https://git.kernel.org/stable/c/e88b5ae01901c4a655a53158397746334778a57b\"}, {\"url\": \"https://git.kernel.org/stable/c/3d08cca5fd0aabb62b7015067ab40913b33da906\"}, {\"url\": \"https://git.kernel.org/stable/c/952c3fce297f12c7ff59380adb66b564e2bc9b64\"}], \"x_generator\": {\"engine\": \"bippy-a5840b7849dd\"}, \"descriptions\": [{\"lang\": \"en\", \"value\": \"In the Linux kernel, the following vulnerability has been resolved:\\n\\ndebugfs: fix wait/cancellation handling during remove\\n\\nBen Greear further reports deadlocks during concurrent debugfs\\nremove while files are being accessed, even though the code in\\nquestion now uses debugfs cancellations. Turns out that despite\\nall the review on the locking, we missed completely that the\\nlogic is wrong: if the refcount hits zero we can finish (and\\nneed not wait for the completion), but if it doesn't we have\\nto trigger all the cancellations. As written, we can _never_\\nget into the loop triggering the cancellations. Fix this, and\\nexplain it better while at it.\"}], \"providerMetadata\": {\"orgId\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\", \"shortName\": \"Linux\", \"dateUpdated\": \"2024-05-29T05:29:04.149Z\"}}}",
         cveMetadata: "{\"cveId\": \"CVE-2024-35793\", \"state\": \"PUBLISHED\", \"dateUpdated\": \"2024-09-11T17:33:22.657Z\", \"dateReserved\": \"2024-05-17T12:19:12.339Z\", \"assignerOrgId\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\", \"datePublished\": \"2024-05-17T12:24:56.630Z\", \"assignerShortName\": \"Linux\"}",
         dataType: "CVE_RECORD",
         dataVersion: "5.1",
      },
   },
}


Log in or create an account to share your comment.

Security Advisory comment format.

This schema specifies the format of a comment related to a security advisory.

UUIDv4 of the comment
UUIDv4 of the Vulnerability-Lookup instance
When the comment was created originally
When the comment was last updated
Title of the comment
Description of the comment
The identifier of the vulnerability (CVE ID, GHSA-ID, PYSEC ID, etc.).



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.