title: Type confusion in shiftfs
description: In shiftfs, a non-upstream patch to the Linux kernel included in the Ubuntu 5.0 and 5.3 kernel series, shiftfs_btrfs_ioctl_fd_replace() calls fdget(oldfd), then without further checks passes the resulting file* into shiftfs_real_fdget(), which casts file->private_data, a void* that points to a filesystem-dependent type, to a "struct shiftfs_file_info *". As the private_data is not required to be a pointer, an attacker can use this to cause a denial of service or possibly execute arbitrary code.
problem types: CWE-843 Access of Resource Using Incompatible Type ('Type Confusion')
affected:
{
product: Shiftfs in the Linux kernel
vendor: Ubuntu
versions:
changes: [at: 5.3.0-22.24, status: unaffected], lessThan: 5.3 kernel*, status: affected, version: 5.3.0-11.12, versionType: custom
lessThan: 5.0.0-35.38, status: affected, version: 5.0 kernel, versionType: custom
}
metrics:
cvssV3_1: [
attackComplexity: LOW
attackVector: LOCAL
availabilityImpact: HIGH
baseScore: 7.1
baseSeverity: HIGH
confidentialityImpact: NONE
integrityImpact: HIGH
privilegesRequired: LOW
scope: UNCHANGED
userInteraction: NONE
vectorString: CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H
version: 3.1
]