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.
[
{
"deprecated": false,
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"102404956194624217704872751803044368011",
"318857441509414812407776333571261304751",
"256506608210168102694313572650687826016",
"288878057906526018179828549498799161662"
]
},
"id": "CVE-2024-26981-11f70bbc",
"signature_type": "Line",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@7061c7efbb9e8f11ce92d6b4646405ea2b0b4de1",
"target": {
"file": "fs/nilfs2/dir.c"
}
},
{
"deprecated": false,
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"102404956194624217704872751803044368011",
"318857441509414812407776333571261304751",
"256506608210168102694313572650687826016",
"288878057906526018179828549498799161662"
]
},
"id": "CVE-2024-26981-39aed443",
"signature_type": "Line",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@90823f8d9ecca3d5fa6b102c8e464c62f416975f",
"target": {
"file": "fs/nilfs2/dir.c"
}
},
{
"deprecated": false,
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"102404956194624217704872751803044368011",
"318857441509414812407776333571261304751",
"256506608210168102694313572650687826016",
"288878057906526018179828549498799161662"
]
},
"id": "CVE-2024-26981-60a0190c",
"signature_type": "Line",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@2382eae66b196c31893984a538908c3eb7506ff9",
"target": {
"file": "fs/nilfs2/dir.c"
}
},
{
"deprecated": false,
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"102404956194624217704872751803044368011",
"318857441509414812407776333571261304751",
"256506608210168102694313572650687826016",
"288878057906526018179828549498799161662"
]
},
"id": "CVE-2024-26981-845beda5",
"signature_type": "Line",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@bdbe483da21f852c93b22557b146bc4d989260f0",
"target": {
"file": "fs/nilfs2/dir.c"
}
},
{
"deprecated": false,
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"102404956194624217704872751803044368011",
"318857441509414812407776333571261304751",
"256506608210168102694313572650687826016",
"288878057906526018179828549498799161662"
]
},
"id": "CVE-2024-26981-84c6624d",
"signature_type": "Line",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@90f43980ea6be4ad903e389be9a27a2a0018f1c8",
"target": {
"file": "fs/nilfs2/dir.c"
}
},
{
"deprecated": false,
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"102404956194624217704872751803044368011",
"318857441509414812407776333571261304751",
"256506608210168102694313572650687826016",
"288878057906526018179828549498799161662"
]
},
"id": "CVE-2024-26981-997db006",
"signature_type": "Line",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@897ac5306bbeb83e90c437326f7044c79a17c611",
"target": {
"file": "fs/nilfs2/dir.c"
}
},
{
"deprecated": false,
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"102404956194624217704872751803044368011",
"318857441509414812407776333571261304751",
"256506608210168102694313572650687826016",
"288878057906526018179828549498799161662"
]
},
"id": "CVE-2024-26981-dda1ba0d",
"signature_type": "Line",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@c4a7dc9523b59b3e73fd522c73e95e072f876b16",
"target": {
"file": "fs/nilfs2/dir.c"
}
}
]