In the Linux kernel, the following vulnerability has been resolved:
nilfs2: fix OOB in nilfssetde_type
The size of the nilfstypebymode array in the fs/nilfs2/dir.c file is defined as "SIFMT >> SSHIFT", but the nilfssetdetype() function, which uses this array, specifies the index to read from the array in the same way as "(mode & SIFMT) >> SSHIFT".
static void nilfssetdetype(struct nilfsdirentry *de, struct inode *inode) { umodet mode = inode->i_mode;
de->file_type = nilfs_type_by_mode[(mode & S_IFMT)>>S_SHIFT]; // oob
}
However, when the index is determined this way, an out-of-bounds (OOB) error occurs by referring to an index that is 1 larger than the array size when the condition "mode & SIFMT == SIFMT" is satisfied. Therefore, a patch to resize the nilfstypeby_mode array should be applied to prevent OOB errors.
{ "vanir_signatures": [ { "deprecated": false, "signature_type": "Line", "target": { "file": "fs/nilfs2/dir.c" }, "id": "CVE-2024-26981-11f70bbc", "digest": { "line_hashes": [ "102404956194624217704872751803044368011", "318857441509414812407776333571261304751", "256506608210168102694313572650687826016", "288878057906526018179828549498799161662" ], "threshold": 0.9 }, "signature_version": "v1", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@7061c7efbb9e8f11ce92d6b4646405ea2b0b4de1" }, { "deprecated": false, "signature_type": "Line", "target": { "file": "fs/nilfs2/dir.c" }, "id": "CVE-2024-26981-39aed443", "digest": { "line_hashes": [ "102404956194624217704872751803044368011", "318857441509414812407776333571261304751", "256506608210168102694313572650687826016", "288878057906526018179828549498799161662" ], "threshold": 0.9 }, "signature_version": "v1", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@90823f8d9ecca3d5fa6b102c8e464c62f416975f" }, { "deprecated": false, "signature_type": "Line", "target": { "file": "fs/nilfs2/dir.c" }, "id": "CVE-2024-26981-60a0190c", "digest": { "line_hashes": [ "102404956194624217704872751803044368011", "318857441509414812407776333571261304751", "256506608210168102694313572650687826016", "288878057906526018179828549498799161662" ], "threshold": 0.9 }, "signature_version": "v1", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@2382eae66b196c31893984a538908c3eb7506ff9" }, { "deprecated": false, "signature_type": "Line", "target": { "file": "fs/nilfs2/dir.c" }, "id": "CVE-2024-26981-845beda5", "digest": { "line_hashes": [ "102404956194624217704872751803044368011", "318857441509414812407776333571261304751", "256506608210168102694313572650687826016", "288878057906526018179828549498799161662" ], "threshold": 0.9 }, "signature_version": "v1", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@bdbe483da21f852c93b22557b146bc4d989260f0" }, { "deprecated": false, "signature_type": "Line", "target": { "file": "fs/nilfs2/dir.c" }, "id": "CVE-2024-26981-84c6624d", "digest": { "line_hashes": [ "102404956194624217704872751803044368011", "318857441509414812407776333571261304751", "256506608210168102694313572650687826016", "288878057906526018179828549498799161662" ], "threshold": 0.9 }, "signature_version": "v1", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@90f43980ea6be4ad903e389be9a27a2a0018f1c8" }, { "deprecated": false, "signature_type": "Line", "target": { "file": "fs/nilfs2/dir.c" }, "id": "CVE-2024-26981-997db006", "digest": { "line_hashes": [ "102404956194624217704872751803044368011", "318857441509414812407776333571261304751", "256506608210168102694313572650687826016", "288878057906526018179828549498799161662" ], "threshold": 0.9 }, "signature_version": "v1", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@897ac5306bbeb83e90c437326f7044c79a17c611" }, { "deprecated": false, "signature_type": "Line", "target": { "file": "fs/nilfs2/dir.c" }, "id": "CVE-2024-26981-acb81af5", "digest": { "line_hashes": [ "102404956194624217704872751803044368011", "318857441509414812407776333571261304751", "256506608210168102694313572650687826016", "288878057906526018179828549498799161662" ], "threshold": 0.9 }, "signature_version": "v1", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@054f29e9ca05be3906544c5f2a2c7321c30a4243" }, { "deprecated": false, "signature_type": "Line", "target": { "file": "fs/nilfs2/dir.c" }, "id": "CVE-2024-26981-dda1ba0d", "digest": { "line_hashes": [ "102404956194624217704872751803044368011", "318857441509414812407776333571261304751", "256506608210168102694313572650687826016", "288878057906526018179828549498799161662" ], "threshold": 0.9 }, "signature_version": "v1", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@c4a7dc9523b59b3e73fd522c73e95e072f876b16" } ] }