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
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"
}
]
}