In the Linux kernel, the following vulnerability has been resolved:
drm/nouveau: fix a use-after-free in nouveaugemprimeimportsg_table()
nouveauboinit() is backed by ttmboinit() and ferries its return code back to the caller. On failures, ttm will call nouveaubodelttm() and free the memory.Thus, when nouveauboinit() returns an error, the gem object has already been released. Then the call to nouveaubo_ref() will use the freed "nvbo->bo" and lead to a use-after-free bug.
We should delete the call to nouveauboref() to avoid the use-after-free.
[
{
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@56ee9577915dc06f55309901012a9ef68dbdb5a8",
"deprecated": false,
"id": "CVE-2022-50454-28b6698e",
"signature_type": "Line",
"digest": {
"threshold": 0.9,
"line_hashes": [
"204104586971765841713124276409686529389",
"63428757113077675483644758139615040209",
"205727355067066709794893485524821524341",
"66200732357531759078328877775084504084"
]
},
"target": {
"file": "drivers/gpu/drm/nouveau/nouveau_prime.c"
}
},
{
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@861f085f81fd569b02cc2c11165a9e6cca144424",
"deprecated": false,
"id": "CVE-2022-50454-29d6ec7d",
"signature_type": "Line",
"digest": {
"threshold": 0.9,
"line_hashes": [
"56572722295594160899053255209294857655",
"17318508143887821469557047041637159384",
"205727355067066709794893485524821524341",
"66200732357531759078328877775084504084"
]
},
"target": {
"file": "drivers/gpu/drm/nouveau/nouveau_prime.c"
}
},
{
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@540dfd188ea2940582841c1c220bd035a7db0e51",
"deprecated": false,
"id": "CVE-2022-50454-3286cc8f",
"signature_type": "Function",
"digest": {
"function_hash": "111648261333623280171403737324913891533",
"length": 891.0
},
"target": {
"function": "nouveau_gem_prime_import_sg_table",
"file": "drivers/gpu/drm/nouveau/nouveau_prime.c"
}
},
{
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@3aeda2fe6517cc52663d4ce3588dd43f0d4124a7",
"deprecated": false,
"id": "CVE-2022-50454-3c7c9d9c",
"signature_type": "Line",
"digest": {
"threshold": 0.9,
"line_hashes": [
"56572722295594160899053255209294857655",
"17318508143887821469557047041637159384",
"205727355067066709794893485524821524341",
"66200732357531759078328877775084504084"
]
},
"target": {
"file": "drivers/gpu/drm/nouveau/nouveau_prime.c"
}
},
{
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@5d6093c49c098d86c7b136aba9922df44aeb6944",
"deprecated": false,
"id": "CVE-2022-50454-3f34ed5e",
"signature_type": "Function",
"digest": {
"function_hash": "50143811105963634479178736147679945429",
"length": 835.0
},
"target": {
"function": "nouveau_gem_prime_import_sg_table",
"file": "drivers/gpu/drm/nouveau/nouveau_prime.c"
}
},
{
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@3aeda2fe6517cc52663d4ce3588dd43f0d4124a7",
"deprecated": false,
"id": "CVE-2022-50454-56edbaac",
"signature_type": "Function",
"digest": {
"function_hash": "111648261333623280171403737324913891533",
"length": 891.0
},
"target": {
"function": "nouveau_gem_prime_import_sg_table",
"file": "drivers/gpu/drm/nouveau/nouveau_prime.c"
}
},
{
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@7d80473e9f12548ac05b36af4fb9ce80f2f73509",
"deprecated": false,
"id": "CVE-2022-50454-78b58e72",
"signature_type": "Line",
"digest": {
"threshold": 0.9,
"line_hashes": [
"56572722295594160899053255209294857655",
"17318508143887821469557047041637159384",
"205727355067066709794893485524821524341",
"66200732357531759078328877775084504084"
]
},
"target": {
"file": "drivers/gpu/drm/nouveau/nouveau_prime.c"
}
},
{
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@540dfd188ea2940582841c1c220bd035a7db0e51",
"deprecated": false,
"id": "CVE-2022-50454-8a4c1357",
"signature_type": "Line",
"digest": {
"threshold": 0.9,
"line_hashes": [
"56572722295594160899053255209294857655",
"17318508143887821469557047041637159384",
"205727355067066709794893485524821524341",
"66200732357531759078328877775084504084"
]
},
"target": {
"file": "drivers/gpu/drm/nouveau/nouveau_prime.c"
}
},
{
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@861f085f81fd569b02cc2c11165a9e6cca144424",
"deprecated": false,
"id": "CVE-2022-50454-917a9266",
"signature_type": "Function",
"digest": {
"function_hash": "111648261333623280171403737324913891533",
"length": 891.0
},
"target": {
"function": "nouveau_gem_prime_import_sg_table",
"file": "drivers/gpu/drm/nouveau/nouveau_prime.c"
}
},
{
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@7d80473e9f12548ac05b36af4fb9ce80f2f73509",
"deprecated": false,
"id": "CVE-2022-50454-d6d9e3cd",
"signature_type": "Function",
"digest": {
"function_hash": "111648261333623280171403737324913891533",
"length": 891.0
},
"target": {
"function": "nouveau_gem_prime_import_sg_table",
"file": "drivers/gpu/drm/nouveau/nouveau_prime.c"
}
},
{
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@56ee9577915dc06f55309901012a9ef68dbdb5a8",
"deprecated": false,
"id": "CVE-2022-50454-e91c8d59",
"signature_type": "Function",
"digest": {
"function_hash": "36281069395191152382696233778282302159",
"length": 834.0
},
"target": {
"function": "nouveau_gem_prime_import_sg_table",
"file": "drivers/gpu/drm/nouveau/nouveau_prime.c"
}
},
{
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@5d6093c49c098d86c7b136aba9922df44aeb6944",
"deprecated": false,
"id": "CVE-2022-50454-f8781f26",
"signature_type": "Line",
"digest": {
"threshold": 0.9,
"line_hashes": [
"56572722295594160899053255209294857655",
"17318508143887821469557047041637159384",
"205727355067066709794893485524821524341",
"66200732357531759078328877775084504084"
]
},
"target": {
"file": "drivers/gpu/drm/nouveau/nouveau_prime.c"
}
}
]