CVE-2026-98684

Estado: RecibidaSin puntuar—
Gravedad—Sin puntuar
Probabilidad de explotación0.17 %mayor que el 5 % de las CVE
Explotación activaNono figura en el catálogo de CISA
Exploit públicoNo conocidosin código público localizado

En el kernel de Linux se ha resuelto la siguiente vulnerabilidad:

smb: client: flush and commit data before querying allocated ranges

La emulación de fallocate en modo 0 / FALLOC_FL_KEEP_SIZE para rangos internos pequeños en smb3_simple_fallocate_range() emite FSCTL_QUERY_ALLOCATED_RANGES y rellena con ceros cualquier subrango que el servidor notifique como hueco no asignado, para forzar la asignación de bloques sin cambiar el contenido del fichero.

Esto no es seguro frente a servidores Windows. Según la documentación de Win32, FSCTL_QUERY_ALLOCATED_RANGES solo informa de rangos que *pueden* contener datos distintos de cero y, explícitamente, no es coherente con los datos escritos recientemente:

Leer descripción completaMostrar menos

fsx (generic/363) reproduce la corrupción resultante contra Windows Server 2022: se escribe un rango, una lectura sin caché devuelve los datos, pero la siguiente llamada a FSCTL_QUERY_ALLOCATED_RANGES sobre ese rango lo notifica como un hueco completo, de modo que la emulación sobrescribe datos activos con ceros. Una traza de red confirmó que la escritura, la lectura que devuelve datos y la consulta que devuelve una lista de rangos vacía se producían en cuestión de microsegundos. Samba no presenta este comportamiento; su consulta es coherente con los datos escritos.

Vacíe las páginas sucias, espere a que terminen las operaciones de E/S pendientes y emita un SMB2 FLUSH para obligar al servidor a confirmar los datos antes de consultar los rangos asignados, de modo que la consulta refleje los datos realmente presentes.

Con este cambio, generic/363 pasa tanto contra Windows Server 2022 como contra Samba tras 100000 operaciones de fsx.

Detalles técnicos trazas, registros y código del informe original
  "a call to FSCTL_QUERY_ALLOCATED_RANGES [after writing to a network
   file] would not necessarily return a correct list of allocated
   regions.  To ensure coherency [...] flush the data to the file"

Traducción automática del texto original de NVD (en inglés).

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)

Probabilidad de explotación en los próximos 30 días
0.17 %
Percentil entre todas las CVEs puntuadas
5
Fecha de la puntuación
20/10/2026

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

Mostrar las 3 referencias

JSON original (NVD)

Mostrar
{
  "id": "CVE-2026-98684",
  "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": "966a3cb7c7db786452a87afdc3b48858fc4d4d6b",
              "lessThan": "f82242fe3109a3ef72f429540b5bdde08fbfb0e4",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "966a3cb7c7db786452a87afdc3b48858fc4d4d6b",
              "lessThan": "bf84e44ff0ed802778eafd7ecb623635379cb506",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "966a3cb7c7db786452a87afdc3b48858fc4d4d6b",
              "lessThan": "aa994489bd835547c191827acc460192e147032d",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "c406bb9ece6ef63721daab106f132ff4b4234e81",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "2f9f4a2d0e6fcf0673ed51195e06e47abe966900",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "5e397c943424de94879830e72c95f2679e297a76",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "5.10.50",
              "lessThan": "5.11",
              "versionType": "semver"
            },
            {
              "status": "affected",
              "version": "5.12.17",
              "lessThan": "5.13",
              "versionType": "semver"
            },
            {
              "status": "affected",
              "version": "5.13.2",
              "lessThan": "5.14",
              "versionType": "semver"
            }
          ],
          "programFiles": [
            "fs/smb/client/smb2ops.c"
          ],
          "defaultStatus": "unaffected"
        },
        {
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "product": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "5.14"
            },
            {
              "status": "unaffected",
              "version": "0",
              "lessThan": "5.14",
              "versionType": "semver"
            },
            {
              "status": "unaffected",
              "version": "6.18.56",
              "versionType": "semver",
              "lessThanOrEqual": "6.18.*"
            },
            {
              "status": "unaffected",
              "version": "7.2.10",
              "versionType": "semver",
              "lessThanOrEqual": "7.2.*"
            },
            {
              "status": "unaffected",
              "version": "7.3",
              "versionType": "original_commit_for_fix",
              "lessThanOrEqual": "*"
            }
          ],
          "programFiles": [
            "fs/smb/client/smb2ops.c"
          ],
          "defaultStatus": "affected"
        }
      ]
    }
  ],
  "published": "2026-10-18T16:17:21.770",
  "references": [
    {
      "url": "https://git.kernel.org/stable/c/aa994489bd835547c191827acc460192e147032d",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/bf84e44ff0ed802778eafd7ecb623635379cb506",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/f82242fe3109a3ef72f429540b5bdde08fbfb0e4",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    }
  ],
  "vulnStatus": "Received",
  "descriptions": [
    {
      "lang": "en",
      "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nsmb: client: flush and commit data before querying allocated ranges\n\nThe mode 0 / FALLOC_FL_KEEP_SIZE fallocate emulation for small interior\nranges in smb3_simple_fallocate_range() issues\nFSCTL_QUERY_ALLOCATED_RANGES and zero-fills any sub-range the server\nreports as an unallocated hole, to force block allocation without\nchanging file contents.\n\nThis is unsafe against Windows servers.  Per the Win32 documentation,\nFSCTL_QUERY_ALLOCATED_RANGES only reports ranges that *may* contain\nnonzero data and is explicitly not coherent with recently written data:\n\n  \"a call to FSCTL_QUERY_ALLOCATED_RANGES [after writing to a network\n   file] would not necessarily return a correct list of allocated\n   regions.  To ensure coherency [...] flush the data to the file\"\n\nfsx (generic/363) reproduces the resulting corruption against Windows\nServer 2022: a range is written, an uncached read returns the data, yet\nthe next FSCTL_QUERY_ALLOCATED_RANGES on that range reports it as a whole\nhole, so the emulation overwrites live data with zeroes.  A network trace\nconfirmed the WRITE, the READ returning data and the query returning an\nempty range list within microseconds.  Samba does not exhibit this; its\nquery is coherent with the written data.\n\nWrite back the dirty pages, drain any outstanding I/O and issue an SMB2\nFLUSH to force the server to commit the data before querying the\nallocated ranges, so the query reflects the data actually present.\n\nWith this, generic/363 passes against both Windows Server 2022 and Samba\nover 100000 fsx operations."
    }
  ],
  "lastModified": "2026-10-19T10:19:32.823",
  "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
}