← Back to CVE Explorer

CVE-2025-68219

Full vulnerability record from the local CVENow database.

Description

In the Linux kernel, the following vulnerability has been resolved: cifs: fix memory leak in smb3_fs_context_parse_param error path Add proper cleanup of ctx->source and fc->source to the cifs_parse_mount_err error handler. This ensures that memory allocated for the source strings is correctly freed on all error paths, matching the cleanup already performed in the success path by smb3_cleanup_fs_context_contents(). Pointers are also set to NULL after freeing to prevent potential double-free issues. This change fixes a memory leak originally detected by syzbot. The leak occurred when processing Opt_source mount options if an error happened after ctx->source and fc->source were successfully allocated but before the function completed. The specific leak sequence was: 1. ctx->source = smb3_fs_context_fullpath(ctx, '/') allocates memory 2. fc->source = kstrdup(ctx->source, GFP_KERNEL) allocates more memory 3. A subsequent error jumps to cifs_parse_mount_err 4. The old error handler freed passwords but not the source strings, causing the memory to leak. This issue was not addressed by commit e8c73eb7db0a ("cifs: client: fix memory leak in smb3_fs_context_parse_param"), which only fixed leaks from repeated fsconfig() calls but not this error path. Patch updated with minor change suggested by kernel test robot

Severity
Not scored
CVSS score
Not available
Vulnerability status
Deferred
Source identifier
416baaa9-dc9f-4396-8d5f-8c081fb06d67
Published
2025-12-16 14:15:55.013000
Last modified
2026-10-30 13:18:19.167000
View original CVE JSON
{
  "id": "CVE-2025-68219",
  "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
  "published": "2025-12-16T14:15:55.013",
  "lastModified": "2026-10-30T13:18:19.167",
  "vulnStatus": "Deferred",
  "cveTags": [],
  "descriptions": [
    {
      "lang": "en",
      "value": "In the Linux kernel, the following vulnerability has been resolved:\n\ncifs: fix memory leak in smb3_fs_context_parse_param error path\n\nAdd proper cleanup of ctx->source and fc->source to the\ncifs_parse_mount_err error handler. This ensures that memory allocated\nfor the source strings is correctly freed on all error paths, matching\nthe cleanup already performed in the success path by\nsmb3_cleanup_fs_context_contents().\nPointers are also set to NULL after freeing to prevent potential\ndouble-free issues.\n\nThis change fixes a memory leak originally detected by syzbot. The\nleak occurred when processing Opt_source mount options if an error\nhappened after ctx->source and fc->source were successfully\nallocated but before the function completed.\n\nThe specific leak sequence was:\n1. ctx->source = smb3_fs_context_fullpath(ctx, '/') allocates memory\n2. fc->source = kstrdup(ctx->source, GFP_KERNEL) allocates more memory\n3. A subsequent error jumps to cifs_parse_mount_err\n4. The old error handler freed passwords but not the source strings,\ncausing the memory to leak.\n\nThis issue was not addressed by commit e8c73eb7db0a (\"cifs: client:\nfix memory leak in smb3_fs_context_parse_param\"), which only fixed\nleaks from repeated fsconfig() calls but not this error path.\n\nPatch updated with minor change suggested by kernel test robot"
    },
    {
      "lang": "es",
      "value": "En el kernel de Linux, la siguiente vulnerabilidad ha sido resuelta:\n\ncifs: corrige una fuga de memoria en la ruta de error de smb3_fs_context_parse_param\n\nAñade una limpieza adecuada de ctx -> source y fc -> source al gestor de errores cifs_parse_mount_err. Esto asegura que la memoria asignada para las cadenas de origen se libere correctamente en todas las rutas de error, coincidiendo con la limpieza ya realizada en la ruta de éxito por smb3_cleanup_fs_context_contents(). Los punteros también se establecen en NULL después de liberar para evitar posibles problemas de doble liberación.\n\nEste cambio corrige una fuga de memoria detectada originalmente por syzbot. La fuga ocurrió al procesar opciones de montaje Opt_source si ocurría un error después de que ctx -> source y fc -> source fueran asignados con éxito pero antes de que la función se completara.\n\nLa secuencia específica de la fuga fue:\n1. ctx -> source = smb3_fs_context_fullpath(ctx, '/') asigna memoria\n2. fc -> source = kstrdup(ctx -> source, GFP_KERNEL) asigna más memoria\n3. Un error subsiguiente salta a cifs_parse_mount_err\n4. El antiguo gestor de errores liberaba contraseñas pero no las cadenas de origen, causando la fuga de memoria.\n\nEste problema no fue abordado por el commit e8c73eb7db0a ('cifs: cliente: corrige fuga de memoria en smb3_fs_context_parse_param'), que solo corregía fugas de llamadas repetidas a fsconfig() pero no esta ruta de error.\n\nParche actualizado con un cambio menor sugerido por el robot de prueba del kernel"
    }
  ],
  "affected": [
    {
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "affectedData": [
        {
          "vendor": "Linux",
          "product": "Linux",
          "defaultStatus": "unaffected",
          "programFiles": [
            "fs/smb/client/fs_context.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "versions": [
            {
              "version": "24e0a1eff9e2b9835a6e7c17039dfb6ecfd81f1f",
              "lessThan": "a8071fd69df335362be5ecf5df5a167fd1eb5853",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "24e0a1eff9e2b9835a6e7c17039dfb6ecfd81f1f",
              "lessThan": "7627864dc3121f39e220f5253a227edf472de59e",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "24e0a1eff9e2b9835a6e7c17039dfb6ecfd81f1f",
              "lessThan": "48d69290270891f988e72edddd9688c20515421d",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "24e0a1eff9e2b9835a6e7c17039dfb6ecfd81f1f",
              "lessThan": "37010021d7e0341bb241ca00bcbae31f2c50b23f",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "24e0a1eff9e2b9835a6e7c17039dfb6ecfd81f1f",
              "lessThan": "7e4d9120cfa413dd34f4f434befc5dbe6c38b2e5",
              "versionType": "git",
              "status": "affected"
            }
          ]
        },
        {
          "vendor": "Linux",
          "product": "Linux",
          "defaultStatus": "affected",
          "programFiles": [
            "fs/smb/client/fs_context.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "versions": [
            {
              "version": "5.11",
              "status": "affected"
            },
            {
              "version": "0",
              "lessThan": "5.11",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.1.191",
              "lessThanOrEqual": "6.1.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.6.118",
              "lessThanOrEqual": "6.6.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.12.60",
              "lessThanOrEqual": "6.12.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.17.10",
              "lessThanOrEqual": "6.17.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.18",
              "lessThanOrEqual": "*",
              "versionType": "original_commit_for_fix",
              "status": "unaffected"
            }
          ]
        }
      ]
    }
  ],
  "metrics": {},
  "references": [
    {
      "url": "https://git.kernel.org/stable/c/37010021d7e0341bb241ca00bcbae31f2c50b23f",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/48d69290270891f988e72edddd9688c20515421d",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/7627864dc3121f39e220f5253a227edf472de59e",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/7e4d9120cfa413dd34f4f434befc5dbe6c38b2e5",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/a8071fd69df335362be5ecf5df5a167fd1eb5853",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    }
  ]
}