CVE-2025-68299 (GCVE-0-2025-68299)

Vulnerability from cvelistv5 – Published: 2025-12-16 15:06 – Updated: 2026-08-03 09:32
VLAI
Title
afs: Fix delayed allocation of a cell's anonymous key
Summary
In the Linux kernel, the following vulnerability has been resolved: afs: Fix delayed allocation of a cell's anonymous key The allocation of a cell's anonymous key is done in a background thread along with other cell setup such as doing a DNS upcall. In the reported bug, this is triggered by afs_parse_source() parsing the device name given to mount() and calling afs_lookup_cell() with the name of the cell. The normal key lookup then tries to use the key description on the anonymous authentication key as the reference for request_key() - but it may not yet be set and so an oops can happen. This has been made more likely to happen by the fix for dynamic lookup failure. Fix this by firstly allocating a reference name and attaching it to the afs_cell record when the record is created. It can share the memory allocation with the cell name (unfortunately it can't just overlap the cell name by prepending it with "afs@" as the cell name already has a '.' prepended for other purposes). This reference name is then passed to request_key(). Secondly, the anon key is now allocated on demand at the point a key is requested in afs_request_key() if it is not already allocated. A mutex is used to prevent multiple allocation for a cell. Thirdly, make afs_request_key_rcu() return NULL if the anonymous key isn't yet allocated (if we need it) and then the caller can return -ECHILD to drop out of RCU-mode and afs_request_key() can be called. Note that the anonymous key is kind of necessary to make the key lookup cache work as that doesn't currently cache a negative lookup, but it's probably worth some investigation to see if NULL can be used instead.
Severity
No CVSS data available.
Assigner
Linux CNA under the mitre root
CNA scorecard D 53/100 over 6637 records in the last 180 days details
Impacted products
Vendor Product Version CPE status
Linux Linux Affected: fa4ccdccf1489a6dac4369a8c69f11b455b3355c , < bd18d2cbc9377c6b270c0b7ea44b0e6ed1d99c07 (git)
Affected: 7e33b15d5a6578a99ebf189cea34983270ae92dd , < 5613bde937dfac6725e9c3fc766b9d6b8481e55b (git)
Affected: 330e2c514823008b22e6afd2055715bc46dd8d55 , < d27c71257825dced46104eefe42e4d9964bd032e (git)
guessed Create a notification for this product.
Linux Linux Affected: 6.17.9 , < 6.17.11 (semver)
guessed Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "fs/afs/cell.c",
            "fs/afs/internal.h",
            "fs/afs/security.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "bd18d2cbc9377c6b270c0b7ea44b0e6ed1d99c07",
              "status": "affected",
              "version": "fa4ccdccf1489a6dac4369a8c69f11b455b3355c",
              "versionType": "git"
            },
            {
              "lessThan": "5613bde937dfac6725e9c3fc766b9d6b8481e55b",
              "status": "affected",
              "version": "7e33b15d5a6578a99ebf189cea34983270ae92dd",
              "versionType": "git"
            },
            {
              "lessThan": "d27c71257825dced46104eefe42e4d9964bd032e",
              "status": "affected",
              "version": "330e2c514823008b22e6afd2055715bc46dd8d55",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "fs/afs/cell.c",
            "fs/afs/internal.h",
            "fs/afs/security.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "6.17.11",
              "status": "affected",
              "version": "6.17.9",
              "versionType": "semver"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.17.11",
                  "versionStartIncluding": "6.17.9",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nafs: Fix delayed allocation of a cell\u0027s anonymous key\n\nThe allocation of a cell\u0027s anonymous key is done in a background thread\nalong with other cell setup such as doing a DNS upcall.  In the reported\nbug, this is triggered by afs_parse_source() parsing the device name given\nto mount() and calling afs_lookup_cell() with the name of the cell.\n\nThe normal key lookup then tries to use the key description on the\nanonymous authentication key as the reference for request_key() - but it\nmay not yet be set and so an oops can happen.\n\nThis has been made more likely to happen by the fix for dynamic lookup\nfailure.\n\nFix this by firstly allocating a reference name and attaching it to the\nafs_cell record when the record is created.  It can share the memory\nallocation with the cell name (unfortunately it can\u0027t just overlap the cell\nname by prepending it with \"afs@\" as the cell name already has a \u0027.\u0027\nprepended for other purposes).  This reference name is then passed to\nrequest_key().\n\nSecondly, the anon key is now allocated on demand at the point a key is\nrequested in afs_request_key() if it is not already allocated.  A mutex is\nused to prevent multiple allocation for a cell.\n\nThirdly, make afs_request_key_rcu() return NULL if the anonymous key isn\u0027t\nyet allocated (if we need it) and then the caller can return -ECHILD to\ndrop out of RCU-mode and afs_request_key() can be called.\n\nNote that the anonymous key is kind of necessary to make the key lookup\ncache work as that doesn\u0027t currently cache a negative lookup, but it\u0027s\nprobably worth some investigation to see if NULL can be used instead."
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-03T09:32:28.315Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/bd18d2cbc9377c6b270c0b7ea44b0e6ed1d99c07"
        },
        {
          "url": "https://git.kernel.org/stable/c/5613bde937dfac6725e9c3fc766b9d6b8481e55b"
        },
        {
          "url": "https://git.kernel.org/stable/c/d27c71257825dced46104eefe42e4d9964bd032e"
        }
      ],
      "title": "afs: Fix delayed allocation of a cell\u0027s anonymous key",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2025-68299",
    "datePublished": "2025-12-16T15:06:18.246Z",
    "dateReserved": "2025-12-16T14:48:05.293Z",
    "dateUpdated": "2026-08-03T09:32:28.315Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2025-68299",
      "date": "2026-11-05",
      "epss": "0.00263",
      "percentile": "0.18251"
    },
    "nvd": {
      "cve": {
        "affected": [
          {
            "affectedData": [
              {
                "defaultStatus": "unaffected",
                "product": "Linux",
                "programFiles": [
                  "fs/afs/cell.c",
                  "fs/afs/internal.h",
                  "fs/afs/security.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "lessThan": "bd18d2cbc9377c6b270c0b7ea44b0e6ed1d99c07",
                    "status": "affected",
                    "version": "fa4ccdccf1489a6dac4369a8c69f11b455b3355c",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "5613bde937dfac6725e9c3fc766b9d6b8481e55b",
                    "status": "affected",
                    "version": "7e33b15d5a6578a99ebf189cea34983270ae92dd",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "d27c71257825dced46104eefe42e4d9964bd032e",
                    "status": "affected",
                    "version": "330e2c514823008b22e6afd2055715bc46dd8d55",
                    "versionType": "git"
                  }
                ]
              },
              {
                "defaultStatus": "unaffected",
                "product": "Linux",
                "programFiles": [
                  "fs/afs/cell.c",
                  "fs/afs/internal.h",
                  "fs/afs/security.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "lessThan": "6.17.11",
                    "status": "affected",
                    "version": "6.17.9",
                    "versionType": "semver"
                  }
                ]
              }
            ],
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
          }
        ],
        "cveTags": [],
        "descriptions": [
          {
            "lang": "en",
            "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nafs: Fix delayed allocation of a cell\u0027s anonymous key\n\nThe allocation of a cell\u0027s anonymous key is done in a background thread\nalong with other cell setup such as doing a DNS upcall.  In the reported\nbug, this is triggered by afs_parse_source() parsing the device name given\nto mount() and calling afs_lookup_cell() with the name of the cell.\n\nThe normal key lookup then tries to use the key description on the\nanonymous authentication key as the reference for request_key() - but it\nmay not yet be set and so an oops can happen.\n\nThis has been made more likely to happen by the fix for dynamic lookup\nfailure.\n\nFix this by firstly allocating a reference name and attaching it to the\nafs_cell record when the record is created.  It can share the memory\nallocation with the cell name (unfortunately it can\u0027t just overlap the cell\nname by prepending it with \"afs@\" as the cell name already has a \u0027.\u0027\nprepended for other purposes).  This reference name is then passed to\nrequest_key().\n\nSecondly, the anon key is now allocated on demand at the point a key is\nrequested in afs_request_key() if it is not already allocated.  A mutex is\nused to prevent multiple allocation for a cell.\n\nThirdly, make afs_request_key_rcu() return NULL if the anonymous key isn\u0027t\nyet allocated (if we need it) and then the caller can return -ECHILD to\ndrop out of RCU-mode and afs_request_key() can be called.\n\nNote that the anonymous key is kind of necessary to make the key lookup\ncache work as that doesn\u0027t currently cache a negative lookup, but it\u0027s\nprobably worth some investigation to see if NULL can be used instead."
          },
          {
            "lang": "es",
            "value": "En el kernel de Linux, la siguiente vulnerabilidad ha sido resuelta:\n\nafs: Correcci\u00f3n de la asignaci\u00f3n retrasada de la clave an\u00f3nima de una celda\n\nLa asignaci\u00f3n de la clave an\u00f3nima de una celda se realiza en un hilo en segundo plano junto con otras configuraciones de celda, como realizar una llamada ascendente (upcall) de DNS. En el error reportado, esto es provocado por afs_parse_source() analizando el nombre del dispositivo dado a mount() y llamando a afs_lookup_cell() con el nombre de la celda.\n\nLa b\u00fasqueda normal de clave luego intenta usar la descripci\u00f3n de la clave en la clave de autenticaci\u00f3n an\u00f3nima como referencia para request_key(), pero es posible que a\u00fan no est\u00e9 establecida y, por lo tanto, puede ocurrir un oops.\n\nEsto se ha vuelto m\u00e1s propenso a ocurrir por la correcci\u00f3n para el fallo de b\u00fasqueda din\u00e1mica.\n\nCorrija esto, en primer lugar, asignando un nombre de referencia y adjunt\u00e1ndolo al registro afs_cell cuando se crea el registro. Puede compartir la asignaci\u00f3n de memoria con el nombre de la celda (desafortunadamente, no puede simplemente superponer el nombre de la celda anteponi\u00e9ndole \u0027afs@\u0027 ya que el nombre de la celda ya tiene un \u0027.\u0027 antepuesto para otros prop\u00f3sitos). Este nombre de referencia luego se pasa a request_key().\n\nEn segundo lugar, la clave an\u00f3nima ahora se asigna bajo demanda en el momento en que se solicita una clave en afs_request_key() si a\u00fan no est\u00e1 asignada. Se utiliza un mutex para evitar m\u00faltiples asignaciones para una celda.\n\nEn tercer lugar, haga que afs_request_key_rcu() devuelva NULL si la clave an\u00f3nima a\u00fan no est\u00e1 asignada (si la necesitamos) y luego el llamador puede devolver -ECHILD para salir del modo RCU y se puede llamar a afs_request_key().\n\nTenga en cuenta que la clave an\u00f3nima es algo necesaria para que la cach\u00e9 de b\u00fasqueda de claves funcione, ya que actualmente no almacena en cach\u00e9 una b\u00fasqueda negativa, pero probablemente valga la pena investigar para ver si se puede usar NULL en su lugar."
          }
        ],
        "id": "CVE-2025-68299",
        "lastModified": "2026-10-14T16:10:00.250",
        "metrics": {},
        "published": "2025-12-16T16:16:09.400",
        "references": [
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/5613bde937dfac6725e9c3fc766b9d6b8481e55b"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/bd18d2cbc9377c6b270c0b7ea44b0e6ed1d99c07"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/d27c71257825dced46104eefe42e4d9964bd032e"
          }
        ],
        "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "vulnStatus": "Deferred"
      }
    },
    "redhat_vex": {
      "aggregate_severity": "Moderate",
      "current_release_date": "2026-11-05T15:34:09+00:00",
      "cve": "CVE-2025-68299",
      "id": "CVE-2025-68299",
      "initial_release_date": "2025-12-16T00:00:00+00:00",
      "product_status:known_affected": "110",
      "product_status:known_not_affected": "90",
      "source": "Red Hat CSAF VEX",
      "status": "final",
      "title": "kernel: Linux kernel: Denial of Service in AFS due to delayed key allocation",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2025/cve-2025-68299.json",
      "version": "3"
    }
  }
}



Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Drag nodes to arrange them. Double-click a related vulnerability to open it, or a source to visit its link. The Physics button on the left tunes the layout and the simulation; the legend at the bottom left hides or shows nodes by kind and by sighting type.

Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.

Sightings

Author Source Type Date Other

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or observed by the user.
  • Confirmed: The vulnerability has been validated from an analyst's perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
  • Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
  • Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
  • Not confirmed: The user expressed doubt about the validity of the vulnerability.
  • Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.
Vulnerability timeline

Sightings and recorded dates, grouped by day · UTC

JSON
Events included in the timeline

Loading timeline…


    Loading…

    Loading…

    Loading…

    Related by attack behaviour

    Vulnerabilities whose description is nearest to this one in the vector space of the CIRCL/vulnerability-attack-technique-biencoder model. This is a similarity search over the bi-encoder space (plain cosine), not a classification, and it has no measured accuracy.