cve-2024-36881
Vulnerability from cvelistv5
Published
2024-05-30 15:28
Modified
2024-08-02 03:43
Severity
Summary
mm/userfaultfd: reset ptes when close() for wr-protected ones
Impacted products
VendorProduct
LinuxLinux
LinuxLinux
Show details on NVD website


{
  "containers": {
    "adp": [
      {
        "metrics": [
          {
            "other": {
              "content": {
                "id": "CVE-2024-36881",
                "options": [
                  {
                    "Exploitation": "none"
                  },
                  {
                    "Automatable": "no"
                  },
                  {
                    "Technical Impact": "partial"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2024-05-31T18:32:07.483199Z",
                "version": "2.0.3"
              },
              "type": "ssvc"
            }
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2024-06-04T17:47:48.954Z",
          "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
          "shortName": "CISA-ADP"
        },
        "title": "CISA ADP Vulnrichment"
      },
      {
        "providerMetadata": {
          "dateUpdated": "2024-08-02T03:43:49.857Z",
          "orgId": "af854a3a-2127-422b-91ae-364da2661108",
          "shortName": "CVE"
        },
        "references": [
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/377f3a9a3d032a52325a5b110379a25dd1ab1931"
          },
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/8d8b68a5b0c9fb23d37df06bb273ead38fd5a29d"
          },
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/c88033efe9a391e72ba6b5df4b01d6e628f4e734"
          }
        ],
        "title": "CVE Program Container"
      }
    ],
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "fs/userfaultfd.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "377f3a9a3d03",
              "status": "affected",
              "version": "f369b07c8614",
              "versionType": "git"
            },
            {
              "lessThan": "8d8b68a5b0c9",
              "status": "affected",
              "version": "f369b07c8614",
              "versionType": "git"
            },
            {
              "lessThan": "c88033efe9a3",
              "status": "affected",
              "version": "f369b07c8614",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "fs/userfaultfd.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "6.0"
            },
            {
              "lessThan": "6.0",
              "status": "unaffected",
              "version": "0",
              "versionType": "custom"
            },
            {
              "lessThanOrEqual": "6.6.*",
              "status": "unaffected",
              "version": "6.6.31",
              "versionType": "custom"
            },
            {
              "lessThanOrEqual": "6.8.*",
              "status": "unaffected",
              "version": "6.8.10",
              "versionType": "custom"
            },
            {
              "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\nmm/userfaultfd: reset ptes when close() for wr-protected ones\n\nUserfaultfd unregister includes a step to remove wr-protect bits from all\nthe relevant pgtable entries, but that only covered an explicit\nUFFDIO_UNREGISTER ioctl, not a close() on the userfaultfd itself.  Cover\nthat too.  This fixes a WARN trace.\n\nThe only user visible side effect is the user can observe leftover\nwr-protect bits even if the user close()ed on an userfaultfd when\nreleasing the last reference of it.  However hopefully that should be\nharmless, and nothing bad should happen even if so.\n\nThis change is now more important after the recent page-table-check\npatch we merged in mm-unstable (446dd9ad37d0 (\"mm/page_table_check:\nsupport userfault wr-protect entries\")), as we\u0027ll do sanity check on\nuffd-wp bits without vma context.  So it\u0027s better if we can 100%\nguarantee no uffd-wp bit leftovers, to make sure each report will be\nvalid."
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2024-05-30T15:28:52.119Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/377f3a9a3d032a52325a5b110379a25dd1ab1931"
        },
        {
          "url": "https://git.kernel.org/stable/c/8d8b68a5b0c9fb23d37df06bb273ead38fd5a29d"
        },
        {
          "url": "https://git.kernel.org/stable/c/c88033efe9a391e72ba6b5df4b01d6e628f4e734"
        }
      ],
      "title": "mm/userfaultfd: reset ptes when close() for wr-protected ones",
      "x_generator": {
        "engine": "bippy-a5840b7849dd"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2024-36881",
    "datePublished": "2024-05-30T15:28:52.119Z",
    "dateReserved": "2024-05-30T15:25:07.064Z",
    "dateUpdated": "2024-08-02T03:43:49.857Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.1",
  "meta": {
    "nvd": "{\"cve\":{\"id\":\"CVE-2024-36881\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2024-05-30T16:15:11.723\",\"lastModified\":\"2024-05-30T18:18:58.870\",\"vulnStatus\":\"Awaiting Analysis\",\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\nmm/userfaultfd: reset ptes when close() for wr-protected ones\\n\\nUserfaultfd unregister includes a step to remove wr-protect bits from all\\nthe relevant pgtable entries, but that only covered an explicit\\nUFFDIO_UNREGISTER ioctl, not a close() on the userfaultfd itself.  Cover\\nthat too.  This fixes a WARN trace.\\n\\nThe only user visible side effect is the user can observe leftover\\nwr-protect bits even if the user close()ed on an userfaultfd when\\nreleasing the last reference of it.  However hopefully that should be\\nharmless, and nothing bad should happen even if so.\\n\\nThis change is now more important after the recent page-table-check\\npatch we merged in mm-unstable (446dd9ad37d0 (\\\"mm/page_table_check:\\nsupport userfault wr-protect entries\\\")), as we\u0027ll do sanity check on\\nuffd-wp bits without vma context.  So it\u0027s better if we can 100%\\nguarantee no uffd-wp bit leftovers, to make sure each report will be\\nvalid.\"},{\"lang\":\"es\",\"value\":\"En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: mm/userfaultfd: restablece ptes al cerrar() para los protegidos por wr. Userfaultfd unregister incluye un paso para eliminar los bits de wr-protect de todas las entradas relevantes de pgtable, pero eso solo cubre una UFFDIO_UNREGISTER ioctl expl\u00edcito, no un close() en el propio userfaultfd. Cubre eso tambi\u00e9n. Esto corrige un rastro WARN. El \u00fanico efecto secundario visible para el usuario es que puede observar los bits wr-protect sobrantes incluso si el usuario cerr\u00f3 () en un userfaultfd al liberar la \u00faltima referencia del mismo. Sin embargo, es de esperar que eso sea inofensivo y, aun as\u00ed, no deber\u00eda pasar nada malo. Este cambio ahora es m\u00e1s importante despu\u00e9s del reciente parche de verificaci\u00f3n de tabla de p\u00e1ginas que fusionamos en mm-unstable (446dd9ad37d0 (\\\"mm/page_table_check: admite entradas de protecci\u00f3n wr de error de usuario\\\")), ya que haremos una verificaci\u00f3n de cordura en uffd-wp. bits sin contexto vma. Por lo tanto, es mejor si podemos garantizar al 100% que no queden restos de bits de uffd-wp, para asegurarnos de que cada informe sea v\u00e1lido.\"}],\"metrics\":{},\"references\":[{\"url\":\"https://git.kernel.org/stable/c/377f3a9a3d032a52325a5b110379a25dd1ab1931\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/8d8b68a5b0c9fb23d37df06bb273ead38fd5a29d\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/c88033efe9a391e72ba6b5df4b01d6e628f4e734\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"}]}}"
  }
}


Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading...

Loading...