In the Linux kernel, the following vulnerability has been resolved:
cifs: fix handlecache and multiuser
In multiuser each individual user has their own tcon structure for the share and thus their own handle for a cached directory. When we umount such a share we much make sure to release the pinned down dentry for each such tcon and not just the master tcon.
Otherwise we will get nasty warnings on umount that dentries are still in use: [ 3459.590047] BUG: Dentry 00000000115c6f41{i=12000000019d95,n=/} still in use\ (2) [unmount of cifs cifs] ... [ 3459.590492] Call Trace: [ 3459.590500] dwalk+0x61/0x2a0 [ 3459.590518] ? shrinklockdentry.part.0+0xe0/0xe0 [ 3459.590526] shrinkdcacheforumount+0x49/0x110 [ 3459.590535] genericshutdownsuper+0x1a/0x110 [ 3459.590542] killanonsuper+0x14/0x30 [ 3459.590549] cifskillsb+0xf5/0x104 [cifs] [ 3459.590773] deactivatelockedsuper+0x36/0xa0 [ 3459.590782] cleanupmnt+0x131/0x190 [ 3459.590789] taskworkrun+0x5c/0x90 [ 3459.590798] exittousermodeloop+0x151/0x160 [ 3459.590809] exittousermodeprepare+0x83/0xd0 [ 3459.590818] syscallexittousermode+0x12/0x30 [ 3459.590828] dosyscall64+0x48/0x90 [ 3459.590833] entrySYSCALL64after_hwframe+0x44/0xae
[
{
"digest": {
"line_hashes": [
"102679656722085459596146461701197048154",
"174368219182515436621766518035265705021",
"260251541665762647202431682237750180288",
"327685174046377993804622407303177597065",
"215841455188445491989878951852117441707",
"37879263314499506412427925113302256101",
"213047557742300054803371111676369948837",
"291192099960749754236465329808119824766",
"114095676367556748196701188946285762370",
"148974884337408024640017040362668904193",
"118795012601828852146467419161800982916",
"162281054016205340564739169894543142813",
"332630599447692148102352212298288389257",
"188026253819484145545749076560939408288",
"121328480388488633953986519107562589615",
"132110019420391987005065221573518579704",
"207200114644072979722676783838489078308"
],
"threshold": 0.9
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@47178c7722ac528ea08aa82c3ef9ffa178962d7a",
"signature_version": "v1",
"deprecated": false,
"target": {
"file": "fs/cifs/cifsfs.c"
},
"id": "CVE-2022-49281-2cde5cb8",
"signature_type": "Line"
},
{
"digest": {
"line_hashes": [
"102679656722085459596146461701197048154",
"174368219182515436621766518035265705021",
"260251541665762647202431682237750180288",
"327685174046377993804622407303177597065",
"215841455188445491989878951852117441707",
"37879263314499506412427925113302256101",
"213047557742300054803371111676369948837",
"291192099960749754236465329808119824766",
"114095676367556748196701188946285762370",
"148974884337408024640017040362668904193",
"118795012601828852146467419161800982916",
"162281054016205340564739169894543142813",
"332630599447692148102352212298288389257",
"188026253819484145545749076560939408288",
"121328480388488633953986519107562589615",
"132110019420391987005065221573518579704",
"207200114644072979722676783838489078308"
],
"threshold": 0.9
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@ffa631c4bff59dde59b598011f570e27dfba3515",
"signature_version": "v1",
"deprecated": false,
"target": {
"file": "fs/cifs/cifsfs.c"
},
"id": "CVE-2022-49281-5e0661f8",
"signature_type": "Line"
},
{
"digest": {
"length": 425.0,
"function_hash": "83498461939219979663833073399249737048"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@2fafbc198613823943c106d1ec9b516da692059f",
"signature_version": "v1",
"deprecated": false,
"target": {
"function": "cifs_kill_sb",
"file": "fs/cifs/cifsfs.c"
},
"id": "CVE-2022-49281-6b36328a",
"signature_type": "Function"
},
{
"digest": {
"length": 425.0,
"function_hash": "83498461939219979663833073399249737048"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@47178c7722ac528ea08aa82c3ef9ffa178962d7a",
"signature_version": "v1",
"deprecated": false,
"target": {
"function": "cifs_kill_sb",
"file": "fs/cifs/cifsfs.c"
},
"id": "CVE-2022-49281-72674958",
"signature_type": "Function"
},
{
"digest": {
"length": 425.0,
"function_hash": "83498461939219979663833073399249737048"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@e71f6a3a1d5c826a30384fec587ca7503ef6bde5",
"signature_version": "v1",
"deprecated": false,
"target": {
"function": "cifs_kill_sb",
"file": "fs/cifs/cifsfs.c"
},
"id": "CVE-2022-49281-94f24d30",
"signature_type": "Function"
},
{
"digest": {
"line_hashes": [
"102679656722085459596146461701197048154",
"174368219182515436621766518035265705021",
"260251541665762647202431682237750180288",
"327685174046377993804622407303177597065",
"215841455188445491989878951852117441707",
"37879263314499506412427925113302256101",
"213047557742300054803371111676369948837",
"291192099960749754236465329808119824766",
"114095676367556748196701188946285762370",
"148974884337408024640017040362668904193",
"118795012601828852146467419161800982916",
"162281054016205340564739169894543142813",
"332630599447692148102352212298288389257",
"188026253819484145545749076560939408288",
"121328480388488633953986519107562589615",
"132110019420391987005065221573518579704",
"207200114644072979722676783838489078308"
],
"threshold": 0.9
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@e71f6a3a1d5c826a30384fec587ca7503ef6bde5",
"signature_version": "v1",
"deprecated": false,
"target": {
"file": "fs/cifs/cifsfs.c"
},
"id": "CVE-2022-49281-b64ed00c",
"signature_type": "Line"
},
{
"digest": {
"length": 425.0,
"function_hash": "83498461939219979663833073399249737048"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@ffa631c4bff59dde59b598011f570e27dfba3515",
"signature_version": "v1",
"deprecated": false,
"target": {
"function": "cifs_kill_sb",
"file": "fs/cifs/cifsfs.c"
},
"id": "CVE-2022-49281-e3ff8b05",
"signature_type": "Function"
},
{
"digest": {
"line_hashes": [
"102679656722085459596146461701197048154",
"174368219182515436621766518035265705021",
"260251541665762647202431682237750180288",
"327685174046377993804622407303177597065",
"215841455188445491989878951852117441707",
"37879263314499506412427925113302256101",
"213047557742300054803371111676369948837",
"291192099960749754236465329808119824766",
"114095676367556748196701188946285762370",
"148974884337408024640017040362668904193",
"118795012601828852146467419161800982916",
"162281054016205340564739169894543142813",
"332630599447692148102352212298288389257",
"188026253819484145545749076560939408288",
"121328480388488633953986519107562589615",
"132110019420391987005065221573518579704",
"207200114644072979722676783838489078308"
],
"threshold": 0.9
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@2fafbc198613823943c106d1ec9b516da692059f",
"signature_version": "v1",
"deprecated": false,
"target": {
"file": "fs/cifs/cifsfs.c"
},
"id": "CVE-2022-49281-fcd11217",
"signature_type": "Line"
}
]