The NFSv4 server in the Linux kernel before 4.11.3 does not properly validate the layout type when processing the NFSv4 pNFS GETDEVICEINFO or LAYOUTGET operand in a UDP packet from a remote attacker. This type value is uninitialized upon encountering certain error conditions. This value is used as an array index for dereferencing, which leads to an OOPS and eventually a DoS of knfsd and a soft-lockup of the whole system.
[
{
"signature_type": "Line",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git@f961e3f2acae94b727380c0b74e2d3954d0edf79",
"digest": {
"threshold": 0.9,
"line_hashes": [
"116291303231038721543214849132470051315",
"143125460433255828031399245795624140268",
"172179734444513849648747458744709791492",
"152532006188254427753974542117832213694",
"148506678931015833588137811812515437048",
"50184216213329404870051257048539824906",
"151839127399120201273406913464795752212",
"228123196004487745819471869962852266870",
"87811670252165628827661929432523487686",
"82349747929127607424789937696718435490",
"89524187586446495284072229236465419445",
"213312711629951165188368233624240403800",
"155406733515644679456357765758759621905",
"270873660977580769981310546015886875217",
"148119741404684039022051155393462059749",
"81887501588322621940309025023943929446",
"285368649702900603294771027562890181048"
]
},
"target": {
"file": "fs/nfsd/nfs4xdr.c"
},
"id": "CVE-2017-8797-5631634a",
"deprecated": false,
"signature_version": "v1"
},
{
"signature_type": "Function",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git@f961e3f2acae94b727380c0b74e2d3954d0edf79",
"digest": {
"function_hash": "232316976774224571618999174774859422966",
"length": 880.0
},
"target": {
"file": "fs/nfsd/nfs4xdr.c",
"function": "nfsd4_encode_layoutget"
},
"id": "CVE-2017-8797-8e46e6f1",
"deprecated": false,
"signature_version": "v1"
},
{
"signature_type": "Function",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git@b550a32e60a4941994b437a8d662432a486235a5",
"digest": {
"function_hash": "228168560555600392985776403330707347747",
"length": 369.0
},
"target": {
"file": "fs/nfsd/nfs4proc.c",
"function": "nfsd4_layout_verify"
},
"id": "CVE-2017-8797-a1ed85ee",
"deprecated": false,
"signature_version": "v1"
},
{
"signature_type": "Line",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git@b550a32e60a4941994b437a8d662432a486235a5",
"digest": {
"threshold": 0.9,
"line_hashes": [
"323236214107941942896483426791426603508",
"33289755788326691671721424340291049713",
"204249142635563325563885545026204097402",
"133202022280557593497301893222601906162"
]
},
"target": {
"file": "fs/nfsd/nfs4proc.c"
},
"id": "CVE-2017-8797-a1fa82a1",
"deprecated": false,
"signature_version": "v1"
},
{
"signature_type": "Function",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git@f961e3f2acae94b727380c0b74e2d3954d0edf79",
"digest": {
"function_hash": "212613804768869196770436729019018521848",
"length": 1298.0
},
"target": {
"file": "fs/nfsd/nfs4xdr.c",
"function": "nfsd4_encode_getdeviceinfo"
},
"id": "CVE-2017-8797-b24c2bcd",
"deprecated": false,
"signature_version": "v1"
}
]
"https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2017-8797.json"