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.
{ "vanir_signatures": [ { "id": "CVE-2023-53241-1513483c", "signature_type": "Line", "target": { "file": "fs/nfsd/nfs4xdr.c" }, "deprecated": false, "digest": { "line_hashes": [ "170291837054886673367336706801665177069", "317934057092162013172517280496279115596", "158219625886668569395881314389247216660", "67297384753686747534719462896292640750", "298720088419941546044268732617130533043", "818923388763843426844952616912285398", "49308629955263501229366739226592365417", "193452726355911539708432389564357352192", "125127623655530313526023395081044927866", "80829888615190287771065034102643325757", "259882567731812507945813689691825925540", "331261827020694970603724328893548357400", "157274759763842726678943426842571081652", "334912114435211214857200137023050571340", "308998796272382755261310886616091581974", "283757050705572278545135724559416943441" ], "threshold": 0.9 }, "signature_version": "v1", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@65a33135e91e6dd661ecdf1194b9d90c49ae3570" }, { "id": "CVE-2023-53241-152cface", "signature_type": "Line", "target": { "file": "fs/nfsd/blocklayout.c" }, "deprecated": false, "digest": { "line_hashes": [ "296652285874278419727168953461081942475", "326617394263974981546418036304235704005", "30538640303211922341450306264611853628", "300066367464299312869924625853365532923" ], "threshold": 0.9 }, "signature_version": "v1", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@b623a8e5d38a69a3ef8644acb1030dd7c7bc28b3" }, { "id": "CVE-2023-53241-167e9b69", "signature_type": "Function", "target": { "file": "fs/nfsd/blocklayout.c", "function": "nfsd4_block_get_device_info_scsi" }, "deprecated": false, "digest": { "length": 1122.0, "function_hash": "148111786280719119710476640723295622626" }, "signature_version": "v1", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@b623a8e5d38a69a3ef8644acb1030dd7c7bc28b3" }, { "id": "CVE-2023-53241-1767f434", "signature_type": "Function", "target": { "file": "fs/nfsd/nfs4xdr.c", "function": "nfsd4_encode_operation" }, "deprecated": false, "digest": { "length": 1731.0, "function_hash": "198689308207554960093835278692951535909" }, "signature_version": "v1", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@3d0dcada384af22dec764c8374a2997870ec86ae" }, { "id": "CVE-2023-53241-41d9a36f", "signature_type": "Line", "target": { "file": "fs/nfsd/nfs4xdr.c" }, "deprecated": false, "digest": { "line_hashes": [ "170291837054886673367336706801665177069", "317934057092162013172517280496279115596", "158219625886668569395881314389247216660", "67297384753686747534719462896292640750", "298720088419941546044268732617130533043", "818923388763843426844952616912285398", "49308629955263501229366739226592365417", "193452726355911539708432389564357352192", "125127623655530313526023395081044927866", "80829888615190287771065034102643325757", "259882567731812507945813689691825925540", "331261827020694970603724328893548357400", "157274759763842726678943426842571081652", "334912114435211214857200137023050571340", "308998796272382755261310886616091581974", "283757050705572278545135724559416943441" ], "threshold": 0.9 }, "signature_version": "v1", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@15a8b55dbb1ba154d82627547c5761cac884d810" }, { "id": "CVE-2023-53241-8dce06d1", "signature_type": "Line", "target": { "file": "fs/nfsd/nfs4xdr.c" }, "deprecated": false, "digest": { "line_hashes": [ "170291837054886673367336706801665177069", "317934057092162013172517280496279115596", "158219625886668569395881314389247216660", "67297384753686747534719462896292640750", "298720088419941546044268732617130533043", "818923388763843426844952616912285398", "49308629955263501229366739226592365417", "193452726355911539708432389564357352192", "125127623655530313526023395081044927866", "80829888615190287771065034102643325757", "259882567731812507945813689691825925540", "331261827020694970603724328893548357400", "157274759763842726678943426842571081652", "334912114435211214857200137023050571340", "308998796272382755261310886616091581974", "283757050705572278545135724559416943441" ], "threshold": 0.9 }, "signature_version": "v1", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@3d0dcada384af22dec764c8374a2997870ec86ae" }, { "id": "CVE-2023-53241-93c8c8ff", "signature_type": "Function", "target": { "file": "fs/nfsd/blocklayout.c", "function": "nfsd4_block_get_device_info_scsi" }, "deprecated": false, "digest": { "length": 1122.0, "function_hash": "148111786280719119710476640723295622626" }, "signature_version": "v1", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@3d0dcada384af22dec764c8374a2997870ec86ae" }, { "id": "CVE-2023-53241-9468de56", "signature_type": "Line", "target": { "file": "fs/nfsd/blocklayout.c" }, "deprecated": false, "digest": { "line_hashes": [ "296652285874278419727168953461081942475", "326617394263974981546418036304235704005", "30538640303211922341450306264611853628", "300066367464299312869924625853365532923" ], "threshold": 0.9 }, "signature_version": "v1", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@3d0dcada384af22dec764c8374a2997870ec86ae" }, { "id": "CVE-2023-53241-9cf3b775", "signature_type": "Line", "target": { "file": "fs/nfsd/blocklayout.c" }, "deprecated": false, "digest": { "line_hashes": [ "296652285874278419727168953461081942475", "326617394263974981546418036304235704005", "30538640303211922341450306264611853628", "300066367464299312869924625853365532923" ], "threshold": 0.9 }, "signature_version": "v1", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@15a8b55dbb1ba154d82627547c5761cac884d810" }, { "id": "CVE-2023-53241-ae830e7b", "signature_type": "Function", "target": { "file": "fs/nfsd/nfs4xdr.c", "function": "nfsd4_encode_operation" }, "deprecated": false, "digest": { "length": 1731.0, "function_hash": "198689308207554960093835278692951535909" }, "signature_version": "v1", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@15a8b55dbb1ba154d82627547c5761cac884d810" }, { "id": "CVE-2023-53241-bec66bc0", "signature_type": "Line", "target": { "file": "fs/nfsd/nfs4xdr.c" }, "deprecated": false, "digest": { "line_hashes": [ "170291837054886673367336706801665177069", "317934057092162013172517280496279115596", "158219625886668569395881314389247216660", "67297384753686747534719462896292640750", "298720088419941546044268732617130533043", "818923388763843426844952616912285398", "49308629955263501229366739226592365417", "193452726355911539708432389564357352192", "125127623655530313526023395081044927866", "80829888615190287771065034102643325757", "259882567731812507945813689691825925540", "331261827020694970603724328893548357400", "157274759763842726678943426842571081652", "334912114435211214857200137023050571340", "308998796272382755261310886616091581974", "283757050705572278545135724559416943441" ], "threshold": 0.9 }, "signature_version": "v1", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@b11d8162c24af4a351d21e2c804d25ca493305e3" }, { "id": "CVE-2023-53241-bf7feace", "signature_type": "Function", "target": { "file": "fs/nfsd/nfs4xdr.c", "function": "nfsd4_encode_operation" }, "deprecated": false, "digest": { "length": 1731.0, "function_hash": "198689308207554960093835278692951535909" }, "signature_version": "v1", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@b623a8e5d38a69a3ef8644acb1030dd7c7bc28b3" }, { "id": "CVE-2023-53241-cf9149dd", "signature_type": "Function", "target": { "file": "fs/nfsd/nfs4xdr.c", "function": "nfsd4_encode_operation" }, "deprecated": false, "digest": { "length": 1731.0, "function_hash": "198689308207554960093835278692951535909" }, "signature_version": "v1", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@65a33135e91e6dd661ecdf1194b9d90c49ae3570" }, { "id": "CVE-2023-53241-d0142844", "signature_type": "Line", "target": { "file": "fs/nfsd/nfs4xdr.c" }, "deprecated": false, "digest": { "line_hashes": [ "170291837054886673367336706801665177069", "317934057092162013172517280496279115596", "158219625886668569395881314389247216660", "67297384753686747534719462896292640750", "298720088419941546044268732617130533043", "818923388763843426844952616912285398", "49308629955263501229366739226592365417", "193452726355911539708432389564357352192", "125127623655530313526023395081044927866", "80829888615190287771065034102643325757", "259882567731812507945813689691825925540", "331261827020694970603724328893548357400", "157274759763842726678943426842571081652", "334912114435211214857200137023050571340", "308998796272382755261310886616091581974", "283757050705572278545135724559416943441" ], "threshold": 0.9 }, "signature_version": "v1", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@b623a8e5d38a69a3ef8644acb1030dd7c7bc28b3" }, { "id": "CVE-2023-53241-e6d0ddc6", "signature_type": "Function", "target": { "file": "fs/nfsd/nfs4xdr.c", "function": "nfsd4_encode_operation" }, "deprecated": false, "digest": { "length": 1731.0, "function_hash": "198689308207554960093835278692951535909" }, "signature_version": "v1", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@b11d8162c24af4a351d21e2c804d25ca493305e3" }, { "id": "CVE-2023-53241-ec9229f9", "signature_type": "Function", "target": { "file": "fs/nfsd/blocklayout.c", "function": "nfsd4_block_get_device_info_scsi" }, "deprecated": false, "digest": { "length": 1122.0, "function_hash": "148111786280719119710476640723295622626" }, "signature_version": "v1", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@15a8b55dbb1ba154d82627547c5761cac884d810" } ] }