« Volver al listado

CVE-2026-68099

Estado: RecibidaSin puntuar—

In the Linux kernel, the following vulnerability has been resolved:

ksmbd: restore DACL size on check_add_overflow() to avoid malformed ACL

check_add_overflow() unconditionally writes the truncated sum into *d even on overflow, per its contract in include/linux/overflow.h. The four check_add_overflow() guards in set_posix_acl_entries_dacl() and set_ntacl_dacl() break out of the ACE-building loops on overflow, but the truncated *size is then consumed downstream at the end of set_ntacl_dacl():

This produces an on-wire NT ACL whose pndacl->size under-reports the bytes actually written by the preceding fill_ace_for_sid()/memcpy() calls, yielding a malformed ACL that can trigger out-of-bounds reads when re-parsed by clients or ksmbd itself.

Leer descripción completaMostrar menos

Restore *size to its pre-addition value on each overflow branch (via `*size -= ace_sz` / `size -= nt_ace_size`) so that after the break, *size once again holds the cumulative size of the successfully-written ACEs. The committed ACL is then truncated-but-self-consistent rather than malformed.

The ksmbd DACL builders are the only check_add_overflow() sites found where an overflow path breaks out of a loop and the destination value is consumed afterward. The other nearby break-style cases either return -EINVAL on overflow (transport_ipc.c) or break without consuming the overflowed destination value afterward (buildid.c).

Detalles técnicos trazas, registros y código del informe original
    pndacl->size = cpu_to_le16(le16_to_cpu(pndacl->size) + size);

CVSS

NVD no ha asignado puntuación CVSS a esta CVE (habitual desde el cambio de política de abril de 2026).

Probabilidad de explotación (EPSS)

EPSS (Exploit Prediction Scoring System, de FIRST) estima la probabilidad de que una vulnerabilidad sea explotada en 30 días. Complementa a CVSS (impacto) y a CISA KEV (explotación confirmada).

Tecnologías afectadas (1)

⚠ Inferidas por IA a partir de la descripción — NVD aún no ha analizado esta CVE; no son CPE verificados.

Referencias

JSON original (NVD)

Mostrar
{
  "id": "CVE-2026-68099",
  "cveTags": [],
  "metrics": {},
  "affected": [
    {
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "affectedData": [
        {
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "product": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "41e53a773db6342ac9a689ee5ba635c31744c9f0",
              "lessThan": "8f3a7a499a7d9bb1c0f33fe78c4a4594d7e307f4",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "8d5729350b236896f51379588d9a690b7fafb8db",
              "lessThan": "f4fcd0c1a243d449307b887fafee23921e9db5ab",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "e1955a94b6f17f4b058afa955a6f187eb3ed7615",
              "lessThan": "0bf38372821b1526f31538a7d9811844c55c7f38",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "5e7b8f3c539d69b2ed5f2408e2f75e68ce7eef43",
              "lessThan": "847ecd4eb3c117c3d2f13f1e7ab506543aad8183",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "299f962c0b02d048fb45d248b4da493d03f3175d",
              "lessThan": "bc90144ce8bb7fcf05ad9417c7adb4e9509d9e13",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "299f962c0b02d048fb45d248b4da493d03f3175d",
              "lessThan": "bbf0a8e931204ecdab494a88d43b0a24a04285c5",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "ef7902be3f215b6bf7babe4dc9dd9a7d57dad7a7",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "6.1.175",
              "lessThan": "6.1.184",
              "versionType": "semver"
            },
            {
              "status": "affected",
              "version": "6.6.136",
              "lessThan": "6.6.148",
              "versionType": "semver"
            },
            {
              "status": "affected",
              "version": "6.12.84",
              "lessThan": "6.12.101",
              "versionType": "semver"
            },
            {
              "status": "affected",
              "version": "6.18.25",
              "lessThan": "6.18.42",
              "versionType": "semver"
            },
            {
              "status": "affected",
              "version": "7.0.2",
              "lessThan": "7.1",
              "versionType": "semver"
            }
          ],
          "programFiles": [
            "fs/smb/server/smbacl.c"
          ],
          "defaultStatus": "unaffected"
        },
        {
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "product": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "7.1"
            },
            {
              "status": "unaffected",
              "version": "0",
              "lessThan": "7.1",
              "versionType": "semver"
            },
            {
              "status": "unaffected",
              "version": "6.1.184",
              "versionType": "semver",
              "lessThanOrEqual": "6.1.*"
            },
            {
              "status": "unaffected",
              "version": "6.6.148",
              "versionType": "semver",
              "lessThanOrEqual": "6.6.*"
            },
            {
              "status": "unaffected",
              "version": "6.12.101",
              "versionType": "semver",
              "lessThanOrEqual": "6.12.*"
            },
            {
              "status": "unaffected",
              "version": "6.18.42",
              "versionType": "semver",
              "lessThanOrEqual": "6.18.*"
            },
            {
              "status": "unaffected",
              "version": "7.1.6",
              "versionType": "semver",
              "lessThanOrEqual": "7.1.*"
            },
            {
              "status": "unaffected",
              "version": "7.2",
              "versionType": "original_commit_for_fix",
              "lessThanOrEqual": "*"
            }
          ],
          "programFiles": [
            "fs/smb/server/smbacl.c"
          ],
          "defaultStatus": "affected"
        }
      ]
    }
  ],
  "published": "2026-08-10T13:19:54.350",
  "references": [
    {
      "url": "https://git.kernel.org/stable/c/0bf38372821b1526f31538a7d9811844c55c7f38",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/847ecd4eb3c117c3d2f13f1e7ab506543aad8183",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/8f3a7a499a7d9bb1c0f33fe78c4a4594d7e307f4",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/bbf0a8e931204ecdab494a88d43b0a24a04285c5",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/bc90144ce8bb7fcf05ad9417c7adb4e9509d9e13",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/f4fcd0c1a243d449307b887fafee23921e9db5ab",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    }
  ],
  "vulnStatus": "Received",
  "descriptions": [
    {
      "lang": "en",
      "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nksmbd: restore DACL size on check_add_overflow() to avoid malformed ACL\n\ncheck_add_overflow() unconditionally writes the truncated sum into *d\neven on overflow, per its contract in include/linux/overflow.h.\nThe four check_add_overflow() guards in set_posix_acl_entries_dacl()\nand set_ntacl_dacl() break out of the ACE-building loops on overflow,\nbut the truncated *size is then consumed downstream at the end of\nset_ntacl_dacl():\n\n    pndacl->size = cpu_to_le16(le16_to_cpu(pndacl->size) + size);\n\nThis produces an on-wire NT ACL whose pndacl->size under-reports the\nbytes actually written by the preceding fill_ace_for_sid()/memcpy()\ncalls, yielding a malformed ACL that can trigger out-of-bounds reads\nwhen re-parsed by clients or ksmbd itself.\n\nRestore *size to its pre-addition value on each overflow branch (via\n`*size -= ace_sz` / `size -= nt_ace_size`) so that after the break,\n*size once again holds the cumulative size of the successfully-written\nACEs. The committed ACL is then truncated-but-self-consistent rather\nthan malformed.\n\nThe ksmbd DACL builders are the only check_add_overflow() sites found\nwhere an overflow path breaks out of a loop and the destination value\nis consumed afterward. The other nearby break-style cases either\nreturn -EINVAL on overflow (transport_ipc.c) or break without\nconsuming the overflowed destination value afterward (buildid.c)."
    }
  ],
  "lastModified": "2026-08-23T13:16:32.940",
  "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
}