cve-2024-49996
Vulnerability from cvelistv5
Published
2024-10-21 18:02
Modified
2024-12-19 09:30
Severity ?
Summary
In the Linux kernel, the following vulnerability has been resolved: cifs: Fix buffer overflow when parsing NFS reparse points ReparseDataLength is sum of the InodeType size and DataBuffer size. So to get DataBuffer size it is needed to subtract InodeType's size from ReparseDataLength. Function cifs_strndup_from_utf16() is currentlly accessing buf->DataBuffer at position after the end of the buffer because it does not subtract InodeType size from the length. Fix this problem and correctly subtract variable len. Member InodeType is present only when reparse buffer is large enough. Check for ReparseDataLength before accessing InodeType to prevent another invalid memory access. Major and minor rdev values are present also only when reparse buffer is large enough. Check for reparse buffer size before calling reparse_mkdev().
Impacted products
Vendor Product Version
Linux Linux Version: d5ecebc4900df7f6e8dff0717574668885110553
Version: d5ecebc4900df7f6e8dff0717574668885110553
Version: d5ecebc4900df7f6e8dff0717574668885110553
Version: d5ecebc4900df7f6e8dff0717574668885110553
Version: d5ecebc4900df7f6e8dff0717574668885110553
Version: d5ecebc4900df7f6e8dff0717574668885110553
Version: d5ecebc4900df7f6e8dff0717574668885110553
Version: d5ecebc4900df7f6e8dff0717574668885110553
Create a notification for this product.
   Linux Linux Version: 5.3
Create a notification for this product.
Show details on NVD website


{
   containers: {
      adp: [
         {
            metrics: [
               {
                  other: {
                     content: {
                        id: "CVE-2024-49996",
                        options: [
                           {
                              Exploitation: "none",
                           },
                           {
                              Automatable: "no",
                           },
                           {
                              "Technical Impact": "partial",
                           },
                        ],
                        role: "CISA Coordinator",
                        timestamp: "2024-10-22T13:30:36.265660Z",
                        version: "2.0.3",
                     },
                     type: "ssvc",
                  },
               },
            ],
            providerMetadata: {
               dateUpdated: "2024-10-22T13:38:41.853Z",
               orgId: "134c704f-9b21-4f2e-91b3-4a467353bcc0",
               shortName: "CISA-ADP",
            },
            title: "CISA ADP Vulnrichment",
         },
      ],
      cna: {
         affected: [
            {
               defaultStatus: "unaffected",
               product: "Linux",
               programFiles: [
                  "fs/smb/client/reparse.c",
               ],
               repo: "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
               vendor: "Linux",
               versions: [
                  {
                     lessThan: "7b222d6cb87077faf56a687a72af1951cf78c8a9",
                     status: "affected",
                     version: "d5ecebc4900df7f6e8dff0717574668885110553",
                     versionType: "git",
                  },
                  {
                     lessThan: "73b078e3314d4854fd8286f3ba65c860ddd3a3dd",
                     status: "affected",
                     version: "d5ecebc4900df7f6e8dff0717574668885110553",
                     versionType: "git",
                  },
                  {
                     lessThan: "01cdddde39b065074fd48f07027757783cbf5b7d",
                     status: "affected",
                     version: "d5ecebc4900df7f6e8dff0717574668885110553",
                     versionType: "git",
                  },
                  {
                     lessThan: "ec79e6170bcae8a6036a4b6960f5e7e59a785601",
                     status: "affected",
                     version: "d5ecebc4900df7f6e8dff0717574668885110553",
                     versionType: "git",
                  },
                  {
                     lessThan: "c6db81c550cea0c73bd72ef55f579991e0e4ba07",
                     status: "affected",
                     version: "d5ecebc4900df7f6e8dff0717574668885110553",
                     versionType: "git",
                  },
                  {
                     lessThan: "803b3a39cb096d8718c0aebc03fd19f11c7dc919",
                     status: "affected",
                     version: "d5ecebc4900df7f6e8dff0717574668885110553",
                     versionType: "git",
                  },
                  {
                     lessThan: "c173d47b69f07cd7ca08efb4e458adbd4725d8e9",
                     status: "affected",
                     version: "d5ecebc4900df7f6e8dff0717574668885110553",
                     versionType: "git",
                  },
                  {
                     lessThan: "e2a8910af01653c1c268984855629d71fb81f404",
                     status: "affected",
                     version: "d5ecebc4900df7f6e8dff0717574668885110553",
                     versionType: "git",
                  },
               ],
            },
            {
               defaultStatus: "affected",
               product: "Linux",
               programFiles: [
                  "fs/smb/client/reparse.c",
               ],
               repo: "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
               vendor: "Linux",
               versions: [
                  {
                     status: "affected",
                     version: "5.3",
                  },
                  {
                     lessThan: "5.3",
                     status: "unaffected",
                     version: "0",
                     versionType: "semver",
                  },
                  {
                     lessThanOrEqual: "5.4.*",
                     status: "unaffected",
                     version: "5.4.287",
                     versionType: "semver",
                  },
                  {
                     lessThanOrEqual: "5.10.*",
                     status: "unaffected",
                     version: "5.10.231",
                     versionType: "semver",
                  },
                  {
                     lessThanOrEqual: "5.15.*",
                     status: "unaffected",
                     version: "5.15.174",
                     versionType: "semver",
                  },
                  {
                     lessThanOrEqual: "6.1.*",
                     status: "unaffected",
                     version: "6.1.120",
                     versionType: "semver",
                  },
                  {
                     lessThanOrEqual: "6.6.*",
                     status: "unaffected",
                     version: "6.6.55",
                     versionType: "semver",
                  },
                  {
                     lessThanOrEqual: "6.10.*",
                     status: "unaffected",
                     version: "6.10.14",
                     versionType: "semver",
                  },
                  {
                     lessThanOrEqual: "6.11.*",
                     status: "unaffected",
                     version: "6.11.3",
                     versionType: "semver",
                  },
                  {
                     lessThanOrEqual: "*",
                     status: "unaffected",
                     version: "6.12",
                     versionType: "original_commit_for_fix",
                  },
               ],
            },
         ],
         descriptions: [
            {
               lang: "en",
               value: "In the Linux kernel, the following vulnerability has been resolved:\n\ncifs: Fix buffer overflow when parsing NFS reparse points\n\nReparseDataLength is sum of the InodeType size and DataBuffer size.\nSo to get DataBuffer size it is needed to subtract InodeType's size from\nReparseDataLength.\n\nFunction cifs_strndup_from_utf16() is currentlly accessing buf->DataBuffer\nat position after the end of the buffer because it does not subtract\nInodeType size from the length. Fix this problem and correctly subtract\nvariable len.\n\nMember InodeType is present only when reparse buffer is large enough. Check\nfor ReparseDataLength before accessing InodeType to prevent another invalid\nmemory access.\n\nMajor and minor rdev values are present also only when reparse buffer is\nlarge enough. Check for reparse buffer size before calling reparse_mkdev().",
            },
         ],
         providerMetadata: {
            dateUpdated: "2024-12-19T09:30:56.064Z",
            orgId: "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            shortName: "Linux",
         },
         references: [
            {
               url: "https://git.kernel.org/stable/c/7b222d6cb87077faf56a687a72af1951cf78c8a9",
            },
            {
               url: "https://git.kernel.org/stable/c/73b078e3314d4854fd8286f3ba65c860ddd3a3dd",
            },
            {
               url: "https://git.kernel.org/stable/c/01cdddde39b065074fd48f07027757783cbf5b7d",
            },
            {
               url: "https://git.kernel.org/stable/c/ec79e6170bcae8a6036a4b6960f5e7e59a785601",
            },
            {
               url: "https://git.kernel.org/stable/c/c6db81c550cea0c73bd72ef55f579991e0e4ba07",
            },
            {
               url: "https://git.kernel.org/stable/c/803b3a39cb096d8718c0aebc03fd19f11c7dc919",
            },
            {
               url: "https://git.kernel.org/stable/c/c173d47b69f07cd7ca08efb4e458adbd4725d8e9",
            },
            {
               url: "https://git.kernel.org/stable/c/e2a8910af01653c1c268984855629d71fb81f404",
            },
         ],
         title: "cifs: Fix buffer overflow when parsing NFS reparse points",
         x_generator: {
            engine: "bippy-5f407fcff5a0",
         },
      },
   },
   cveMetadata: {
      assignerOrgId: "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      assignerShortName: "Linux",
      cveId: "CVE-2024-49996",
      datePublished: "2024-10-21T18:02:37.046Z",
      dateReserved: "2024-10-21T12:17:06.056Z",
      dateUpdated: "2024-12-19T09:30:56.064Z",
      state: "PUBLISHED",
   },
   dataType: "CVE_RECORD",
   dataVersion: "5.1",
   "vulnerability-lookup:meta": {
      nvd: "{\"cve\":{\"id\":\"CVE-2024-49996\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2024-10-21T18:15:19.760\",\"lastModified\":\"2024-12-14T21:15:32.953\",\"vulnStatus\":\"Modified\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\ncifs: Fix buffer overflow when parsing NFS reparse points\\n\\nReparseDataLength is sum of the InodeType size and DataBuffer size.\\nSo to get DataBuffer size it is needed to subtract InodeType's size from\\nReparseDataLength.\\n\\nFunction cifs_strndup_from_utf16() is currentlly accessing buf->DataBuffer\\nat position after the end of the buffer because it does not subtract\\nInodeType size from the length. Fix this problem and correctly subtract\\nvariable len.\\n\\nMember InodeType is present only when reparse buffer is large enough. Check\\nfor ReparseDataLength before accessing InodeType to prevent another invalid\\nmemory access.\\n\\nMajor and minor rdev values are present also only when reparse buffer is\\nlarge enough. Check for reparse buffer size before calling reparse_mkdev().\"},{\"lang\":\"es\",\"value\":\"En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: cifs: Se corrige el desbordamiento de búfer al analizar los puntos de análisis de NFS ReparseDataLength es la suma del tamaño de InodeType y el tamaño de DataBuffer. Por lo tanto, para obtener el tamaño de DataBuffer, es necesario restar el tamaño de InodeType de ReparseDataLength. La función cifs_strndup_from_utf16() está accediendo actualmente a buf->DataBuffer en la posición después del final del búfer porque no resta el tamaño de InodeType de la longitud. Solucione este problema y reste correctamente la variable len. El miembro InodeType solo está presente cuando el búfer de análisis es lo suficientemente grande. Verifique ReparseDataLength antes de acceder a InodeType para evitar otro acceso no válido a la memoria. Los valores rdev principales y secundarios también están presentes solo cuando el búfer de análisis es lo suficientemente grande. Verifique el tamaño del búfer de análisis antes de llamar a reparse_mkdev().\"}],\"metrics\":{\"cvssMetricV31\":[{\"source\":\"nvd@nist.gov\",\"type\":\"Primary\",\"cvssData\":{\"version\":\"3.1\",\"vectorString\":\"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H\",\"baseScore\":7.8,\"baseSeverity\":\"HIGH\",\"attackVector\":\"LOCAL\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"LOW\",\"userInteraction\":\"NONE\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"HIGH\",\"integrityImpact\":\"HIGH\",\"availabilityImpact\":\"HIGH\"},\"exploitabilityScore\":1.8,\"impactScore\":5.9}]},\"weaknesses\":[{\"source\":\"nvd@nist.gov\",\"type\":\"Primary\",\"description\":[{\"lang\":\"en\",\"value\":\"CWE-120\"}]}],\"configurations\":[{\"nodes\":[{\"operator\":\"OR\",\"negate\":false,\"cpeMatch\":[{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"5.3\",\"versionEndExcluding\":\"6.6.55\",\"matchCriteriaId\":\"93FE9DDB-76BE-4920-9078-D8278AF553B3\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.7\",\"versionEndExcluding\":\"6.10.14\",\"matchCriteriaId\":\"4C16BCE0-FFA0-4599-BE0A-1FD65101C021\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.11\",\"versionEndExcluding\":\"6.11.3\",\"matchCriteriaId\":\"54D9C704-D679-41A7-9C40-10A6B1E7FFE9\"}]}]}],\"references\":[{\"url\":\"https://git.kernel.org/stable/c/01cdddde39b065074fd48f07027757783cbf5b7d\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/73b078e3314d4854fd8286f3ba65c860ddd3a3dd\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/7b222d6cb87077faf56a687a72af1951cf78c8a9\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/803b3a39cb096d8718c0aebc03fd19f11c7dc919\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/c173d47b69f07cd7ca08efb4e458adbd4725d8e9\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/c6db81c550cea0c73bd72ef55f579991e0e4ba07\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/e2a8910af01653c1c268984855629d71fb81f404\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/ec79e6170bcae8a6036a4b6960f5e7e59a785601\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"}]}}",
      vulnrichment: {
         containers: "{\"adp\": [{\"title\": \"CISA ADP Vulnrichment\", \"metrics\": [{\"other\": {\"type\": \"ssvc\", \"content\": {\"id\": \"CVE-2024-49996\", \"role\": \"CISA Coordinator\", \"options\": [{\"Exploitation\": \"none\"}, {\"Automatable\": \"no\"}, {\"Technical Impact\": \"partial\"}], \"version\": \"2.0.3\", \"timestamp\": \"2024-10-22T13:30:36.265660Z\"}}}], \"providerMetadata\": {\"orgId\": \"134c704f-9b21-4f2e-91b3-4a467353bcc0\", \"shortName\": \"CISA-ADP\", \"dateUpdated\": \"2024-10-22T13:30:39.403Z\"}}], \"cna\": {\"title\": \"cifs: Fix buffer overflow when parsing NFS reparse points\", \"affected\": [{\"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\", \"vendor\": \"Linux\", \"product\": \"Linux\", \"versions\": [{\"status\": \"affected\", \"version\": \"d5ecebc4900df7f6e8dff0717574668885110553\", \"lessThan\": \"7b222d6cb87077faf56a687a72af1951cf78c8a9\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"d5ecebc4900df7f6e8dff0717574668885110553\", \"lessThan\": \"73b078e3314d4854fd8286f3ba65c860ddd3a3dd\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"d5ecebc4900df7f6e8dff0717574668885110553\", \"lessThan\": \"01cdddde39b065074fd48f07027757783cbf5b7d\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"d5ecebc4900df7f6e8dff0717574668885110553\", \"lessThan\": \"ec79e6170bcae8a6036a4b6960f5e7e59a785601\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"d5ecebc4900df7f6e8dff0717574668885110553\", \"lessThan\": \"c6db81c550cea0c73bd72ef55f579991e0e4ba07\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"d5ecebc4900df7f6e8dff0717574668885110553\", \"lessThan\": \"803b3a39cb096d8718c0aebc03fd19f11c7dc919\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"d5ecebc4900df7f6e8dff0717574668885110553\", \"lessThan\": \"c173d47b69f07cd7ca08efb4e458adbd4725d8e9\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"d5ecebc4900df7f6e8dff0717574668885110553\", \"lessThan\": \"e2a8910af01653c1c268984855629d71fb81f404\", \"versionType\": \"git\"}], \"programFiles\": [\"fs/smb/client/reparse.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.3\"}, {\"status\": \"unaffected\", \"version\": \"0\", \"lessThan\": \"5.3\", \"versionType\": \"semver\"}, {\"status\": \"unaffected\", \"version\": \"5.4.287\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"5.4.*\"}, {\"status\": \"unaffected\", \"version\": \"5.10.231\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"5.10.*\"}, {\"status\": \"unaffected\", \"version\": \"5.15.174\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"5.15.*\"}, {\"status\": \"unaffected\", \"version\": \"6.1.120\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"6.1.*\"}, {\"status\": \"unaffected\", \"version\": \"6.6.55\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"6.6.*\"}, {\"status\": \"unaffected\", \"version\": \"6.10.14\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"6.10.*\"}, {\"status\": \"unaffected\", \"version\": \"6.11.3\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"6.11.*\"}, {\"status\": \"unaffected\", \"version\": \"6.12\", \"versionType\": \"original_commit_for_fix\", \"lessThanOrEqual\": \"*\"}], \"programFiles\": [\"fs/smb/client/reparse.c\"], \"defaultStatus\": \"affected\"}], \"references\": [{\"url\": \"https://git.kernel.org/stable/c/7b222d6cb87077faf56a687a72af1951cf78c8a9\"}, {\"url\": \"https://git.kernel.org/stable/c/73b078e3314d4854fd8286f3ba65c860ddd3a3dd\"}, {\"url\": \"https://git.kernel.org/stable/c/01cdddde39b065074fd48f07027757783cbf5b7d\"}, {\"url\": \"https://git.kernel.org/stable/c/ec79e6170bcae8a6036a4b6960f5e7e59a785601\"}, {\"url\": \"https://git.kernel.org/stable/c/c6db81c550cea0c73bd72ef55f579991e0e4ba07\"}, {\"url\": \"https://git.kernel.org/stable/c/803b3a39cb096d8718c0aebc03fd19f11c7dc919\"}, {\"url\": \"https://git.kernel.org/stable/c/c173d47b69f07cd7ca08efb4e458adbd4725d8e9\"}, {\"url\": \"https://git.kernel.org/stable/c/e2a8910af01653c1c268984855629d71fb81f404\"}], \"x_generator\": {\"engine\": \"bippy-5f407fcff5a0\"}, \"descriptions\": [{\"lang\": \"en\", \"value\": \"In the Linux kernel, the following vulnerability has been resolved:\\n\\ncifs: Fix buffer overflow when parsing NFS reparse points\\n\\nReparseDataLength is sum of the InodeType size and DataBuffer size.\\nSo to get DataBuffer size it is needed to subtract InodeType's size from\\nReparseDataLength.\\n\\nFunction cifs_strndup_from_utf16() is currentlly accessing buf->DataBuffer\\nat position after the end of the buffer because it does not subtract\\nInodeType size from the length. Fix this problem and correctly subtract\\nvariable len.\\n\\nMember InodeType is present only when reparse buffer is large enough. Check\\nfor ReparseDataLength before accessing InodeType to prevent another invalid\\nmemory access.\\n\\nMajor and minor rdev values are present also only when reparse buffer is\\nlarge enough. Check for reparse buffer size before calling reparse_mkdev().\"}], \"providerMetadata\": {\"orgId\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\", \"shortName\": \"Linux\", \"dateUpdated\": \"2024-12-19T09:30:56.064Z\"}}}",
         cveMetadata: "{\"cveId\": \"CVE-2024-49996\", \"state\": \"PUBLISHED\", \"dateUpdated\": \"2024-12-19T09:30:56.064Z\", \"dateReserved\": \"2024-10-21T12:17:06.056Z\", \"assignerOrgId\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\", \"datePublished\": \"2024-10-21T18:02:37.046Z\", \"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.