In the Linux kernel, the following vulnerability has been resolved:
f2fs: fix to do sanity check for inline inode
Yanming reported a kernel bug in Bugzilla kernel [1], which can be reproduced. The bug message is:
The kernel message is shown below:
kernel BUG at fs/inode.c:611! Call Trace: evict+0x282/0x4e0 __dentrykill+0x2b2/0x4d0 dput+0x2dd/0x720 dorenameat2+0x596/0x970 __x64sysrename+0x78/0x90 dosyscall64+0x3b/0x90
[1] https://bugzilla.kernel.org/show_bug.cgi?id=215895
The bug is due to fuzzed inode has both inlinedata and encrypted flags. During f2fsevictinode(), as the inode was deleted by rename(), it will cause inline data conversion due to conflicting flags. The page cache will be polluted and the panic will be triggered in clearinode().
Try fixing the bug by doing more sanity checks for inline data inode in sanitycheckinode().
{
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2022/49xxx/CVE-2022-49361.json",
"cna_assigner": "Linux"
}"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2022-49361.json"
[
{
"deprecated": false,
"signature_version": "v1",
"digest": {
"function_hash": "27557092981901622635652236803219849474",
"length": 4202.0
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@198fd9faa271dd54dca6fc8eb6873f42dfd3b4d8",
"signature_type": "Function",
"id": "CVE-2022-49361-143abfda",
"target": {
"file": "fs/f2fs/inode.c",
"function": "sanity_check_inode"
}
},
{
"deprecated": false,
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"280237758214290134391362523564044603721",
"146796177138456885501664787508833776835",
"136429032557956190051723357618985420497",
"91047319666172781239755622534626090558",
"306244021056734047486304756190319025191"
]
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@11c1cd032df85df3c096a57a7f27d57819956e4a",
"signature_type": "Line",
"id": "CVE-2022-49361-25f192b7",
"target": {
"file": "fs/f2fs/inode.c"
}
},
{
"deprecated": false,
"signature_version": "v1",
"digest": {
"function_hash": "27557092981901622635652236803219849474",
"length": 4202.0
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@7cfe2d43becaf76e562b9617d2c2d9b445f86761",
"signature_type": "Function",
"id": "CVE-2022-49361-2a24af7a",
"target": {
"file": "fs/f2fs/inode.c",
"function": "sanity_check_inode"
}
},
{
"deprecated": false,
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"295225629231183313376423605409730364961",
"69010480252392724410461418637311417135",
"134590199580617489445464483309217908694",
"135223037726028011866987605659858909121",
"182012566612411342596496835456492464432",
"78417471055311779741413082161785944150",
"197330627561945243145064833464480663609",
"87627386496480042649793556054216950472",
"246442770574370445896604782403488620475",
"6414566052834618106182621220311566404",
"73416543693871636546419294892877115103",
"228450645797788319846908051953646428432",
"286792965171587069563256422640054564074",
"316259248109652785033567238259303929730"
]
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@efdefbe8b7564602ab446474788225a1f2a323b5",
"signature_type": "Line",
"id": "CVE-2022-49361-349b2e9b",
"target": {
"file": "fs/f2fs/inline.c"
}
},
{
"deprecated": false,
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"280237758214290134391362523564044603721",
"146796177138456885501664787508833776835",
"136429032557956190051723357618985420497",
"91047319666172781239755622534626090558",
"306244021056734047486304756190319025191"
]
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@677a82b44ebf263d4f9a0cfbd576a6ade797a07b",
"signature_type": "Line",
"id": "CVE-2022-49361-490bfa71",
"target": {
"file": "fs/f2fs/inode.c"
}
},
{
"deprecated": false,
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"74415450278157772101192548082772310349",
"139316663951203380176431028820392894273",
"140164347163471668552193692043417810578",
"36099487148768756479644333949030440148"
]
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@677a82b44ebf263d4f9a0cfbd576a6ade797a07b",
"signature_type": "Line",
"id": "CVE-2022-49361-4d2409bd",
"target": {
"file": "fs/f2fs/f2fs.h"
}
},
{
"deprecated": false,
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"295225629231183313376423605409730364961",
"69010480252392724410461418637311417135",
"134590199580617489445464483309217908694",
"135223037726028011866987605659858909121",
"182012566612411342596496835456492464432",
"78417471055311779741413082161785944150",
"197330627561945243145064833464480663609",
"87627386496480042649793556054216950472",
"246442770574370445896604782403488620475",
"6414566052834618106182621220311566404",
"73416543693871636546419294892877115103",
"228450645797788319846908051953646428432",
"286792965171587069563256422640054564074",
"316259248109652785033567238259303929730"
]
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@7cfe2d43becaf76e562b9617d2c2d9b445f86761",
"signature_type": "Line",
"id": "CVE-2022-49361-5ab973a1",
"target": {
"file": "fs/f2fs/inline.c"
}
},
{
"deprecated": false,
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"74415450278157772101192548082772310349",
"139316663951203380176431028820392894273",
"140164347163471668552193692043417810578",
"36099487148768756479644333949030440148"
]
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@11c1cd032df85df3c096a57a7f27d57819956e4a",
"signature_type": "Line",
"id": "CVE-2022-49361-6353b7dc",
"target": {
"file": "fs/f2fs/f2fs.h"
}
},
{
"deprecated": false,
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"74415450278157772101192548082772310349",
"139316663951203380176431028820392894273",
"140164347163471668552193692043417810578",
"36099487148768756479644333949030440148"
]
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@198fd9faa271dd54dca6fc8eb6873f42dfd3b4d8",
"signature_type": "Line",
"id": "CVE-2022-49361-6a257d9c",
"target": {
"file": "fs/f2fs/f2fs.h"
}
},
{
"deprecated": false,
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"280237758214290134391362523564044603721",
"146796177138456885501664787508833776835",
"136429032557956190051723357618985420497",
"91047319666172781239755622534626090558",
"306244021056734047486304756190319025191"
]
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@198fd9faa271dd54dca6fc8eb6873f42dfd3b4d8",
"signature_type": "Line",
"id": "CVE-2022-49361-7d469f6a",
"target": {
"file": "fs/f2fs/inode.c"
}
},
{
"deprecated": false,
"signature_version": "v1",
"digest": {
"function_hash": "27557092981901622635652236803219849474",
"length": 4202.0
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@efdefbe8b7564602ab446474788225a1f2a323b5",
"signature_type": "Function",
"id": "CVE-2022-49361-8af25d91",
"target": {
"file": "fs/f2fs/inode.c",
"function": "sanity_check_inode"
}
},
{
"deprecated": false,
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"295225629231183313376423605409730364961",
"69010480252392724410461418637311417135",
"134590199580617489445464483309217908694",
"135223037726028011866987605659858909121",
"182012566612411342596496835456492464432",
"78417471055311779741413082161785944150",
"197330627561945243145064833464480663609",
"87627386496480042649793556054216950472",
"246442770574370445896604782403488620475",
"6414566052834618106182621220311566404",
"73416543693871636546419294892877115103",
"228450645797788319846908051953646428432",
"286792965171587069563256422640054564074",
"316259248109652785033567238259303929730"
]
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@11c1cd032df85df3c096a57a7f27d57819956e4a",
"signature_type": "Line",
"id": "CVE-2022-49361-8df0122d",
"target": {
"file": "fs/f2fs/inline.c"
}
},
{
"deprecated": false,
"signature_version": "v1",
"digest": {
"function_hash": "212579316130340095405280711481296722894",
"length": 281.0
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@198fd9faa271dd54dca6fc8eb6873f42dfd3b4d8",
"signature_type": "Function",
"id": "CVE-2022-49361-909b814e",
"target": {
"file": "fs/f2fs/inline.c",
"function": "f2fs_may_inline_data"
}
},
{
"deprecated": false,
"signature_version": "v1",
"digest": {
"function_hash": "27557092981901622635652236803219849474",
"length": 4202.0
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@11c1cd032df85df3c096a57a7f27d57819956e4a",
"signature_type": "Function",
"id": "CVE-2022-49361-aeb552d9",
"target": {
"file": "fs/f2fs/inode.c",
"function": "sanity_check_inode"
}
},
{
"deprecated": false,
"signature_version": "v1",
"digest": {
"function_hash": "27557092981901622635652236803219849474",
"length": 4202.0
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@677a82b44ebf263d4f9a0cfbd576a6ade797a07b",
"signature_type": "Function",
"id": "CVE-2022-49361-bbdd334c",
"target": {
"file": "fs/f2fs/inode.c",
"function": "sanity_check_inode"
}
},
{
"deprecated": false,
"signature_version": "v1",
"digest": {
"function_hash": "212579316130340095405280711481296722894",
"length": 281.0
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@efdefbe8b7564602ab446474788225a1f2a323b5",
"signature_type": "Function",
"id": "CVE-2022-49361-c359dbc2",
"target": {
"file": "fs/f2fs/inline.c",
"function": "f2fs_may_inline_data"
}
},
{
"deprecated": false,
"signature_version": "v1",
"digest": {
"function_hash": "212579316130340095405280711481296722894",
"length": 281.0
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@11c1cd032df85df3c096a57a7f27d57819956e4a",
"signature_type": "Function",
"id": "CVE-2022-49361-c38dc818",
"target": {
"file": "fs/f2fs/inline.c",
"function": "f2fs_may_inline_data"
}
},
{
"deprecated": false,
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"295225629231183313376423605409730364961",
"69010480252392724410461418637311417135",
"134590199580617489445464483309217908694",
"135223037726028011866987605659858909121",
"182012566612411342596496835456492464432",
"78417471055311779741413082161785944150",
"197330627561945243145064833464480663609",
"87627386496480042649793556054216950472",
"246442770574370445896604782403488620475",
"6414566052834618106182621220311566404",
"73416543693871636546419294892877115103",
"228450645797788319846908051953646428432",
"286792965171587069563256422640054564074",
"316259248109652785033567238259303929730"
]
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@198fd9faa271dd54dca6fc8eb6873f42dfd3b4d8",
"signature_type": "Line",
"id": "CVE-2022-49361-cb24bb07",
"target": {
"file": "fs/f2fs/inline.c"
}
},
{
"deprecated": false,
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"295225629231183313376423605409730364961",
"69010480252392724410461418637311417135",
"134590199580617489445464483309217908694",
"135223037726028011866987605659858909121",
"182012566612411342596496835456492464432",
"78417471055311779741413082161785944150",
"197330627561945243145064833464480663609",
"87627386496480042649793556054216950472",
"246442770574370445896604782403488620475",
"6414566052834618106182621220311566404",
"73416543693871636546419294892877115103",
"228450645797788319846908051953646428432",
"286792965171587069563256422640054564074",
"316259248109652785033567238259303929730"
]
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@677a82b44ebf263d4f9a0cfbd576a6ade797a07b",
"signature_type": "Line",
"id": "CVE-2022-49361-ccc87416",
"target": {
"file": "fs/f2fs/inline.c"
}
},
{
"deprecated": false,
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"74415450278157772101192548082772310349",
"139316663951203380176431028820392894273",
"140164347163471668552193692043417810578",
"36099487148768756479644333949030440148"
]
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@7cfe2d43becaf76e562b9617d2c2d9b445f86761",
"signature_type": "Line",
"id": "CVE-2022-49361-d7b1b82b",
"target": {
"file": "fs/f2fs/f2fs.h"
}
},
{
"deprecated": false,
"signature_version": "v1",
"digest": {
"function_hash": "212579316130340095405280711481296722894",
"length": 281.0
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@677a82b44ebf263d4f9a0cfbd576a6ade797a07b",
"signature_type": "Function",
"id": "CVE-2022-49361-df855c5b",
"target": {
"file": "fs/f2fs/inline.c",
"function": "f2fs_may_inline_data"
}
},
{
"deprecated": false,
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"280237758214290134391362523564044603721",
"146796177138456885501664787508833776835",
"136429032557956190051723357618985420497",
"91047319666172781239755622534626090558",
"306244021056734047486304756190319025191"
]
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@7cfe2d43becaf76e562b9617d2c2d9b445f86761",
"signature_type": "Line",
"id": "CVE-2022-49361-e4a6aa86",
"target": {
"file": "fs/f2fs/inode.c"
}
},
{
"deprecated": false,
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"74415450278157772101192548082772310349",
"139316663951203380176431028820392894273",
"140164347163471668552193692043417810578",
"36099487148768756479644333949030440148"
]
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@efdefbe8b7564602ab446474788225a1f2a323b5",
"signature_type": "Line",
"id": "CVE-2022-49361-ed6b6e59",
"target": {
"file": "fs/f2fs/f2fs.h"
}
},
{
"deprecated": false,
"signature_version": "v1",
"digest": {
"function_hash": "212579316130340095405280711481296722894",
"length": 281.0
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@7cfe2d43becaf76e562b9617d2c2d9b445f86761",
"signature_type": "Function",
"id": "CVE-2022-49361-ee62cd1e",
"target": {
"file": "fs/f2fs/inline.c",
"function": "f2fs_may_inline_data"
}
},
{
"deprecated": false,
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"280237758214290134391362523564044603721",
"146796177138456885501664787508833776835",
"136429032557956190051723357618985420497",
"91047319666172781239755622534626090558",
"306244021056734047486304756190319025191"
]
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@efdefbe8b7564602ab446474788225a1f2a323b5",
"signature_type": "Line",
"id": "CVE-2022-49361-ffdacca3",
"target": {
"file": "fs/f2fs/inode.c"
}
}
]