cve-2024-42304
Vulnerability from cvelistv5
Published
2024-08-17 09:09
Modified
2024-12-19 09:16
Severity ?
Summary
ext4: make sure the first directory block is not a hole
Impacted products
LinuxLinux
LinuxLinux
Show details on NVD website


{
  "containers": {
    "adp": [
      {
        "metrics": [
          {
            "other": {
              "content": {
                "id": "CVE-2024-42304",
                "options": [
                  {
                    "Exploitation": "none"
                  },
                  {
                    "Automatable": "no"
                  },
                  {
                    "Technical Impact": "partial"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2024-09-10T16:10:22.365835Z",
                "version": "2.0.3"
              },
              "type": "ssvc"
            }
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2024-09-12T17:33:28.095Z",
          "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
          "shortName": "CISA-ADP"
        },
        "title": "CISA ADP Vulnrichment"
      }
    ],
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "fs/ext4/namei.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "d81d7e347d1f1f48a5634607d39eb90c161c8afe",
              "status": "affected",
              "version": "3a17ca864baffc0c6f6e8aad525aa4365775a193",
              "versionType": "git"
            },
            {
              "lessThan": "e02f9941e8c011aa3eafa799def6a134ce06bcfa",
              "status": "affected",
              "version": "4e19d6b65fb4fc42e352ce9883649e049da14743",
              "versionType": "git"
            },
            {
              "lessThan": "de2a011a13a46468a6e8259db58b1b62071fe136",
              "status": "affected",
              "version": "4e19d6b65fb4fc42e352ce9883649e049da14743",
              "versionType": "git"
            },
            {
              "lessThan": "9771e3d8365ae1dd5e8846a204cb9af14e3e656a",
              "status": "affected",
              "version": "4e19d6b65fb4fc42e352ce9883649e049da14743",
              "versionType": "git"
            },
            {
              "lessThan": "b609753cbbd38f8c0affd4956c0af178348523ac",
              "status": "affected",
              "version": "4e19d6b65fb4fc42e352ce9883649e049da14743",
              "versionType": "git"
            },
            {
              "lessThan": "c3893d9de8ee153baac56d127d844103488133b5",
              "status": "affected",
              "version": "4e19d6b65fb4fc42e352ce9883649e049da14743",
              "versionType": "git"
            },
            {
              "lessThan": "299bc6ffa57e04e74c6cce866d6c0741fb4897a1",
              "status": "affected",
              "version": "4e19d6b65fb4fc42e352ce9883649e049da14743",
              "versionType": "git"
            },
            {
              "lessThan": "f9ca51596bbfd0f9c386dd1c613c394c78d9e5e6",
              "status": "affected",
              "version": "4e19d6b65fb4fc42e352ce9883649e049da14743",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "fs/ext4/namei.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": "4.19.*",
              "status": "unaffected",
              "version": "4.19.320",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.4.*",
              "status": "unaffected",
              "version": "5.4.282",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.10.*",
              "status": "unaffected",
              "version": "5.10.224",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.15.*",
              "status": "unaffected",
              "version": "5.15.165",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.1.*",
              "status": "unaffected",
              "version": "6.1.103",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.6.*",
              "status": "unaffected",
              "version": "6.6.44",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.10.*",
              "status": "unaffected",
              "version": "6.10.3",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "6.11",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\next4: make sure the first directory block is not a hole\n\nThe syzbot constructs a directory that has no dirblock but is non-inline,\ni.e. the first directory block is a hole. And no errors are reported when\ncreating files in this directory in the following flow.\n\n    ext4_mknod\n     ...\n      ext4_add_entry\n        // Read block 0\n        ext4_read_dirblock(dir, block, DIRENT)\n          bh = ext4_bread(NULL, inode, block, 0)\n          if (!bh \u0026\u0026 (type == INDEX || type == DIRENT_HTREE))\n          // The first directory block is a hole\n          // But type == DIRENT, so no error is reported.\n\nAfter that, we get a directory block without \u0027.\u0027 and \u0027..\u0027 but with a valid\ndentry. This may cause some code that relies on dot or dotdot (such as\nmake_indexed_dir()) to crash.\n\nTherefore when ext4_read_dirblock() finds that the first directory block\nis a hole report that the filesystem is corrupted and return an error to\navoid loading corrupted data from disk causing something bad."
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2024-12-19T09:16:01.855Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/d81d7e347d1f1f48a5634607d39eb90c161c8afe"
        },
        {
          "url": "https://git.kernel.org/stable/c/e02f9941e8c011aa3eafa799def6a134ce06bcfa"
        },
        {
          "url": "https://git.kernel.org/stable/c/de2a011a13a46468a6e8259db58b1b62071fe136"
        },
        {
          "url": "https://git.kernel.org/stable/c/9771e3d8365ae1dd5e8846a204cb9af14e3e656a"
        },
        {
          "url": "https://git.kernel.org/stable/c/b609753cbbd38f8c0affd4956c0af178348523ac"
        },
        {
          "url": "https://git.kernel.org/stable/c/c3893d9de8ee153baac56d127d844103488133b5"
        },
        {
          "url": "https://git.kernel.org/stable/c/299bc6ffa57e04e74c6cce866d6c0741fb4897a1"
        },
        {
          "url": "https://git.kernel.org/stable/c/f9ca51596bbfd0f9c386dd1c613c394c78d9e5e6"
        }
      ],
      "title": "ext4: make sure the first directory block is not a hole",
      "x_generator": {
        "engine": "bippy-5f407fcff5a0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2024-42304",
    "datePublished": "2024-08-17T09:09:10.545Z",
    "dateReserved": "2024-07-30T07:40:12.272Z",
    "dateUpdated": "2024-12-19T09:16:01.855Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.1",
  "meta": {
    "nvd": "{\"cve\":{\"id\":\"CVE-2024-42304\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2024-08-17T09:15:10.617\",\"lastModified\":\"2024-08-19T12:59:59.177\",\"vulnStatus\":\"Awaiting Analysis\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\next4: make sure the first directory block is not a hole\\n\\nThe syzbot constructs a directory that has no dirblock but is non-inline,\\ni.e. the first directory block is a hole. And no errors are reported when\\ncreating files in this directory in the following flow.\\n\\n    ext4_mknod\\n     ...\\n      ext4_add_entry\\n        // Read block 0\\n        ext4_read_dirblock(dir, block, DIRENT)\\n          bh = ext4_bread(NULL, inode, block, 0)\\n          if (!bh \u0026\u0026 (type == INDEX || type == DIRENT_HTREE))\\n          // The first directory block is a hole\\n          // But type == DIRENT, so no error is reported.\\n\\nAfter that, we get a directory block without \u0027.\u0027 and \u0027..\u0027 but with a valid\\ndentry. This may cause some code that relies on dot or dotdot (such as\\nmake_indexed_dir()) to crash.\\n\\nTherefore when ext4_read_dirblock() finds that the first directory block\\nis a hole report that the filesystem is corrupted and return an error to\\navoid loading corrupted data from disk causing something bad.\"},{\"lang\":\"es\",\"value\":\"En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: ext4: aseg\u00farese de que el primer bloque de directorio no sea un agujero. El syzbot construye un directorio que no tiene bloque de directorios pero que no est\u00e1 en l\u00ednea, es decir, el primer bloque de directorio es un agujero. Y no se informan errores al crear archivos en este directorio en el siguiente flujo. ext4_mknod ... ext4_add_entry // Leer bloque 0 ext4_read_dirblock(dir, block, DIRENT) bh = ext4_bread(NULL, inode, block, 0) if (!bh \u0026amp;\u0026amp; (type == INDEX || type == DIRENT_HTREE)) // El primer bloque de directorio es un agujero // Pero escriba == DIRENT, por lo que no se informa ning\u00fan error. Despu\u00e9s de eso, obtenemos un bloque de directorio sin \u0027.\u0027 y \u0027..\u0027 pero con un dentry v\u00e1lido. Esto puede provocar que alg\u00fan c\u00f3digo que depende de punto o punto punto (como make_indexed_dir()) falle. Por lo tanto, cuando ext4_read_dirblock() encuentra que el primer bloque de directorio es un agujero, informa que el sistema de archivos est\u00e1 da\u00f1ado y devuelve un error para evitar cargar datos corruptos desde el disco y causar algo malo.\"}],\"metrics\":{},\"references\":[{\"url\":\"https://git.kernel.org/stable/c/299bc6ffa57e04e74c6cce866d6c0741fb4897a1\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/9771e3d8365ae1dd5e8846a204cb9af14e3e656a\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/b609753cbbd38f8c0affd4956c0af178348523ac\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/c3893d9de8ee153baac56d127d844103488133b5\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/d81d7e347d1f1f48a5634607d39eb90c161c8afe\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/de2a011a13a46468a6e8259db58b1b62071fe136\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/e02f9941e8c011aa3eafa799def6a134ce06bcfa\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/f9ca51596bbfd0f9c386dd1c613c394c78d9e5e6\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"}]}}"
  }
}


Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading...

Loading...

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