CVE-2019-14818
High · 7.5CVSS
7.5
EPSS
2.8%
Published
Nov 14, 2019
CISA due date
—
Cloudanix analysis
A bug in widely used networking software can let an attacker who already has limited access crash the system and interrupt network services.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Low
- Impact
- Denial Of Service
- Component
- Library
- Class
- Denial of service
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
A malicious master or container with vhost_user socket access can send crafted VRING_SET_NUM messages that trigger a memory leak of buffers and file descriptors, exhausting resources until the process fails.
Why it matters to the business
High-performance networking workloads that rely on DPDK may experience sudden service disruption or complete outage; organizations running affected Red Hat or Fedora products face unplanned downtime in virtualized or containerized environments.
How an attack unfolds
An attacker who already possesses local or container access to the vhost_user socket sends a sequence of specially crafted VRING_SET_NUM messages; each message leaks memory and file descriptors, cumulatively driving the DPDK process toward resource exhaustion and denial of service.
How to fix it
Upgrade DPDK to 17.11.8 or newer, 16.11.10 or newer, 18.11.4 or newer, or 19.08.1 or newer; apply the corresponding Red Hat or Fedora package updates that contain these fixes.
How to confirm the fix worked
Confirm the running DPDK version matches or exceeds one of the fixed releases listed above; review process memory and file-descriptor usage under load to verify the leak no longer occurs.
Typical attack path
- Obtain access to the vhost_user socket (via compromised container, malicious master, or local privilege abuse)
- Transmit crafted VRING_SET_NUM messages to the DPDK vhost-user backend
- Trigger repeated allocation without corresponding free, exhausting memory and file descriptors
- Cause the DPDK process or dependent application to crash or become unresponsive
How to detect it
Look in system and application logs for repeated vhost-user socket errors, sudden spikes in memory or file-descriptor usage by DPDK processes, and unexpected termination of DPDK-enabled services.
What your security team should do
- Prioritize patching all DPDK instances to the fixed versions within the next maintenance window
- Restrict vhost_user socket permissions to only trusted processes and containers
- Monitor for unexpected growth in DPDK process memory or open file descriptors
- Review container and VM isolation boundaries that expose the socket
The record
A flaw was found in all dpdk version 17.x.x before 17.11.8, 16.x.x before 16.11.10, 18.x.x before 18.11.4 and 19.x.x before 19.08.1 where a malicious master, or a container with access to vhost_user socket, can send specially crafted VRING_SET_NUM messages, resulting in a memory leak including file descriptors. This flaw could lead to a denial of service condition.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Debian:10 | dpdk | 0 | 18.11.2-2+deb10u2 |
| Debian:11 | dpdk | 0 | 18.11.4-1 |
| Debian:12 | dpdk | 0 | 18.11.4-1 |
| Debian:13 | dpdk | 0 | 18.11.4-1 |
| Debian:9 | dpdk | 0 | 16.11.9-1+deb9u2 |
| Red Hat:enterprise_linux:7::fastdatapath | openvswitch | 0 | 0:2.9.0-124.el7fdp |
| Red Hat:enterprise_linux:7::fastdatapath | openvswitch-debuginfo | 0 | 0:2.9.0-124.el7fdp |
| Red Hat:enterprise_linux:7::fastdatapath | openvswitch-devel | 0 | 0:2.9.0-124.el7fdp |
| Red Hat:enterprise_linux:7::fastdatapath | openvswitch-ovn-central | 0 | 0:2.9.0-124.el7fdp |
| Red Hat:enterprise_linux:7::fastdatapath | openvswitch-ovn-common | 0 | 0:2.9.0-124.el7fdp |
| Red Hat:enterprise_linux:7::fastdatapath | openvswitch-ovn-host | 0 | 0:2.9.0-124.el7fdp |
| Red Hat:enterprise_linux:7::fastdatapath | openvswitch-ovn-vtep | 0 | 0:2.9.0-124.el7fdp |
| Red Hat:enterprise_linux:7::fastdatapath | openvswitch-test | 0 | 0:2.9.0-124.el7fdp |
| Red Hat:enterprise_linux:7::fastdatapath | openvswitch2.11 | 0 | 0:2.11.0-35.el7fdp |
| Red Hat:enterprise_linux:7::fastdatapath | openvswitch2.11-debuginfo | 0 | 0:2.11.0-35.el7fdp |
| Red Hat:enterprise_linux:7::fastdatapath | openvswitch2.11-devel | 0 | 0:2.11.0-35.el7fdp |
| Red Hat:enterprise_linux:7::fastdatapath | openvswitch2.11-test | 0 | 0:2.11.0-35.el7fdp |
| Red Hat:enterprise_linux:7::fastdatapath | openvswitch2.12 | 0 | 0:2.12.0-12.el7fdp |
| Red Hat:enterprise_linux:7::fastdatapath | openvswitch2.12-debuginfo | 0 | 0:2.12.0-12.el7fdp |
| Red Hat:enterprise_linux:7::fastdatapath | openvswitch2.12-devel | 0 | 0:2.12.0-12.el7fdp |
| Red Hat:enterprise_linux:7::fastdatapath | openvswitch2.12-test | 0 | 0:2.12.0-12.el7fdp |
| Red Hat:enterprise_linux:7::fastdatapath | python-openvswitch | 0 | 0:2.9.0-124.el7fdp |
| Red Hat:enterprise_linux:7::fastdatapath | python-openvswitch2.11 | 0 | 0:2.11.0-35.el7fdp |
| Red Hat:enterprise_linux:7::fastdatapath | python-openvswitch2.12 | 0 | 0:2.12.0-12.el7fdp |
| Red Hat:enterprise_linux:7::hypervisor | openvswitch | 0 | 0:2.9.0-124.el7fdp |
| Red Hat:enterprise_linux:7::hypervisor | openvswitch-debuginfo | 0 | 0:2.9.0-124.el7fdp |
| Red Hat:enterprise_linux:7::hypervisor | openvswitch-devel | 0 | 0:2.9.0-124.el7fdp |
| Red Hat:enterprise_linux:7::hypervisor | openvswitch-ovn-central | 0 | 0:2.9.0-124.el7fdp |
| Red Hat:enterprise_linux:7::hypervisor | openvswitch-ovn-common | 0 | 0:2.9.0-124.el7fdp |
| Red Hat:enterprise_linux:7::hypervisor | openvswitch-ovn-host | 0 | 0:2.9.0-124.el7fdp |
| Red Hat:enterprise_linux:7::hypervisor | openvswitch-ovn-vtep | 0 | 0:2.9.0-124.el7fdp |
| Red Hat:enterprise_linux:7::hypervisor | openvswitch-test | 0 | 0:2.9.0-124.el7fdp |
| Red Hat:enterprise_linux:7::hypervisor | python-openvswitch | 0 | 0:2.9.0-124.el7fdp |
| Red Hat:enterprise_linux:8::appstream | dpdk | 0 | 0:19.11-4.el8 |
| Red Hat:enterprise_linux:8::appstream | dpdk-debuginfo | 0 | 0:19.11-4.el8 |
| Red Hat:enterprise_linux:8::appstream | dpdk-debugsource | 0 | 0:19.11-4.el8 |
| Red Hat:enterprise_linux:8::appstream | dpdk-devel | 0 | 0:19.11-4.el8 |
| Red Hat:enterprise_linux:8::appstream | dpdk-devel-debuginfo | 0 | 0:19.11-4.el8 |
| Red Hat:enterprise_linux:8::appstream | dpdk-doc | 0 | 0:19.11-4.el8 |
| Red Hat:enterprise_linux:8::appstream | dpdk-tools | 0 | 0:19.11-4.el8 |
| Red Hat:enterprise_linux:8::fastdatapath | network-scripts-openvswitch2.11 | 0 | 0:2.11.0-35.el8fdp |
| Red Hat:enterprise_linux:8::fastdatapath | network-scripts-openvswitch2.12 | 0 | 0:2.12.0-12.el8fdp |
| Red Hat:enterprise_linux:8::fastdatapath | openvswitch2.11 | 0 | 0:2.11.0-35.el8fdp |
| Red Hat:enterprise_linux:8::fastdatapath | openvswitch2.11-debuginfo | 0 | 0:2.11.0-35.el8fdp |
| Red Hat:enterprise_linux:8::fastdatapath | openvswitch2.11-debugsource | 0 | 0:2.11.0-35.el8fdp |
| Red Hat:enterprise_linux:8::fastdatapath | openvswitch2.11-devel | 0 | 0:2.11.0-35.el8fdp |
| Red Hat:enterprise_linux:8::fastdatapath | openvswitch2.11-test | 0 | 0:2.11.0-35.el8fdp |
| Red Hat:enterprise_linux:8::fastdatapath | openvswitch2.12 | 0 | 0:2.12.0-12.el8fdp |
| Red Hat:enterprise_linux:8::fastdatapath | openvswitch2.12-debuginfo | 0 | 0:2.12.0-12.el8fdp |
| Red Hat:enterprise_linux:8::fastdatapath | openvswitch2.12-debugsource | 0 | 0:2.12.0-12.el8fdp |
| Red Hat:enterprise_linux:8::fastdatapath | openvswitch2.12-devel | 0 | 0:2.12.0-12.el8fdp |
| Red Hat:enterprise_linux:8::fastdatapath | openvswitch2.12-test | 0 | 0:2.12.0-12.el8fdp |
| Red Hat:enterprise_linux:8::fastdatapath | python3-openvswitch2.11 | 0 | 0:2.11.0-35.el8fdp |
| Red Hat:enterprise_linux:8::fastdatapath | python3-openvswitch2.11-debuginfo | 0 | 0:2.11.0-35.el8fdp |
| Red Hat:enterprise_linux:8::fastdatapath | python3-openvswitch2.12 | 0 | 0:2.12.0-12.el8fdp |
| Red Hat:enterprise_linux:8::fastdatapath | python3-openvswitch2.12-debuginfo | 0 | 0:2.12.0-12.el8fdp |
| Red Hat:openstack:13::el7 | ansible-role-redhat-subscription | 0 | 0:1.0.4-2.el7ost |
| Red Hat:openstack:13::el7 | openstack-manila | 0 | 1:6.3.2-1.el7ost |
| Red Hat:openstack:13::el7 | openstack-manila-share | 0 | 1:6.3.2-1.el7ost |
| Red Hat:openstack:13::el7 | openstack-octavia-ui | 0 | 0:1.0.2-1.el7ost |
| Red Hat:openstack:13::el7 | openstack-tempest | 0 | 1:18.0.0-13.el7ost |
| Red Hat:openstack:13::el7 | openstack-tempest-all | 0 | 1:18.0.0-13.el7ost |
| Red Hat:openstack:13::el7 | openvswitch2.11 | 0 | 0:2.11.0-35.el7fdp |
| Red Hat:openstack:13::el7 | openvswitch2.11-debuginfo | 0 | 0:2.11.0-35.el7fdp |
| Red Hat:openstack:13::el7 | openvswitch2.11-devel | 0 | 0:2.11.0-35.el7fdp |
| Red Hat:openstack:13::el7 | openvswitch2.11-test | 0 | 0:2.11.0-35.el7fdp |
| Red Hat:openstack:13::el7 | python-barbican-tests-tempest | 0 | 0:0.1.0-0.20180828144800.b8bf147.el7ost |
| Red Hat:openstack:13::el7 | python-hardware | 0 | 0:0.23.0-0.20200117070144.59211cc.el7ost |
| Red Hat:openstack:13::el7 | python-hardware-detect | 0 | 0:0.23.0-0.20200117070144.59211cc.el7ost |
| Red Hat:openstack:13::el7 | python-keystoneauth1 | 0 | 0:3.4.1-2.el7ost |
| Red Hat:openstack:13::el7 | python-keystonemiddleware | 0 | 0:4.22.0-1.el7ost |
| Red Hat:openstack:13::el7 | python-manila | 0 | 1:6.3.2-1.el7ost |
| Red Hat:openstack:13::el7 | python-manila-tests | 0 | 1:6.3.2-1.el7ost |
| Red Hat:openstack:13::el7 | python-neutron-lib | 0 | 0:1.13.0-2.el7ost |
| Red Hat:openstack:13::el7 | python-novajoin | 0 | 0:1.3.0-1.el7ost |
| Red Hat:openstack:13::el7 | python-octavia-tests-tempest | 0 | 0:1.1.0-1.el7ost |
| Red Hat:openstack:13::el7 | python-octavia-tests-tempest-debuginfo | 0 | 0:1.1.0-1.el7ost |
| Red Hat:openstack:13::el7 | python-octavia-tests-tempest-golang | 0 | 0:1.1.0-1.el7ost |
| Red Hat:openstack:13::el7 | python-openstackclient | 0 | 0:3.14.3-5.el7ost |
| Red Hat:openstack:13::el7 | python-openstackclient-lang | 0 | 0:3.14.3-5.el7ost |
| Red Hat:openstack:13::el7 | python-openstacksdk | 0 | 0:0.11.4-1.el7ost |
| Red Hat:openstack:13::el7 | python-openvswitch2.11 | 0 | 0:2.11.0-35.el7fdp |
| Red Hat:openstack:13::el7 | python-os-testr | 0 | 0:1.0.1-0.20200218144109.7dd678e.el7ost |
| Red Hat:openstack:13::el7 | python-os-vif | 0 | 0:1.9.2-1.el7ost |
| Red Hat:openstack:13::el7 | python-ovsdbapp | 0 | 0:0.10.4-2.el7ost |
| Red Hat:openstack:13::el7 | python-tempestconf | 0 | 0:2.4.0-1.el7ost |
| Red Hat:openstack:13::el7 | python2-barbican-tests-tempest | 0 | 0:0.1.0-0.20180828144800.b8bf147.el7ost |
| Red Hat:openstack:13::el7 | python2-keystoneauth1 | 0 | 0:3.4.1-2.el7ost |
| Red Hat:openstack:13::el7 | python2-keystonemiddleware | 0 | 0:4.22.0-1.el7ost |
| Red Hat:openstack:13::el7 | python2-neutron-lib | 0 | 0:1.13.0-2.el7ost |
| Red Hat:openstack:13::el7 | python2-neutron-lib-tests | 0 | 0:1.13.0-2.el7ost |
| Red Hat:openstack:13::el7 | python2-octavia-tests-tempest | 0 | 0:1.1.0-1.el7ost |
| Red Hat:openstack:13::el7 | python2-openstackclient | 0 | 0:3.14.3-5.el7ost |
| Red Hat:openstack:13::el7 | python2-openstacksdk | 0 | 0:0.11.4-1.el7ost |
| Red Hat:openstack:13::el7 | python2-os-vif | 0 | 0:1.9.2-1.el7ost |
| Red Hat:openstack:13::el7 | python2-ovsdbapp | 0 | 0:0.10.4-2.el7ost |
| Red Hat:openstack:13::el7 | python2-tempest | 0 | 1:18.0.0-13.el7ost |
| Red Hat:openstack:13::el7 | python2-tempest-tests | 0 | 1:18.0.0-13.el7ost |
| Red Hat:openstack:13::el7 | python2-tempestconf | 0 | 0:2.4.0-1.el7ost |
| Red Hat:openstack:13::el7 | rabbitmq-server | 0 | 0:3.6.15-6.el7ost |
| Red Hat:openstack:13::el7 | rhosp-release | 0 | 0:13.0.11-1.el7ost |
| Red Hat:rhel_extras_other:7 | dpdk | 0 | 0:18.11.5-1.el7_8 |
| Red Hat:rhel_extras_other:7 | dpdk-debuginfo | 0 | 0:18.11.5-1.el7_8 |
| Red Hat:rhel_extras_other:7 | dpdk-devel | 0 | 0:18.11.5-1.el7_8 |
| Red Hat:rhel_extras_other:7 | dpdk-doc | 0 | 0:18.11.5-1.el7_8 |
| Red Hat:rhel_extras_other:7 | dpdk-tools | 0 | 0:18.11.5-1.el7_8 |
| SUSE:Enterprise Storage 5 | dpdk | 0 | 16.11.9-8.15.13 |
| SUSE:Enterprise Storage 5 | dpdk-thunderx | 0 | 16.11.9-8.15.10 |
| SUSE:HPE Helion OpenStack 8 | dpdk | 0 | 16.11.9-8.15.13 |
| SUSE:Linux Enterprise Module for Server Applications 15 | dpdk | 0 | 18.11.3-3.16.1 |
| SUSE:Linux Enterprise Module for Server Applications 15 | dpdk-thunderx | 0 | 18.11.3-3.16.1 |
| SUSE:Linux Enterprise Module for Server Applications 15 SP1 | dpdk | 0 | 18.11.3-4.3.1 |
| SUSE:Linux Enterprise Server 12 SP3-BCL | dpdk | 0 | 16.11.9-8.15.13 |
| SUSE:Linux Enterprise Server 12 SP3-LTSS | dpdk | 0 | 16.11.9-8.15.13 |
| SUSE:Linux Enterprise Server 12 SP3-LTSS | dpdk-thunderx | 0 | 16.11.9-8.15.10 |
| SUSE:Linux Enterprise Server 12 SP4 | dpdk | 0 | 17.11.7-5.3.2 |
| SUSE:Linux Enterprise Server 12 SP4 | dpdk | 0 | 17.11.7-5.6.2 |
| SUSE:Linux Enterprise Server 12 SP4 | dpdk-thunderx | 0 | 17.11.7-5.3.2 |
| SUSE:Linux Enterprise Server 12 SP4 | dpdk-thunderx | 0 | 17.11.7-5.6.2 |
| SUSE:Linux Enterprise Server 12 SP5 | dpdk | 0 | 18.11.3-3.6.1 |
| SUSE:Linux Enterprise Server 12 SP5 | dpdk-thunderx | 0 | 18.11.3-3.6.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP3 | dpdk | 0 | 16.11.9-8.15.13 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP4 | dpdk | 0 | 17.11.7-5.3.2 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP4 | dpdk | 0 | 17.11.7-5.6.2 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP4 | dpdk-thunderx | 0 | 17.11.7-5.3.2 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP4 | dpdk-thunderx | 0 | 17.11.7-5.6.2 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP5 | dpdk | 0 | 18.11.3-3.6.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP5 | dpdk-thunderx | 0 | 18.11.3-3.6.1 |
| SUSE:Linux Enterprise Software Development Kit 12 SP4 | dpdk | 0 | 17.11.7-5.3.2 |
| SUSE:Linux Enterprise Software Development Kit 12 SP4 | dpdk | 0 | 17.11.7-5.6.2 |
| SUSE:Linux Enterprise Software Development Kit 12 SP4 | dpdk-thunderx | 0 | 17.11.7-5.3.2 |
| SUSE:Linux Enterprise Software Development Kit 12 SP4 | dpdk-thunderx | 0 | 17.11.7-5.6.2 |
| SUSE:Linux Enterprise Software Development Kit 12 SP5 | dpdk | 0 | 18.11.3-3.6.1 |
| SUSE:Linux Enterprise Software Development Kit 12 SP5 | dpdk-thunderx | 0 | 18.11.3-3.6.1 |
| SUSE:OpenStack Cloud 8 | dpdk | 0 | 16.11.9-8.15.13 |
| SUSE:OpenStack Cloud Crowbar 8 | dpdk | 0 | 16.11.9-8.15.13 |
| Ubuntu:16.04:LTS | dpdk | 0 | No fix |
| Ubuntu:18.04:LTS | dpdk | 0 | 17.11.8-0~ubuntu18.04.2 |
| Ubuntu:20.04:LTS | dpdk | 0 | 18.11.4-1 |
| Ubuntu:Pro:16.04:LTS | dpdk | 0 | No fix |
| openSUSE:Tumbleweed | dpdk | 0 | 19.11.8-2.7 |
Related vulnerabilities
- CVE-2022-28199 NVIDIA’s distribution of the Data Plane Development Kit (MLNX_DPDK) contains a… Also affects dpdk
- CVE-2020-14374 A flaw was found in dpdk in versions before 18.11.10 and before 19.11.5. Also affects dpdk
- CVE-2018-1059 The DPDK vhost-user interface does not check to verify that all the requested guest… Also affects dpdk
- CVE-2024-11614 An out-of-bounds read vulnerability was found in DPDK's Vhost library checksum offload… Also affects dpdk
- CVE-2015-8011 Buffer overflow in the lldp_decode function in daemon/protocols/lldp.c in lldpd before… Also affects openvswitch
- CVE-2017-9214 In Open vSwitch (OvS) 2.7.0, while parsing an OFPT_QUEUE_GET_CONFIG_REPLY type OFP 1.0… Also affects openvswitch
- CVE-2026-109278 ImageMagick before 6.9.13-57 and 7.x before 7.1.2-32 contains a memory leak in the… CWE-401
- CVE-2026-109270 ImageMagick before 7.1.2-32 contains a memory leak vulnerability in the -process option… CWE-401