CVE-2022-48675

Source
https://nvd.nist.gov/vuln/detail/CVE-2022-48675
Import Source
https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2022-48675.json
JSON Data
https://api.osv.dev/v1/vulns/CVE-2022-48675
Downstream
Related
Published
2024-05-03T14:52:06Z
Modified
2025-10-21T08:24:45.271106Z
Summary
IB/core: Fix a nested dead lock as part of ODP flow
Details

In the Linux kernel, the following vulnerability has been resolved:

IB/core: Fix a nested dead lock as part of ODP flow

Fix a nested dead lock as part of ODP flow by using mmput_async().

From the below call trace [1] can see that calling mmput() once we have the umemodp->umemmutex locked as required by ibumemodpmapdmaandlock() might trigger in the same task the exitmmap()->mmunotifierrelease()->mlx5ibinvalidaterange() which may dead lock when trying to lock the same mutex.

Moving to use mmputasync() will solve the problem as the above exitmmap() flow will be called in other task and will be executed once the lock will be available.

[1] [64843.077665] task:kworker/u133:2 state:D stack: 0 pid:80906 ppid: 2 flags:0x00004000 [64843.077672] Workqueue: mlx5ibpagefault mlx5ibeqepfaction [mlx5ib] [64843.077719] Call Trace: [64843.077722] <TASK> [64843.077724] _schedule+0x23d/0x590 [64843.077729] schedule+0x4e/0xb0 [64843.077735] schedulepreemptdisabled+0xe/0x10 [64843.077740] _mutexlock.constprop.0+0x263/0x490 [64843.077747] _mutexlockslowpath+0x13/0x20 [64843.077752] mutexlock+0x34/0x40 [64843.077758] mlx5ibinvalidaterange+0x48/0x270 [mlx5ib] [64843.077808] _mmunotifierrelease+0x1a4/0x200 [64843.077816] exitmmap+0x1bc/0x200 [64843.077822] ? walkpagerange+0x9c/0x120 [64843.077828] ? _condresched+0x1a/0x50 [64843.077833] ? mutexlock+0x13/0x40 [64843.077839] ? uprobeclearstate+0xac/0x120 [64843.077860] mmput+0x5f/0x140 [64843.077867] ibumemodpmapdmaandlock+0x21b/0x580 [ibcore] [64843.077931] pagefaultrealmr+0x9a/0x140 [mlx5ib] [64843.077962] pagefaultmr+0xb4/0x550 [mlx5ib] [64843.077992] pagefaultsingledatasegment.constprop.0+0x2ac/0x560 [mlx5ib] [64843.078022] mlx5ibeqepfaction+0x528/0x780 [mlx5ib] [64843.078051] processonework+0x22b/0x3d0 [64843.078059] workerthread+0x53/0x410 [64843.078065] ? processonework+0x3d0/0x3d0 [64843.078073] kthread+0x12a/0x150 [64843.078079] ? setkthreadstruct+0x50/0x50 [64843.078085] retfromfork+0x22/0x30 [64843.078093] </TASK>

References

Affected packages

Git / git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git

Affected ranges

Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
36f30e486dce22345c2dd3a3ba439c12cd67f6ba
Fixed
e8de6cb5755eae7b793d8c00c8696c8667d44a7f
Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
36f30e486dce22345c2dd3a3ba439c12cd67f6ba
Fixed
819110054b14d7272b4188db997a3d80f75ab785
Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
36f30e486dce22345c2dd3a3ba439c12cd67f6ba
Fixed
83c43fd872e32c8071d5582eb7c40f573a8342f3
Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
36f30e486dce22345c2dd3a3ba439c12cd67f6ba
Fixed
85eaeb5058f0f04dffb124c97c86b4f18db0b833

Affected versions

v5.*

v5.10
v5.10-rc1
v5.10-rc2
v5.10-rc3
v5.10-rc4
v5.10-rc5
v5.10-rc6
v5.10-rc7
v5.10.1
v5.10.10
v5.10.100
v5.10.101
v5.10.102
v5.10.103
v5.10.104
v5.10.105
v5.10.106
v5.10.107
v5.10.108
v5.10.109
v5.10.11
v5.10.110
v5.10.111
v5.10.112
v5.10.113
v5.10.114
v5.10.115
v5.10.116
v5.10.117
v5.10.118
v5.10.119
v5.10.12
v5.10.120
v5.10.121
v5.10.122
v5.10.123
v5.10.124
v5.10.125
v5.10.126
v5.10.127
v5.10.128
v5.10.129
v5.10.13
v5.10.130
v5.10.131
v5.10.132
v5.10.133
v5.10.134
v5.10.135
v5.10.136
v5.10.137
v5.10.138
v5.10.139
v5.10.14
v5.10.140
v5.10.141
v5.10.142
v5.10.15
v5.10.16
v5.10.17
v5.10.18
v5.10.19
v5.10.2
v5.10.20
v5.10.21
v5.10.22
v5.10.23
v5.10.24
v5.10.25
v5.10.26
v5.10.27
v5.10.28
v5.10.29
v5.10.3
v5.10.30
v5.10.31
v5.10.32
v5.10.33
v5.10.34
v5.10.35
v5.10.36
v5.10.37
v5.10.38
v5.10.39
v5.10.4
v5.10.40
v5.10.41
v5.10.42
v5.10.43
v5.10.44
v5.10.45
v5.10.46
v5.10.47
v5.10.48
v5.10.49
v5.10.5
v5.10.50
v5.10.51
v5.10.52
v5.10.53
v5.10.54
v5.10.55
v5.10.56
v5.10.57
v5.10.58
v5.10.59
v5.10.6
v5.10.60
v5.10.61
v5.10.62
v5.10.63
v5.10.64
v5.10.65
v5.10.66
v5.10.67
v5.10.68
v5.10.69
v5.10.7
v5.10.70
v5.10.71
v5.10.72
v5.10.73
v5.10.74
v5.10.75
v5.10.76
v5.10.77
v5.10.78
v5.10.79
v5.10.8
v5.10.80
v5.10.81
v5.10.82
v5.10.83
v5.10.84
v5.10.85
v5.10.86
v5.10.87
v5.10.88
v5.10.89
v5.10.9
v5.10.90
v5.10.91
v5.10.92
v5.10.93
v5.10.94
v5.10.95
v5.10.96
v5.10.97
v5.10.98
v5.10.99
v5.11
v5.11-rc1
v5.11-rc2
v5.11-rc3
v5.11-rc4
v5.11-rc5
v5.11-rc6
v5.11-rc7
v5.12
v5.12-rc1
v5.12-rc1-dontuse
v5.12-rc2
v5.12-rc3
v5.12-rc4
v5.12-rc5
v5.12-rc6
v5.12-rc7
v5.12-rc8
v5.13
v5.13-rc1
v5.13-rc2
v5.13-rc3
v5.13-rc4
v5.13-rc5
v5.13-rc6
v5.13-rc7
v5.14
v5.14-rc1
v5.14-rc2
v5.14-rc3
v5.14-rc4
v5.14-rc5
v5.14-rc6
v5.14-rc7
v5.15
v5.15-rc1
v5.15-rc2
v5.15-rc3
v5.15-rc4
v5.15-rc5
v5.15-rc6
v5.15-rc7
v5.15.1
v5.15.10
v5.15.11
v5.15.12
v5.15.13
v5.15.14
v5.15.15
v5.15.16
v5.15.17
v5.15.18
v5.15.19
v5.15.2
v5.15.20
v5.15.21
v5.15.22
v5.15.23
v5.15.24
v5.15.25
v5.15.26
v5.15.27
v5.15.28
v5.15.29
v5.15.3
v5.15.30
v5.15.31
v5.15.32
v5.15.33
v5.15.34
v5.15.35
v5.15.36
v5.15.37
v5.15.38
v5.15.39
v5.15.4
v5.15.40
v5.15.41
v5.15.42
v5.15.43
v5.15.44
v5.15.45
v5.15.46
v5.15.47
v5.15.48
v5.15.49
v5.15.5
v5.15.50
v5.15.51
v5.15.52
v5.15.53
v5.15.54
v5.15.55
v5.15.56
v5.15.57
v5.15.58
v5.15.59
v5.15.6
v5.15.60
v5.15.61
v5.15.62
v5.15.63
v5.15.64
v5.15.65
v5.15.66
v5.15.67
v5.15.7
v5.15.8
v5.15.9
v5.16
v5.16-rc1
v5.16-rc2
v5.16-rc3
v5.16-rc4
v5.16-rc5
v5.16-rc6
v5.16-rc7
v5.16-rc8
v5.17
v5.17-rc1
v5.17-rc2
v5.17-rc3
v5.17-rc4
v5.17-rc5
v5.17-rc6
v5.17-rc7
v5.17-rc8
v5.18
v5.18-rc1
v5.18-rc2
v5.18-rc3
v5.18-rc4
v5.18-rc5
v5.18-rc6
v5.18-rc7
v5.19
v5.19-rc1
v5.19-rc2
v5.19-rc3
v5.19-rc4
v5.19-rc5
v5.19-rc6
v5.19-rc7
v5.19-rc8
v5.19.1
v5.19.2
v5.19.3
v5.19.4
v5.19.5
v5.19.6
v5.19.7
v5.19.8
v5.9
v5.9-rc6
v5.9-rc7
v5.9-rc8

v6.*

v6.0-rc1

Database specific

vanir_signatures

[
    {
        "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@85eaeb5058f0f04dffb124c97c86b4f18db0b833",
        "signature_version": "v1",
        "deprecated": false,
        "id": "CVE-2022-48675-6abd7d35",
        "target": {
            "file": "kernel/fork.c"
        },
        "signature_type": "Line",
        "digest": {
            "threshold": 0.9,
            "line_hashes": [
                "131847248682038244829605110310442376317",
                "234710427474000012139468220004122520208",
                "245749897712557947501653970831638616650",
                "37297183797916935434365053296204673791"
            ]
        }
    },
    {
        "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@819110054b14d7272b4188db997a3d80f75ab785",
        "signature_version": "v1",
        "deprecated": false,
        "id": "CVE-2022-48675-6e7dc6e4",
        "target": {
            "file": "kernel/fork.c"
        },
        "signature_type": "Line",
        "digest": {
            "threshold": 0.9,
            "line_hashes": [
                "131847248682038244829605110310442376317",
                "234710427474000012139468220004122520208",
                "245749897712557947501653970831638616650",
                "37297183797916935434365053296204673791"
            ]
        }
    },
    {
        "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@e8de6cb5755eae7b793d8c00c8696c8667d44a7f",
        "signature_version": "v1",
        "deprecated": false,
        "id": "CVE-2022-48675-75b4fc6e",
        "target": {
            "file": "kernel/fork.c"
        },
        "signature_type": "Line",
        "digest": {
            "threshold": 0.9,
            "line_hashes": [
                "131847248682038244829605110310442376317",
                "234710427474000012139468220004122520208",
                "152217353732986544523039783274130420766",
                "195901067626371919715513609363119554371"
            ]
        }
    },
    {
        "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@85eaeb5058f0f04dffb124c97c86b4f18db0b833",
        "signature_version": "v1",
        "deprecated": false,
        "id": "CVE-2022-48675-9490f3ce",
        "target": {
            "file": "drivers/infiniband/core/umem_odp.c"
        },
        "signature_type": "Line",
        "digest": {
            "threshold": 0.9,
            "line_hashes": [
                "239954435312708995082565332823943124931",
                "124260163642655162333948302823255061907",
                "192685988291297950808375564838379795520",
                "279640156034180848895394221759911539846"
            ]
        }
    },
    {
        "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@e8de6cb5755eae7b793d8c00c8696c8667d44a7f",
        "signature_version": "v1",
        "deprecated": false,
        "id": "CVE-2022-48675-c80b7181",
        "target": {
            "file": "drivers/infiniband/core/umem_odp.c"
        },
        "signature_type": "Line",
        "digest": {
            "threshold": 0.9,
            "line_hashes": [
                "239954435312708995082565332823943124931",
                "124260163642655162333948302823255061907",
                "192685988291297950808375564838379795520",
                "279640156034180848895394221759911539846"
            ]
        }
    },
    {
        "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@819110054b14d7272b4188db997a3d80f75ab785",
        "signature_version": "v1",
        "deprecated": false,
        "id": "CVE-2022-48675-ce19ff46",
        "target": {
            "file": "drivers/infiniband/core/umem_odp.c"
        },
        "signature_type": "Line",
        "digest": {
            "threshold": 0.9,
            "line_hashes": [
                "239954435312708995082565332823943124931",
                "124260163642655162333948302823255061907",
                "192685988291297950808375564838379795520",
                "279640156034180848895394221759911539846"
            ]
        }
    },
    {
        "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@83c43fd872e32c8071d5582eb7c40f573a8342f3",
        "signature_version": "v1",
        "deprecated": false,
        "id": "CVE-2022-48675-f8e2c674",
        "target": {
            "file": "kernel/fork.c"
        },
        "signature_type": "Line",
        "digest": {
            "threshold": 0.9,
            "line_hashes": [
                "131847248682038244829605110310442376317",
                "234710427474000012139468220004122520208",
                "245749897712557947501653970831638616650",
                "37297183797916935434365053296204673791"
            ]
        }
    },
    {
        "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@83c43fd872e32c8071d5582eb7c40f573a8342f3",
        "signature_version": "v1",
        "deprecated": false,
        "id": "CVE-2022-48675-fead5131",
        "target": {
            "file": "drivers/infiniband/core/umem_odp.c"
        },
        "signature_type": "Line",
        "digest": {
            "threshold": 0.9,
            "line_hashes": [
                "239954435312708995082565332823943124931",
                "124260163642655162333948302823255061907",
                "192685988291297950808375564838379795520",
                "279640156034180848895394221759911539846"
            ]
        }
    }
]

Linux / Kernel

Package

Name
Kernel

Affected ranges

Type
ECOSYSTEM
Events
Introduced
5.10.0
Fixed
5.10.143
Type
ECOSYSTEM
Events
Introduced
5.11.0
Fixed
5.15.68
Type
ECOSYSTEM
Events
Introduced
5.16.0
Fixed
5.19.9