In the Linux kernel, the following vulnerability has been resolved:
nfsd: call oprelease, even when opfunc returns an error
For ops with "trivial" replies, nfsd4encodeoperation will shortcut most of the encoding work and skip to just marshalling up the status. One of the things it skips is calling op_release. This could cause a memory leak in the layoutget codepath if there is an error at an inopportune time.
Have the compound processing engine always call oprelease, even when opfunc sets an error in op->status. With this change, we also need nfsd4blockgetdeviceinfoscsi to set the gddevice pointer to NULL on error to avoid a double free.
[
{
"signature_type": "Line",
"digest": {
"threshold": 0.9,
"line_hashes": [
"170291837054886673367336706801665177069",
"317934057092162013172517280496279115596",
"158219625886668569395881314389247216660",
"67297384753686747534719462896292640750",
"298720088419941546044268732617130533043",
"818923388763843426844952616912285398",
"49308629955263501229366739226592365417",
"193452726355911539708432389564357352192",
"125127623655530313526023395081044927866",
"80829888615190287771065034102643325757",
"259882567731812507945813689691825925540",
"331261827020694970603724328893548357400",
"157274759763842726678943426842571081652",
"334912114435211214857200137023050571340",
"308998796272382755261310886616091581974",
"283757050705572278545135724559416943441"
]
},
"target": {
"file": "fs/nfsd/nfs4xdr.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@65a33135e91e6dd661ecdf1194b9d90c49ae3570",
"id": "CVE-2023-53241-1513483c",
"deprecated": false,
"signature_version": "v1"
},
{
"signature_type": "Line",
"digest": {
"threshold": 0.9,
"line_hashes": [
"296652285874278419727168953461081942475",
"326617394263974981546418036304235704005",
"30538640303211922341450306264611853628",
"300066367464299312869924625853365532923"
]
},
"target": {
"file": "fs/nfsd/blocklayout.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@b623a8e5d38a69a3ef8644acb1030dd7c7bc28b3",
"id": "CVE-2023-53241-152cface",
"deprecated": false,
"signature_version": "v1"
},
{
"signature_type": "Function",
"digest": {
"function_hash": "148111786280719119710476640723295622626",
"length": 1122.0
},
"target": {
"file": "fs/nfsd/blocklayout.c",
"function": "nfsd4_block_get_device_info_scsi"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@b623a8e5d38a69a3ef8644acb1030dd7c7bc28b3",
"id": "CVE-2023-53241-167e9b69",
"deprecated": false,
"signature_version": "v1"
},
{
"signature_type": "Function",
"digest": {
"function_hash": "198689308207554960093835278692951535909",
"length": 1731.0
},
"target": {
"file": "fs/nfsd/nfs4xdr.c",
"function": "nfsd4_encode_operation"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@3d0dcada384af22dec764c8374a2997870ec86ae",
"id": "CVE-2023-53241-1767f434",
"deprecated": false,
"signature_version": "v1"
},
{
"signature_type": "Line",
"digest": {
"threshold": 0.9,
"line_hashes": [
"170291837054886673367336706801665177069",
"317934057092162013172517280496279115596",
"158219625886668569395881314389247216660",
"67297384753686747534719462896292640750",
"298720088419941546044268732617130533043",
"818923388763843426844952616912285398",
"49308629955263501229366739226592365417",
"193452726355911539708432389564357352192",
"125127623655530313526023395081044927866",
"80829888615190287771065034102643325757",
"259882567731812507945813689691825925540",
"331261827020694970603724328893548357400",
"157274759763842726678943426842571081652",
"334912114435211214857200137023050571340",
"308998796272382755261310886616091581974",
"283757050705572278545135724559416943441"
]
},
"target": {
"file": "fs/nfsd/nfs4xdr.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@15a8b55dbb1ba154d82627547c5761cac884d810",
"id": "CVE-2023-53241-41d9a36f",
"deprecated": false,
"signature_version": "v1"
},
{
"signature_type": "Line",
"digest": {
"threshold": 0.9,
"line_hashes": [
"170291837054886673367336706801665177069",
"317934057092162013172517280496279115596",
"158219625886668569395881314389247216660",
"67297384753686747534719462896292640750",
"298720088419941546044268732617130533043",
"818923388763843426844952616912285398",
"49308629955263501229366739226592365417",
"193452726355911539708432389564357352192",
"125127623655530313526023395081044927866",
"80829888615190287771065034102643325757",
"259882567731812507945813689691825925540",
"331261827020694970603724328893548357400",
"157274759763842726678943426842571081652",
"334912114435211214857200137023050571340",
"308998796272382755261310886616091581974",
"283757050705572278545135724559416943441"
]
},
"target": {
"file": "fs/nfsd/nfs4xdr.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@3d0dcada384af22dec764c8374a2997870ec86ae",
"id": "CVE-2023-53241-8dce06d1",
"deprecated": false,
"signature_version": "v1"
},
{
"signature_type": "Function",
"digest": {
"function_hash": "148111786280719119710476640723295622626",
"length": 1122.0
},
"target": {
"file": "fs/nfsd/blocklayout.c",
"function": "nfsd4_block_get_device_info_scsi"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@3d0dcada384af22dec764c8374a2997870ec86ae",
"id": "CVE-2023-53241-93c8c8ff",
"deprecated": false,
"signature_version": "v1"
},
{
"signature_type": "Line",
"digest": {
"threshold": 0.9,
"line_hashes": [
"296652285874278419727168953461081942475",
"326617394263974981546418036304235704005",
"30538640303211922341450306264611853628",
"300066367464299312869924625853365532923"
]
},
"target": {
"file": "fs/nfsd/blocklayout.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@3d0dcada384af22dec764c8374a2997870ec86ae",
"id": "CVE-2023-53241-9468de56",
"deprecated": false,
"signature_version": "v1"
},
{
"signature_type": "Line",
"digest": {
"threshold": 0.9,
"line_hashes": [
"296652285874278419727168953461081942475",
"326617394263974981546418036304235704005",
"30538640303211922341450306264611853628",
"300066367464299312869924625853365532923"
]
},
"target": {
"file": "fs/nfsd/blocklayout.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@15a8b55dbb1ba154d82627547c5761cac884d810",
"id": "CVE-2023-53241-9cf3b775",
"deprecated": false,
"signature_version": "v1"
},
{
"signature_type": "Function",
"digest": {
"function_hash": "198689308207554960093835278692951535909",
"length": 1731.0
},
"target": {
"file": "fs/nfsd/nfs4xdr.c",
"function": "nfsd4_encode_operation"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@15a8b55dbb1ba154d82627547c5761cac884d810",
"id": "CVE-2023-53241-ae830e7b",
"deprecated": false,
"signature_version": "v1"
},
{
"signature_type": "Line",
"digest": {
"threshold": 0.9,
"line_hashes": [
"170291837054886673367336706801665177069",
"317934057092162013172517280496279115596",
"158219625886668569395881314389247216660",
"67297384753686747534719462896292640750",
"298720088419941546044268732617130533043",
"818923388763843426844952616912285398",
"49308629955263501229366739226592365417",
"193452726355911539708432389564357352192",
"125127623655530313526023395081044927866",
"80829888615190287771065034102643325757",
"259882567731812507945813689691825925540",
"331261827020694970603724328893548357400",
"157274759763842726678943426842571081652",
"334912114435211214857200137023050571340",
"308998796272382755261310886616091581974",
"283757050705572278545135724559416943441"
]
},
"target": {
"file": "fs/nfsd/nfs4xdr.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@b11d8162c24af4a351d21e2c804d25ca493305e3",
"id": "CVE-2023-53241-bec66bc0",
"deprecated": false,
"signature_version": "v1"
},
{
"signature_type": "Function",
"digest": {
"function_hash": "198689308207554960093835278692951535909",
"length": 1731.0
},
"target": {
"file": "fs/nfsd/nfs4xdr.c",
"function": "nfsd4_encode_operation"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@b623a8e5d38a69a3ef8644acb1030dd7c7bc28b3",
"id": "CVE-2023-53241-bf7feace",
"deprecated": false,
"signature_version": "v1"
},
{
"signature_type": "Function",
"digest": {
"function_hash": "198689308207554960093835278692951535909",
"length": 1731.0
},
"target": {
"file": "fs/nfsd/nfs4xdr.c",
"function": "nfsd4_encode_operation"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@65a33135e91e6dd661ecdf1194b9d90c49ae3570",
"id": "CVE-2023-53241-cf9149dd",
"deprecated": false,
"signature_version": "v1"
},
{
"signature_type": "Line",
"digest": {
"threshold": 0.9,
"line_hashes": [
"170291837054886673367336706801665177069",
"317934057092162013172517280496279115596",
"158219625886668569395881314389247216660",
"67297384753686747534719462896292640750",
"298720088419941546044268732617130533043",
"818923388763843426844952616912285398",
"49308629955263501229366739226592365417",
"193452726355911539708432389564357352192",
"125127623655530313526023395081044927866",
"80829888615190287771065034102643325757",
"259882567731812507945813689691825925540",
"331261827020694970603724328893548357400",
"157274759763842726678943426842571081652",
"334912114435211214857200137023050571340",
"308998796272382755261310886616091581974",
"283757050705572278545135724559416943441"
]
},
"target": {
"file": "fs/nfsd/nfs4xdr.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@b623a8e5d38a69a3ef8644acb1030dd7c7bc28b3",
"id": "CVE-2023-53241-d0142844",
"deprecated": false,
"signature_version": "v1"
},
{
"signature_type": "Function",
"digest": {
"function_hash": "198689308207554960093835278692951535909",
"length": 1731.0
},
"target": {
"file": "fs/nfsd/nfs4xdr.c",
"function": "nfsd4_encode_operation"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@b11d8162c24af4a351d21e2c804d25ca493305e3",
"id": "CVE-2023-53241-e6d0ddc6",
"deprecated": false,
"signature_version": "v1"
},
{
"signature_type": "Function",
"digest": {
"function_hash": "148111786280719119710476640723295622626",
"length": 1122.0
},
"target": {
"file": "fs/nfsd/blocklayout.c",
"function": "nfsd4_block_get_device_info_scsi"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@15a8b55dbb1ba154d82627547c5761cac884d810",
"id": "CVE-2023-53241-ec9229f9",
"deprecated": false,
"signature_version": "v1"
}
]