"value":"In the Linux kernel, the following vulnerability has been resolved:\n\nnet: avoid potential underflow in qdisc_pkt_len_init() with UFO\n\nAfter commit 7c6d2ecbda83 (\"net: be more gentle about silly gso\nrequests coming from user\") virtio_net_hdr_to_skb() had sanity check\nto detect malicious attempts from user space to cook a bad GSO packet.\n\nThen commit cf9acc90c80ec (\"net: virtio_net_hdr_to_skb: count\ntransport header in UFO\")whilefixingoneissue,alloweduserspace\ntocookaGSOpacketwiththefollowingcharacteristic:\n\nIPv4SKB_GSO_UDP,gso_size=3,skb->len=28.\n\nWhenthispacketarrivesinqdisc_pkt_len_init(),weendup\nwithhdr_len=28(IPv4header+UDPheader),matchingskb->len\n\nThenthefollowingsetsgso_segsto0:\n\ngso_segs=DIV_ROUND_UP(skb->len-hdr_len,\nshinfo->gso_size);\n\nThenlaterwesetqdisc_skb_cb(skb)->pkt_lentobacktozero:/\n\nqdisc_skb_cb(skb)->pkt_len+=(gso_segs-1)*hdr_len;\n\nThisleadstothefollowingcrashinfq_codel[1]\n\nqdisc_pkt_len_init()isbesteffort,weonlywantanestimation\nofthebytessentonthewire,notcrashingthekernel.\n\nThispatchisfixingthisparticularissue,afollowingone\naddsmoresanitychecksforanotherpotentialbug.\n\n[1]\n[70.724101]BUG:kernelNULLpointerdereference,address:0000000000000000\n[70.724561]#PF:supervisorreadaccessinkernelmode\n[70.724561]#PF:error_code(0x0000)-not-presentpage\n[70.724561]PGD10ac61067P4D10ac61067PUD107ee2067PMD0\n[70.724561]Oops:Oops:0000[#1]SMPNOPTI\n[70.724561]CPU:11UID:0PID:2163Comm:b358537762Nottainted6.11.0-virtme#991\n[70.724561]Hardwarename:QEMUStandardPC(i440FX+PIIX,1996),BIOS1.16.3-debian-1.16.3-204/01/2014\n[70.724561]RIP:0010:fq_codel_enqueue(net/sched/sch_fq_codel.c:120net/sched/sch_fq_codel.c:168net/sched/sch_fq_codel.c:230)sch_fq_codel\n[70.724561]Code:240849c1e10644897c24184531ed4531c031ff894424144c038b90010000eb0439ca73374d8b3983c701<49>8b17498911418b5728458b5f3449c7070000000049\nAllcode\n========\n0:\t2408\tand$0x8,%al\n2:\t49c1e106\tshl$0x6,%r9\n6:\t44897c2418\tmov%r15d,0x18(%rsp)\nb:\t4531ed\txor%r13d,%r13d\ne:\t4531c0\txor%r8d,%r8d\n11:\t31ff\txor%edi,%edi\n13:\t89442414\tmov%eax,0x14(%rsp)\n17:\t4c038b90010000\tadd0x190(%rbx),%r9\n1e:\teb04\tjmp0x24\n20:\t39ca\tcmp%ecx,%edx\n22:\t7337\tjae0x5b\n24:\t4d8b39\tmov(%r9),%r15\n27:\t83c701\tadd$0x1,%edi\n2a:*\t498b17\tmov(%r15),%rdx\t\t<--trappinginstruction\n2d:\t498911\tmov%rdx,(%r9)\n30:\t418b5728\tmov0x28(%r15),%edx\n34:\t458b5f34\tmov0x34(%r15),%r11d\n38:\t49c70700000000\tmovq$0x0,(%r15)\n3f:\t49\trex.WB\n\nCodestartingwiththefaultinginstruction\n===========================================\n0:\t498b17\tmov(%r15),%rdx\n3:\t498911\tmov%rdx,(%r9)\n6:\t418b5728\tmov0x28(%r15),%edx\na:\t458b5f34\tmov0x34(%r15),%r11d\ne:\t49c70700000000\tmovq$0x0,(%r15)\n15:\t49\trex.WB\n[70.724561]RSP:0018:ffff95ae85e6fb90EFLAGS:00000202\n[70.724561]RAX:0000000002000000RBX:ffff95ae841de000RCX:0000000000000000\n[70.724561]RDX:0000000000000000RSI:0000000000000001RDI:0000000000000001\n[70.724561]RBP:ffff95ae85e6fbf8R08:0000000000000000R09:ffff95b710a30000\n[70.724561]R10:0000000000000000R11:bdf289445ce31881R12:ffff95ae85e6fc58\n[70.724561]R13:0000000000000000R14:0000000000000040R15:0000000000000000\n[70.724561]FS:000000002c5c1380(0000)GS:ffff95bd7fcc0000(0000)knlGS:000000000000