← Back to CVE Explorer

CVE-2025-40049

Full vulnerability record from the local CVENow database.

Description

In the Linux kernel, the following vulnerability has been resolved: Squashfs: fix uninit-value in squashfs_get_parent Syzkaller reports a "KMSAN: uninit-value in squashfs_get_parent" bug. This is caused by open_by_handle_at() being called with a file handle containing an invalid parent inode number. In particular the inode number is that of a symbolic link, rather than a directory. Squashfs_get_parent() gets called with that symbolic link inode, and accesses the parent member field. unsigned int parent_ino = squashfs_i(inode)->parent; Because non-directory inodes in Squashfs do not have a parent value, this is uninitialised, and this causes an uninitialised value access. The fix is to initialise parent with the invalid inode 0, which will cause an EINVAL error to be returned. Regular inodes used to share the parent field with the block_list_start field. This is removed in this commit to enable the parent field to contain the invalid inode number 0.

Severity
Not scored
CVSS score
Not available
Vulnerability status
Deferred
Source identifier
416baaa9-dc9f-4396-8d5f-8c081fb06d67
Published
2025-10-28 12:15:39.043000
Last modified
2026-10-19 21:10:00.160000
View original CVE JSON
{
  "id": "CVE-2025-40049",
  "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
  "published": "2025-10-28T12:15:39.043",
  "lastModified": "2026-10-19T21:10:00.160",
  "vulnStatus": "Deferred",
  "cveTags": [],
  "descriptions": [
    {
      "lang": "en",
      "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nSquashfs: fix uninit-value in squashfs_get_parent\n\nSyzkaller reports a \"KMSAN: uninit-value in squashfs_get_parent\" bug.\n\nThis is caused by open_by_handle_at() being called with a file handle\ncontaining an invalid parent inode number.  In particular the inode number\nis that of a symbolic link, rather than a directory.\n\nSquashfs_get_parent() gets called with that symbolic link inode, and\naccesses the parent member field.\n\n\tunsigned int parent_ino = squashfs_i(inode)->parent;\n\nBecause non-directory inodes in Squashfs do not have a parent value, this\nis uninitialised, and this causes an uninitialised value access.\n\nThe fix is to initialise parent with the invalid inode 0, which will cause\nan EINVAL error to be returned.\n\nRegular inodes used to share the parent field with the block_list_start\nfield.  This is removed in this commit to enable the parent field to\ncontain the invalid inode number 0."
    },
    {
      "lang": "es",
      "value": "En el kernel de Linux, la siguiente vulnerabilidad ha sido resuelta:\n\nSquashfs: corrección de valor no inicializado en squashfs_get_parent\n\nSyzkaller informa de un error KMSAN: uninit-value in squashfs_get_parent.\n\nEsto es causado por la llamada a open_by_handle_at() con un descriptor de archivo que contiene un número de inodo padre no válido. En particular, el número de inodo es el de un enlace simbólico, en lugar de un directorio.\n\nSe llama a Squashfs_get_parent() con ese inodo de enlace simbólico y accede al campo miembro parent.\n\n\tunsigned int parent_ino = squashfs_i(inode)->parent;\n\nDebido a que los inodos que no son directorios en Squashfs no tienen un valor parent, esto no está inicializado, y esto causa un acceso a un valor no inicializado.\n\nLa solución es inicializar parent con el inodo no válido 0, lo que hará que se devuelva un error EINVAL.\n\nLos inodos regulares solían compartir el campo parent con el campo block_list_start. Esto se elimina en este commit para permitir que el campo parent contenga el número de inodo no válido 0."
    }
  ],
  "affected": [
    {
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "affectedData": [
        {
          "vendor": "Linux",
          "product": "Linux",
          "defaultStatus": "unaffected",
          "programFiles": [
            "fs/squashfs/inode.c",
            "fs/squashfs/squashfs_fs_i.h"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "versions": [
            {
              "version": "122601408d20c77704268f1dea9f9ce4abf997c2",
              "lessThan": "f81a5bc9e924ee1950e0dd82bd10749048390f6e",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "122601408d20c77704268f1dea9f9ce4abf997c2",
              "lessThan": "382a47fae449e554ef1e8c198667fd2f3270b945",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "122601408d20c77704268f1dea9f9ce4abf997c2",
              "lessThan": "61d38b5ce2782bff3cacaacbb8164087a73ed1a5",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "122601408d20c77704268f1dea9f9ce4abf997c2",
              "lessThan": "81a2bca52d43fc9d9abf07408b91255131c5dc53",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "122601408d20c77704268f1dea9f9ce4abf997c2",
              "lessThan": "c28b0ca029edf5d0558abcd76cb8c732706cd339",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "122601408d20c77704268f1dea9f9ce4abf997c2",
              "lessThan": "1b3ccd0019132880c94bb00ca7088c1749308f82",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "122601408d20c77704268f1dea9f9ce4abf997c2",
              "lessThan": "91b99db7a92e57ff48a96a1b10fddfd2547e7f53",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "122601408d20c77704268f1dea9f9ce4abf997c2",
              "lessThan": "74058c0a9fc8b2b4d5f4a0ef7ee2cfa66a9e49cf",
              "versionType": "git",
              "status": "affected"
            }
          ]
        },
        {
          "vendor": "Linux",
          "product": "Linux",
          "defaultStatus": "affected",
          "programFiles": [
            "fs/squashfs/inode.c",
            "fs/squashfs/squashfs_fs_i.h"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "versions": [
            {
              "version": "2.6.29",
              "status": "affected"
            },
            {
              "version": "0",
              "lessThan": "2.6.29",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "5.4.301",
              "lessThanOrEqual": "5.4.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "5.10.246",
              "lessThanOrEqual": "5.10.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "5.15.195",
              "lessThanOrEqual": "5.15.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.1.156",
              "lessThanOrEqual": "6.1.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.6.112",
              "lessThanOrEqual": "6.6.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.12.53",
              "lessThanOrEqual": "6.12.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.17.3",
              "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/1b3ccd0019132880c94bb00ca7088c1749308f82",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/382a47fae449e554ef1e8c198667fd2f3270b945",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/61d38b5ce2782bff3cacaacbb8164087a73ed1a5",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/74058c0a9fc8b2b4d5f4a0ef7ee2cfa66a9e49cf",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/81a2bca52d43fc9d9abf07408b91255131c5dc53",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/91b99db7a92e57ff48a96a1b10fddfd2547e7f53",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/c28b0ca029edf5d0558abcd76cb8c732706cd339",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/f81a5bc9e924ee1950e0dd82bd10749048390f6e",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    }
  ]
}