CVE-2025-40052 (GCVE-0-2025-40052)

Vulnerability from cvelistv5 – Published: 2025-10-28 11:48 – Updated: 2026-05-11 21:41
VLAI
Title
smb: client: fix crypto buffers in non-linear memory
Summary
In the Linux kernel, the following vulnerability has been resolved: smb: client: fix crypto buffers in non-linear memory The crypto API, through the scatterlist API, expects input buffers to be in linear memory. We handle this with the cifs_sg_set_buf() helper that converts vmalloc'd memory to their corresponding pages. However, when we allocate our aead_request buffer (@creq in smb2ops.c::crypt_message()), we do so with kvzalloc(), which possibly puts aead_request->__ctx in vmalloc area. AEAD algorithm then uses ->__ctx for its private/internal data and operations, and uses sg_set_buf() for such data on a few places. This works fine as long as @creq falls into kmalloc zone (small requests) or vmalloc'd memory is still within linear range. Tasks' stacks are vmalloc'd by default (CONFIG_VMAP_STACK=y), so too many tasks will increment the base stacks' addresses to a point where virt_addr_valid(buf) will fail (BUG() in sg_set_buf()) when that happens. In practice: too many parallel reads and writes on an encrypted mount will trigger this bug. To fix this, always alloc @creq with kmalloc() instead. Also drop the @sensitive_size variable/arguments since kfree_sensitive() doesn't need it. Backtrace: [ 945.272081] ------------[ cut here ]------------ [ 945.272774] kernel BUG at include/linux/scatterlist.h:209! [ 945.273520] Oops: invalid opcode: 0000 [#1] SMP DEBUG_PAGEALLOC NOPTI [ 945.274412] CPU: 7 UID: 0 PID: 56 Comm: kworker/u33:0 Kdump: loaded Not tainted 6.15.0-lku-11779-g8e9d6efccdd7-dirty #1 PREEMPT(voluntary) [ 945.275736] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS rel-1.16.3-2-gc13ff2cd-prebuilt.qemu.org 04/01/2014 [ 945.276877] Workqueue: writeback wb_workfn (flush-cifs-2) [ 945.277457] RIP: 0010:crypto_gcm_init_common+0x1f9/0x220 [ 945.278018] Code: b0 00 00 00 48 83 c4 08 5b 5d 41 5c 41 5d 41 5e 41 5f c3 cc cc cc cc 48 c7 c0 00 00 00 80 48 2b 05 5c 58 e5 00 e9 58 ff ff ff <0f> 0b 0f 0b 0f 0b 0f 0b 0f 0b 0f 0b 48 c7 04 24 01 00 00 00 48 8b [ 945.279992] RSP: 0018:ffffc90000a27360 EFLAGS: 00010246 [ 945.280578] RAX: 0000000000000000 RBX: ffffc90001d85060 RCX: 0000000000000030 [ 945.281376] RDX: 0000000000080000 RSI: 0000000000000000 RDI: ffffc90081d85070 [ 945.282145] RBP: ffffc90001d85010 R08: ffffc90001d85000 R09: 0000000000000000 [ 945.282898] R10: ffffc90001d85090 R11: 0000000000001000 R12: ffffc90001d85070 [ 945.283656] R13: ffff888113522948 R14: ffffc90001d85060 R15: ffffc90001d85010 [ 945.284407] FS: 0000000000000000(0000) GS:ffff8882e66cf000(0000) knlGS:0000000000000000 [ 945.285262] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 945.285884] CR2: 00007fa7ffdd31f4 CR3: 000000010540d000 CR4: 0000000000350ef0 [ 945.286683] Call Trace: [ 945.286952] <TASK> [ 945.287184] ? crypt_message+0x33f/0xad0 [cifs] [ 945.287719] crypto_gcm_encrypt+0x36/0xe0 [ 945.288152] crypt_message+0x54a/0xad0 [cifs] [ 945.288724] smb3_init_transform_rq+0x277/0x300 [cifs] [ 945.289300] smb_send_rqst+0xa3/0x160 [cifs] [ 945.289944] cifs_call_async+0x178/0x340 [cifs] [ 945.290514] ? __pfx_smb2_writev_callback+0x10/0x10 [cifs] [ 945.291177] smb2_async_writev+0x3e3/0x670 [cifs] [ 945.291759] ? find_held_lock+0x32/0x90 [ 945.292212] ? netfs_advance_write+0xf2/0x310 [ 945.292723] netfs_advance_write+0xf2/0x310 [ 945.293210] netfs_write_folio+0x346/0xcc0 [ 945.293689] ? __pfx__raw_spin_unlock_irq+0x10/0x10 [ 945.294250] netfs_writepages+0x117/0x460 [ 945.294724] do_writepages+0xbe/0x170 [ 945.295152] ? find_held_lock+0x32/0x90 [ 945.295600] ? kvm_sched_clock_read+0x11/0x20 [ 945.296103] __writeback_single_inode+0x56/0x4b0 [ 945.296643] writeback_sb_inodes+0x229/0x550 [ 945.297140] __writeback_inodes_wb+0x4c/0xe0 [ 945.297642] wb_writeback+0x2f1/0x3f0 [ 945.298069] wb_workfn+0x300/0x490 [ 945.298472] process_one_work+0x1fe/0x590 [ 945.298949] worker_thread+0x1ce/0x3c0 [ 945.299397] ? __pfx_worker_thread+0x10/0x10 [ 945.299900] kthr ---truncated---
Severity
No CVSS data available.
Assigner
Linux CNA under the mitre root
CNA scorecard D 53/100 over 7063 records in the last 180 days details
Impacted products
Vendor Product Version CPE status
Linux Linux Affected: d08089f649a0cfb2099c8551ac47eef0cc23fdf2 , < ba905a567105dde21cdb8e6d3a87110fa434b393 (git)
Affected: d08089f649a0cfb2099c8551ac47eef0cc23fdf2 , < 7a8a8c15468f0c99685e9964451feffd1a3cc859 (git)
Affected: d08089f649a0cfb2099c8551ac47eef0cc23fdf2 , < 4a61b68abd2788db0364c9a0b6a39f1699fea440 (git)
Affected: d08089f649a0cfb2099c8551ac47eef0cc23fdf2 , < 998a67b954680f26f3734040aeeed08642d49721 (git)
guessed Create a notification for this product.
Linux Linux Affected: 6.3
Unaffected: 0 , < 6.3 (semver)
Unaffected: 6.6.112 , ≤ 6.6.* (semver)
Unaffected: 6.12.53 , ≤ 6.12.* (semver)
Unaffected: 6.17.3 , ≤ 6.17.* (semver)
Unaffected: 6.18 , ≤ * (original_commit_for_fix)
guessed Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "fs/smb/client/smb2ops.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "ba905a567105dde21cdb8e6d3a87110fa434b393",
              "status": "affected",
              "version": "d08089f649a0cfb2099c8551ac47eef0cc23fdf2",
              "versionType": "git"
            },
            {
              "lessThan": "7a8a8c15468f0c99685e9964451feffd1a3cc859",
              "status": "affected",
              "version": "d08089f649a0cfb2099c8551ac47eef0cc23fdf2",
              "versionType": "git"
            },
            {
              "lessThan": "4a61b68abd2788db0364c9a0b6a39f1699fea440",
              "status": "affected",
              "version": "d08089f649a0cfb2099c8551ac47eef0cc23fdf2",
              "versionType": "git"
            },
            {
              "lessThan": "998a67b954680f26f3734040aeeed08642d49721",
              "status": "affected",
              "version": "d08089f649a0cfb2099c8551ac47eef0cc23fdf2",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "fs/smb/client/smb2ops.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "6.3"
            },
            {
              "lessThan": "6.3",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.6.*",
              "status": "unaffected",
              "version": "6.6.112",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.53",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.17.*",
              "status": "unaffected",
              "version": "6.17.3",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "6.18",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.6.112",
                  "versionStartIncluding": "6.3",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.53",
                  "versionStartIncluding": "6.3",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.17.3",
                  "versionStartIncluding": "6.3",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.18",
                  "versionStartIncluding": "6.3",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nsmb: client: fix crypto buffers in non-linear memory\n\nThe crypto API, through the scatterlist API, expects input buffers to be\nin linear memory.  We handle this with the cifs_sg_set_buf() helper\nthat converts vmalloc\u0027d memory to their corresponding pages.\n\nHowever, when we allocate our aead_request buffer (@creq in\nsmb2ops.c::crypt_message()), we do so with kvzalloc(), which possibly\nputs aead_request-\u003e__ctx in vmalloc area.\n\nAEAD algorithm then uses -\u003e__ctx for its private/internal data and\noperations, and uses sg_set_buf() for such data on a few places.\n\nThis works fine as long as @creq falls into kmalloc zone (small\nrequests) or vmalloc\u0027d memory is still within linear range.\n\nTasks\u0027 stacks are vmalloc\u0027d by default (CONFIG_VMAP_STACK=y), so too\nmany tasks will increment the base stacks\u0027 addresses to a point where\nvirt_addr_valid(buf) will fail (BUG() in sg_set_buf()) when that\nhappens.\n\nIn practice: too many parallel reads and writes on an encrypted mount\nwill trigger this bug.\n\nTo fix this, always alloc @creq with kmalloc() instead.\nAlso drop the @sensitive_size variable/arguments since\nkfree_sensitive() doesn\u0027t need it.\n\nBacktrace:\n\n[  945.272081] ------------[ cut here ]------------\n[  945.272774] kernel BUG at include/linux/scatterlist.h:209!\n[  945.273520] Oops: invalid opcode: 0000 [#1] SMP DEBUG_PAGEALLOC NOPTI\n[  945.274412] CPU: 7 UID: 0 PID: 56 Comm: kworker/u33:0 Kdump: loaded Not tainted 6.15.0-lku-11779-g8e9d6efccdd7-dirty #1 PREEMPT(voluntary)\n[  945.275736] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS rel-1.16.3-2-gc13ff2cd-prebuilt.qemu.org 04/01/2014\n[  945.276877] Workqueue: writeback wb_workfn (flush-cifs-2)\n[  945.277457] RIP: 0010:crypto_gcm_init_common+0x1f9/0x220\n[  945.278018] Code: b0 00 00 00 48 83 c4 08 5b 5d 41 5c 41 5d 41 5e 41 5f c3 cc cc cc cc 48 c7 c0 00 00 00 80 48 2b 05 5c 58 e5 00 e9 58 ff ff ff \u003c0f\u003e 0b 0f 0b 0f 0b 0f 0b 0f 0b 0f 0b 48 c7 04 24 01 00 00 00 48 8b\n[  945.279992] RSP: 0018:ffffc90000a27360 EFLAGS: 00010246\n[  945.280578] RAX: 0000000000000000 RBX: ffffc90001d85060 RCX: 0000000000000030\n[  945.281376] RDX: 0000000000080000 RSI: 0000000000000000 RDI: ffffc90081d85070\n[  945.282145] RBP: ffffc90001d85010 R08: ffffc90001d85000 R09: 0000000000000000\n[  945.282898] R10: ffffc90001d85090 R11: 0000000000001000 R12: ffffc90001d85070\n[  945.283656] R13: ffff888113522948 R14: ffffc90001d85060 R15: ffffc90001d85010\n[  945.284407] FS:  0000000000000000(0000) GS:ffff8882e66cf000(0000) knlGS:0000000000000000\n[  945.285262] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033\n[  945.285884] CR2: 00007fa7ffdd31f4 CR3: 000000010540d000 CR4: 0000000000350ef0\n[  945.286683] Call Trace:\n[  945.286952]  \u003cTASK\u003e\n[  945.287184]  ? crypt_message+0x33f/0xad0 [cifs]\n[  945.287719]  crypto_gcm_encrypt+0x36/0xe0\n[  945.288152]  crypt_message+0x54a/0xad0 [cifs]\n[  945.288724]  smb3_init_transform_rq+0x277/0x300 [cifs]\n[  945.289300]  smb_send_rqst+0xa3/0x160 [cifs]\n[  945.289944]  cifs_call_async+0x178/0x340 [cifs]\n[  945.290514]  ? __pfx_smb2_writev_callback+0x10/0x10 [cifs]\n[  945.291177]  smb2_async_writev+0x3e3/0x670 [cifs]\n[  945.291759]  ? find_held_lock+0x32/0x90\n[  945.292212]  ? netfs_advance_write+0xf2/0x310\n[  945.292723]  netfs_advance_write+0xf2/0x310\n[  945.293210]  netfs_write_folio+0x346/0xcc0\n[  945.293689]  ? __pfx__raw_spin_unlock_irq+0x10/0x10\n[  945.294250]  netfs_writepages+0x117/0x460\n[  945.294724]  do_writepages+0xbe/0x170\n[  945.295152]  ? find_held_lock+0x32/0x90\n[  945.295600]  ? kvm_sched_clock_read+0x11/0x20\n[  945.296103]  __writeback_single_inode+0x56/0x4b0\n[  945.296643]  writeback_sb_inodes+0x229/0x550\n[  945.297140]  __writeback_inodes_wb+0x4c/0xe0\n[  945.297642]  wb_writeback+0x2f1/0x3f0\n[  945.298069]  wb_workfn+0x300/0x490\n[  945.298472]  process_one_work+0x1fe/0x590\n[  945.298949]  worker_thread+0x1ce/0x3c0\n[  945.299397]  ? __pfx_worker_thread+0x10/0x10\n[  945.299900]  kthr\n---truncated---"
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-05-11T21:41:32.977Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/ba905a567105dde21cdb8e6d3a87110fa434b393"
        },
        {
          "url": "https://git.kernel.org/stable/c/7a8a8c15468f0c99685e9964451feffd1a3cc859"
        },
        {
          "url": "https://git.kernel.org/stable/c/4a61b68abd2788db0364c9a0b6a39f1699fea440"
        },
        {
          "url": "https://git.kernel.org/stable/c/998a67b954680f26f3734040aeeed08642d49721"
        }
      ],
      "title": "smb: client: fix crypto buffers in non-linear memory",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2025-40052",
    "datePublished": "2025-10-28T11:48:27.854Z",
    "dateReserved": "2025-04-16T07:20:57.157Z",
    "dateUpdated": "2026-05-11T21:41:32.977Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2025-40052",
      "date": "2026-10-26",
      "epss": "0.00216",
      "percentile": "0.11862"
    },
    "microsoft_vex": {
      "current_release_date": "2025-10-29T01:02:22.000Z",
      "cve": "CVE-2025-40052",
      "id": "msrc_CVE-2025-40052",
      "initial_release_date": "2025-10-02T00:00:00.000Z",
      "product_status:fixed": "1",
      "product_status:known_affected": "1",
      "source": "Microsoft CSAF VEX",
      "status": "final",
      "title": "smb: client: fix crypto buffers in non-linear memory",
      "url": "https://msrc.microsoft.com/csaf/vex/2025/msrc_cve-2025-40052.json",
      "version": "1"
    },
    "nvd": {
      "cve": {
        "affected": [
          {
            "affectedData": [
              {
                "defaultStatus": "unaffected",
                "product": "Linux",
                "programFiles": [
                  "fs/smb/client/smb2ops.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "lessThan": "ba905a567105dde21cdb8e6d3a87110fa434b393",
                    "status": "affected",
                    "version": "d08089f649a0cfb2099c8551ac47eef0cc23fdf2",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "7a8a8c15468f0c99685e9964451feffd1a3cc859",
                    "status": "affected",
                    "version": "d08089f649a0cfb2099c8551ac47eef0cc23fdf2",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "4a61b68abd2788db0364c9a0b6a39f1699fea440",
                    "status": "affected",
                    "version": "d08089f649a0cfb2099c8551ac47eef0cc23fdf2",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "998a67b954680f26f3734040aeeed08642d49721",
                    "status": "affected",
                    "version": "d08089f649a0cfb2099c8551ac47eef0cc23fdf2",
                    "versionType": "git"
                  }
                ]
              },
              {
                "defaultStatus": "affected",
                "product": "Linux",
                "programFiles": [
                  "fs/smb/client/smb2ops.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "status": "affected",
                    "version": "6.3"
                  },
                  {
                    "lessThan": "6.3",
                    "status": "unaffected",
                    "version": "0",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.6.*",
                    "status": "unaffected",
                    "version": "6.6.112",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.12.*",
                    "status": "unaffected",
                    "version": "6.12.53",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.17.*",
                    "status": "unaffected",
                    "version": "6.17.3",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "*",
                    "status": "unaffected",
                    "version": "6.18",
                    "versionType": "original_commit_for_fix"
                  }
                ]
              }
            ],
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
          }
        ],
        "cveTags": [],
        "descriptions": [
          {
            "lang": "en",
            "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nsmb: client: fix crypto buffers in non-linear memory\n\nThe crypto API, through the scatterlist API, expects input buffers to be\nin linear memory.  We handle this with the cifs_sg_set_buf() helper\nthat converts vmalloc\u0027d memory to their corresponding pages.\n\nHowever, when we allocate our aead_request buffer (@creq in\nsmb2ops.c::crypt_message()), we do so with kvzalloc(), which possibly\nputs aead_request-\u003e__ctx in vmalloc area.\n\nAEAD algorithm then uses -\u003e__ctx for its private/internal data and\noperations, and uses sg_set_buf() for such data on a few places.\n\nThis works fine as long as @creq falls into kmalloc zone (small\nrequests) or vmalloc\u0027d memory is still within linear range.\n\nTasks\u0027 stacks are vmalloc\u0027d by default (CONFIG_VMAP_STACK=y), so too\nmany tasks will increment the base stacks\u0027 addresses to a point where\nvirt_addr_valid(buf) will fail (BUG() in sg_set_buf()) when that\nhappens.\n\nIn practice: too many parallel reads and writes on an encrypted mount\nwill trigger this bug.\n\nTo fix this, always alloc @creq with kmalloc() instead.\nAlso drop the @sensitive_size variable/arguments since\nkfree_sensitive() doesn\u0027t need it.\n\nBacktrace:\n\n[  945.272081] ------------[ cut here ]------------\n[  945.272774] kernel BUG at include/linux/scatterlist.h:209!\n[  945.273520] Oops: invalid opcode: 0000 [#1] SMP DEBUG_PAGEALLOC NOPTI\n[  945.274412] CPU: 7 UID: 0 PID: 56 Comm: kworker/u33:0 Kdump: loaded Not tainted 6.15.0-lku-11779-g8e9d6efccdd7-dirty #1 PREEMPT(voluntary)\n[  945.275736] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS rel-1.16.3-2-gc13ff2cd-prebuilt.qemu.org 04/01/2014\n[  945.276877] Workqueue: writeback wb_workfn (flush-cifs-2)\n[  945.277457] RIP: 0010:crypto_gcm_init_common+0x1f9/0x220\n[  945.278018] Code: b0 00 00 00 48 83 c4 08 5b 5d 41 5c 41 5d 41 5e 41 5f c3 cc cc cc cc 48 c7 c0 00 00 00 80 48 2b 05 5c 58 e5 00 e9 58 ff ff ff \u003c0f\u003e 0b 0f 0b 0f 0b 0f 0b 0f 0b 0f 0b 48 c7 04 24 01 00 00 00 48 8b\n[  945.279992] RSP: 0018:ffffc90000a27360 EFLAGS: 00010246\n[  945.280578] RAX: 0000000000000000 RBX: ffffc90001d85060 RCX: 0000000000000030\n[  945.281376] RDX: 0000000000080000 RSI: 0000000000000000 RDI: ffffc90081d85070\n[  945.282145] RBP: ffffc90001d85010 R08: ffffc90001d85000 R09: 0000000000000000\n[  945.282898] R10: ffffc90001d85090 R11: 0000000000001000 R12: ffffc90001d85070\n[  945.283656] R13: ffff888113522948 R14: ffffc90001d85060 R15: ffffc90001d85010\n[  945.284407] FS:  0000000000000000(0000) GS:ffff8882e66cf000(0000) knlGS:0000000000000000\n[  945.285262] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033\n[  945.285884] CR2: 00007fa7ffdd31f4 CR3: 000000010540d000 CR4: 0000000000350ef0\n[  945.286683] Call Trace:\n[  945.286952]  \u003cTASK\u003e\n[  945.287184]  ? crypt_message+0x33f/0xad0 [cifs]\n[  945.287719]  crypto_gcm_encrypt+0x36/0xe0\n[  945.288152]  crypt_message+0x54a/0xad0 [cifs]\n[  945.288724]  smb3_init_transform_rq+0x277/0x300 [cifs]\n[  945.289300]  smb_send_rqst+0xa3/0x160 [cifs]\n[  945.289944]  cifs_call_async+0x178/0x340 [cifs]\n[  945.290514]  ? __pfx_smb2_writev_callback+0x10/0x10 [cifs]\n[  945.291177]  smb2_async_writev+0x3e3/0x670 [cifs]\n[  945.291759]  ? find_held_lock+0x32/0x90\n[  945.292212]  ? netfs_advance_write+0xf2/0x310\n[  945.292723]  netfs_advance_write+0xf2/0x310\n[  945.293210]  netfs_write_folio+0x346/0xcc0\n[  945.293689]  ? __pfx__raw_spin_unlock_irq+0x10/0x10\n[  945.294250]  netfs_writepages+0x117/0x460\n[  945.294724]  do_writepages+0xbe/0x170\n[  945.295152]  ? find_held_lock+0x32/0x90\n[  945.295600]  ? kvm_sched_clock_read+0x11/0x20\n[  945.296103]  __writeback_single_inode+0x56/0x4b0\n[  945.296643]  writeback_sb_inodes+0x229/0x550\n[  945.297140]  __writeback_inodes_wb+0x4c/0xe0\n[  945.297642]  wb_writeback+0x2f1/0x3f0\n[  945.298069]  wb_workfn+0x300/0x490\n[  945.298472]  process_one_work+0x1fe/0x590\n[  945.298949]  worker_thread+0x1ce/0x3c0\n[  945.299397]  ? __pfx_worker_thread+0x10/0x10\n[  945.299900]  kthr\n---truncated---"
          },
          {
            "lang": "es",
            "value": "En el kernel de Linux, la siguiente vulnerabilidad ha sido resuelta:\n\nsmb: cliente: corregir b\u00faferes criptogr\u00e1ficos en memoria no lineal\n\nLa API criptogr\u00e1fica, a trav\u00e9s de la API scatterlist, espera que los b\u00faferes de entrada est\u00e9n en memoria lineal. Manejamos esto con la funci\u00f3n auxiliar cifs_sg_set_buf() que convierte la memoria asignada con vmalloc a sus p\u00e1ginas correspondientes.\n\nSin embargo, cuando asignamos nuestro b\u00fafer aead_request (@creq en smb2ops.c::crypt_message()), lo hacemos con kvzalloc(), lo que posiblemente coloca aead_request-\u003e__ctx en el \u00e1rea vmalloc.\n\nEl algoritmo AEAD luego usa -\u003e__ctx para sus datos y operaciones privados/internos, y usa sg_set_buf() para dichos datos en algunos lugares.\n\nEsto funciona bien siempre y cuando @creq caiga en la zona kmalloc (solicitudes peque\u00f1as) o la memoria asignada con vmalloc todav\u00eda est\u00e9 dentro del rango lineal.\n\nLas pilas de las tareas se asignan con vmalloc por defecto (CONFIG_VMAP_STACK=y), por lo que demasiadas tareas incrementar\u00e1n las direcciones base de las pilas hasta un punto en el que virt_addr_valid(buf) fallar\u00e1 (BUG() en sg_set_buf()) cuando eso ocurra.\n\nEn la pr\u00e1ctica: demasiadas lecturas y escrituras paralelas en un montaje cifrado activar\u00e1n este error.\n\nPara solucionar esto, siempre asigne @creq con kmalloc() en su lugar.\nTambi\u00e9n elimine la variable/argumentos @sensitive_size ya que kfree_sensitive() no lo necesita.\n\nRastreo de pila:\n\n[  945.272081] ------------[ cut here ]------------\n[  945.272774] kernel BUG at include/linux/scatterlist.h:209!\n[  945.273520] Oops: invalid opcode: 0000 [#1] SMP DEBUG_PAGEALLOC NOPTI\n[  945.274412] CPU: 7 UID: 0 PID: 56 Comm: kworker/u33:0 Kdump: loaded Not tainted 6.15.0-lku-11779-g8e9d6efccdd7-dirty #1 PREEMPT(voluntary)\n[  945.275736] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS rel-1.16.3-2-gc13ff2cd-prebuilt.qemu.org 04/01/2014\n[  945.276877] Workqueue: writeback wb_workfn (flush-cifs-2)\n[  945.277457] RIP: 0010:crypto_gcm_init_common+0x1f9/0x220\n[  945.278018] Code: b0 00 00 00 48 83 c4 08 5b 5d 41 5c 41 5d 41 5e 41 5f c3 cc cc cc cc 48 c7 c0 00 00 00 80 48 2b 05 5c 58 e5 00 e9 58 ff ff ff \u003c0f\u003e 0b 0f 0b 0f 0b 0f 0b 0f 0b 0f 0b 48 c7 04 24 01 00 00 00 48 8b\n[  945.279992] RSP: 0018:ffffc90000a27360 EFLAGS: 00010246\n[  945.280578] RAX: 0000000000000000 RBX: ffffc90001d85060 RCX: 0000000000000030\n[  945.281376] RDX: 0000000000080000 RSI: 0000000000000000 RDI: ffffc90081d85070\n[  945.282145] RBP: ffffc90001d85010 R08: ffffc90001d85000 R09: 0000000000000000\n[  945.282898] R10: ffffc90001d85090 R11: 0000000000001000 R12: ffffc90001d85070\n[  945.283656] R13: ffff888113522948 R14: ffffc90001d85060 R15: ffffc90001d85010\n[  945.284407] FS:  0000000000000000(0000) GS:ffff8882e66cf000(0000) knlGS:0000000000000000\n[  945.285262] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033\n[  945.285884] CR2: 00007fa7ffdd31f4 CR3: 000000010540d000 CR4: 0000000000350ef0\n[  945.286683] Call Trace:\n[  945.286952]  \u003cTASK\u003e\n[  945.287184]  ? crypt_message+0x33f/0xad0 [cifs]\n[  945.287719]  crypto_gcm_encrypt+0x36/0xe0\n[  945.288152]  crypt_message+0x54a/0xad0 [cifs]\n[  945.288724]  smb3_init_transform_rq+0x277/0x300 [cifs]\n[  945.289300]  smb_send_rqst+0xa3/0x160 [cifs]\n[  945.289944]  cifs_call_async+0x178/0x340 [cifs]\n[  945.290514]  ? __pfx_smb2_writev_callback+0x10/0x10 [cifs]\n[  945.291177]  smb2_async_writev+0x3e3/0x670 [cifs]\n[  945.291759]  ? find_held_lock+0x32/0x90\n[  945.292212]  ? netfs_advance_write+0xf2/0x310\n[  945.292723]  netfs_advance_write+0xf2/0x310\n[  945.293210]  netfs_write_folio+0x346/0xcc0\n[  945.293689]  ? __pfx__raw_spin_unlock_irq+0x10/0x10\n[  945.294250]  netfs_writepages+0x117/0x460\n[  945.294724]  do_writepages+0xbe/0x170\n[  945.295152]  ? find_held_lock+0x32/0x90\n[  945.295600]  ? kvm_sched_clock_read+0x11/0x20\n[  945.296103]  __writeback_single_inode+0x56/0x4b0\n[  945.296643]  writeback_sb_inodes+0x229/0x550\n[  945.297140]  --TRUNCADO--"
          }
        ],
        "id": "CVE-2025-40052",
        "lastModified": "2026-10-19T21:10:00.160",
        "metrics": {},
        "published": "2025-10-28T12:15:39.383",
        "references": [
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/4a61b68abd2788db0364c9a0b6a39f1699fea440"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/7a8a8c15468f0c99685e9964451feffd1a3cc859"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/998a67b954680f26f3734040aeeed08642d49721"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/ba905a567105dde21cdb8e6d3a87110fa434b393"
          }
        ],
        "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "vulnStatus": "Deferred"
      }
    },
    "redhat_vex": {
      "aggregate_severity": "Moderate",
      "current_release_date": "2026-06-30T10:34:12+00:00",
      "cve": "CVE-2025-40052",
      "id": "CVE-2025-40052",
      "initial_release_date": "2025-10-28T00:00:00+00:00",
      "product_status:known_affected": "76",
      "product_status:known_not_affected": "198",
      "source": "Red Hat CSAF VEX",
      "status": "final",
      "title": "kernel: smb: client: fix crypto buffers in non-linear memory",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2025/cve-2025-40052.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.