Bug 1678423 (CVE-2019-3837)

Summary: CVE-2019-3837 kernel: memory leak in tcp_recvmsg() with NET_DMA
Product: [Other] Security Response Reporter: Pedro Sampaio <psampaio>
Component: vulnerabilityAssignee: Red Hat Product Security <security-response-team>
Status: CLOSED WONTFIX QA Contact:
Severity: medium Docs Contact:
Priority: medium    
Version: unspecifiedCC: acaringi, airlied, apmukher, bhu, blc, brdeoliv, bskeggs, dhoward, dvlasenk, esammons, fhrbata, hdegoede, hkrzesin, iboverma, ichavero, itamar, jarodwilson, jeremy, jforbes, jglisse, jkacur, john.j5live, jonathan, josef, jross, jstancek, jwboyer, kernel-maint, kernel-mgr, khorenko, labbott, lgoncalv, linville, matt, mchehab, mcressma, mjg59, mlangsdo, mmezynsk, nmurray, plougher, rt-maint, rvrbovsk, security-response-team, steved, vdronov, vvs, williams
Target Milestone: ---Keywords: Security
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
It was found that the net_dma code in tcp_recvmsg() in the RHEL6 kernel is thread-unsafe. So an unprivileged multi-threaded userspace application calling recvmsg() for the same network socket in parallel executed on ioatdma-enabled hardware with net_dma enabled can leak the memory, crash the host leading to a denial of service or cause a random memory corruption.
Story Points: ---
Clone Of: Environment:
Last Closed: 2019-09-05 12:59:26 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 1678168    
Bug Blocks: 1678424    

Description Pedro Sampaio 2019-02-18 17:59:16 UTC
It was found that the net_dma code in tcp_recvmsg() in the RHEL6 kernel is thread-unsafe. So an unprivileged multi-threaded userspace application calling recvmsg() for the same network socket in parallel executed on ioatdma-enabled hardware with net_dma enabled can leak the memory, crash the host leading to a denial-of-service, or cause a random memory corruption.

References:

https://seclists.org/oss-sec/2019/q2/7

https://bugs.openvz.org/browse/OVZ-7080

An upstream fix:

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=77873803363c

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=7bced397510a

Comment 1 Vladis Dronov 2019-02-19 10:30:28 UTC
Acknowledgements:

Name: Vasily Averin (Virtuozzo Kernel Team)