In the Linux kernel, the following vulnerability has been resolved:
NFSv4.2: fix reference count leaks in nfs42proccopynotify()
[You don't often get email from xiongx18@fudan.edu.cn. Learn why this is important at http://aka.ms/LearnAboutSenderIdentification.]
The reference counting issue happens in two error paths in the
function nfs42proccopynotify(). In both error paths, the function
simply returns the error code and forgets to balance the refcount of
object ctx, bumped by getnfsopen_context() earlier, which may
cause refcount leaks.
Fix it by balancing refcount of the ctx object before the function
returns in both error paths.
[
{
"id": "CVE-2022-49103-0518bf52",
"target": {
"function": "_nfs42_proc_copy_notify",
"file": "fs/nfs/nfs42proc.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@9b9feec97c1fc7dd9bb69f62c4905cddf1801599",
"signature_type": "Function",
"digest": {
"function_hash": "78670609561055663835346824278799670247",
"length": 804.0
},
"deprecated": false,
"signature_version": "v1"
},
{
"id": "CVE-2022-49103-0bb2c208",
"target": {
"function": "_nfs42_proc_copy_notify",
"file": "fs/nfs/nfs42proc.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@b7f114edd54326f730a754547e7cfb197b5bc132",
"signature_type": "Function",
"digest": {
"function_hash": "90969117497640168053616225272653647008",
"length": 860.0
},
"deprecated": false,
"signature_version": "v1"
},
{
"id": "CVE-2022-49103-1e394198",
"target": {
"function": "_nfs42_proc_copy_notify",
"file": "fs/nfs/nfs42proc.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@b37f482ba9f0e6382c188e3fccf6c4b2fdc938eb",
"signature_type": "Function",
"digest": {
"function_hash": "78670609561055663835346824278799670247",
"length": 804.0
},
"deprecated": false,
"signature_version": "v1"
},
{
"id": "CVE-2022-49103-2a97df92",
"target": {
"file": "fs/nfs/nfs42proc.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@b7f114edd54326f730a754547e7cfb197b5bc132",
"signature_type": "Line",
"digest": {
"threshold": 0.9,
"line_hashes": [
"187095792098703423634972228617117613759",
"288648775981339609719768597003695163675",
"22067032207715111782041061919954544941",
"330792659354516852596560958048392647329",
"319014804779210134198177235096861359310",
"120066879651631924719341829462561804212",
"290869455745958701086157445864657522563",
"153913628402427596680237162861931441063",
"254936881682073407060939722134025115991",
"205848632770896961195076765941687741554",
"321071412929322627561958059581836010298",
"263200574865105484459398758323932544849"
]
},
"deprecated": false,
"signature_version": "v1"
},
{
"id": "CVE-2022-49103-3d0d48af",
"target": {
"file": "fs/nfs/nfs42proc.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@f46f632f9cfae4b2e3635fa58840a8ec584c42e3",
"signature_type": "Line",
"digest": {
"threshold": 0.9,
"line_hashes": [
"187095792098703423634972228617117613759",
"288648775981339609719768597003695163675",
"22067032207715111782041061919954544941",
"330792659354516852596560958048392647329",
"319014804779210134198177235096861359310",
"120066879651631924719341829462561804212",
"290869455745958701086157445864657522563",
"153913628402427596680237162861931441063",
"254936881682073407060939722134025115991",
"205848632770896961195076765941687741554",
"321071412929322627561958059581836010298",
"263200574865105484459398758323932544849"
]
},
"deprecated": false,
"signature_version": "v1"
},
{
"id": "CVE-2022-49103-892f5c75",
"target": {
"file": "fs/nfs/nfs42proc.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@9b9feec97c1fc7dd9bb69f62c4905cddf1801599",
"signature_type": "Line",
"digest": {
"threshold": 0.9,
"line_hashes": [
"187095792098703423634972228617117613759",
"288648775981339609719768597003695163675",
"22067032207715111782041061919954544941",
"330792659354516852596560958048392647329",
"319014804779210134198177235096861359310",
"120066879651631924719341829462561804212",
"290869455745958701086157445864657522563",
"153913628402427596680237162861931441063",
"254936881682073407060939722134025115991",
"210932363890140197393748633513326970729",
"321071412929322627561958059581836010298",
"263200574865105484459398758323932544849"
]
},
"deprecated": false,
"signature_version": "v1"
},
{
"id": "CVE-2022-49103-956b28ee",
"target": {
"function": "_nfs42_proc_copy_notify",
"file": "fs/nfs/nfs42proc.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@f46f632f9cfae4b2e3635fa58840a8ec584c42e3",
"signature_type": "Function",
"digest": {
"function_hash": "90969117497640168053616225272653647008",
"length": 860.0
},
"deprecated": false,
"signature_version": "v1"
},
{
"id": "CVE-2022-49103-bd9f02ab",
"target": {
"function": "_nfs42_proc_copy_notify",
"file": "fs/nfs/nfs42proc.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@fb73bf6305f4eb8f0cf9a61ee874d55f019d6dc4",
"signature_type": "Function",
"digest": {
"function_hash": "90969117497640168053616225272653647008",
"length": 860.0
},
"deprecated": false,
"signature_version": "v1"
},
{
"id": "CVE-2022-49103-c8bced08",
"target": {
"file": "fs/nfs/nfs42proc.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@b37f482ba9f0e6382c188e3fccf6c4b2fdc938eb",
"signature_type": "Line",
"digest": {
"threshold": 0.9,
"line_hashes": [
"187095792098703423634972228617117613759",
"288648775981339609719768597003695163675",
"22067032207715111782041061919954544941",
"330792659354516852596560958048392647329",
"319014804779210134198177235096861359310",
"120066879651631924719341829462561804212",
"290869455745958701086157445864657522563",
"153913628402427596680237162861931441063",
"254936881682073407060939722134025115991",
"210932363890140197393748633513326970729",
"321071412929322627561958059581836010298",
"263200574865105484459398758323932544849"
]
},
"deprecated": false,
"signature_version": "v1"
},
{
"id": "CVE-2022-49103-ef30171f",
"target": {
"file": "fs/nfs/nfs42proc.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@fb73bf6305f4eb8f0cf9a61ee874d55f019d6dc4",
"signature_type": "Line",
"digest": {
"threshold": 0.9,
"line_hashes": [
"187095792098703423634972228617117613759",
"288648775981339609719768597003695163675",
"22067032207715111782041061919954544941",
"330792659354516852596560958048392647329",
"319014804779210134198177235096861359310",
"120066879651631924719341829462561804212",
"290869455745958701086157445864657522563",
"153913628402427596680237162861931441063",
"254936881682073407060939722134025115991",
"205848632770896961195076765941687741554",
"321071412929322627561958059581836010298",
"263200574865105484459398758323932544849"
]
},
"deprecated": false,
"signature_version": "v1"
}
]