On 1/14/21 10:38 PM, Salvatore Bonaccorso wrote: > Source: openvswitch > Version: 2.15.0~git20210104.def6eb1ea+dfsg1-3 > Severity: grave > Tags: security upstream > Justification: user security hole > X-Debbugs-Cc: car...@debian.org, Debian Security Team > <t...@security.debian.org> > Control: found -1 2.10.0+2018.08.28+git.8ca7c82b7d+ds1-12+deb10u2 > Control: found -1 2.10.0+2018.08.28+git.8ca7c82b7d+ds1-12 > > Hi, > > The following vulnerability was published for openvswitch. > > CVE-2020-27827[0]: > | lldp: avoid memory leak from bad packets > > If you fix the vulnerability please also make sure to include the > CVE (Common Vulnerabilities & Exposures) id in your changelog entry. > > For further information see: > > [0] https://security-tracker.debian.org/tracker/CVE-2020-27827 > https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-27827 > [1] > https://mail.openvswitch.org/pipermail/ovs-announce/2021-January/000269.html > [2] > https://github.com/openvswitch/ovs/commit/78e712c0b1dacc2f12d2a03d98f083d8672867f0 > > Regards, > Salvatore
Hi Salvatore, Thanks for the bug report. Please find, attached, the debdiff to fix the CVE in Buster. Note that Unstable/Sid has already been patched. Please allow me to upload this to buster-security. Cheers, Thomas Goirand (zigo)
diff -Nru openvswitch-2.10.0+2018.08.28+git.8ca7c82b7d+ds1/debian/changelog openvswitch-2.10.0+2018.08.28+git.8ca7c82b7d+ds1/debian/changelog --- openvswitch-2.10.0+2018.08.28+git.8ca7c82b7d+ds1/debian/changelog 2019-09-19 14:40:49.000000000 +0200 +++ openvswitch-2.10.0+2018.08.28+git.8ca7c82b7d+ds1/debian/changelog 2021-01-15 08:27:23.000000000 +0100 @@ -1,3 +1,12 @@ +openvswitch (2.10.0+2018.08.28+git.8ca7c82b7d+ds1-12+deb10u3) buster-security; urgency=medium + + * CVE-2020-27827: denial of service attacks in which crafted LLDP packets + could cause memory to be lost when allocating data to handle specific + optional TLVs. Applied upstream patch: lldp: do not leak memory on multiple + instances of TLVs (Closes: #980132). + + -- Thomas Goirand <z...@debian.org> Fri, 15 Jan 2021 08:27:23 +0100 + openvswitch (2.10.0+2018.08.28+git.8ca7c82b7d+ds1-12+deb10u2) buster; urgency=medium * Fixed debian/ifupdown.sh typo: ovs_vsctl -> ovs-vsctl. diff -Nru openvswitch-2.10.0+2018.08.28+git.8ca7c82b7d+ds1/debian/patches/CVE-2020-27827_lldp_do_not_leak_memory_on_multiple_instances_of_TLVs.patch openvswitch-2.10.0+2018.08.28+git.8ca7c82b7d+ds1/debian/patches/CVE-2020-27827_lldp_do_not_leak_memory_on_multiple_instances_of_TLVs.patch --- openvswitch-2.10.0+2018.08.28+git.8ca7c82b7d+ds1/debian/patches/CVE-2020-27827_lldp_do_not_leak_memory_on_multiple_instances_of_TLVs.patch 1970-01-01 01:00:00.000000000 +0100 +++ openvswitch-2.10.0+2018.08.28+git.8ca7c82b7d+ds1/debian/patches/CVE-2020-27827_lldp_do_not_leak_memory_on_multiple_instances_of_TLVs.patch 2021-01-15 08:27:23.000000000 +0100 @@ -0,0 +1,38 @@ +Description: CVE-2020-27827: lldp: do not leak memory on multiple instances of TLVs + lldp: avoid memory leak from bad packets + . + A packet that contains multiple instances of certain TLVs will cause + lldpd to continually allocate memory and leak the old memory. As an + example, multiple instances of system name TLV will cause old values + to be dropped by the decoding routine. + . + Reported-at: https://github.com/openvswitch/ovs/pull/337 + Reported-by: Jonas Rudloff <jonas.t.rudl...@gmail.com> + Signed-off-by: Aaron Conole <acon...@redhat.com> +Author: Aaron Conole <acon...@redhat.com> +Date: Wed, 13 Jan 2021 10:47:19 -0500 +Vulnerability: CVE-2020-27827 +Signed-off-by: Aaron Conole <acon...@redhat.com> +Signed-off-by: Ilya Maximets <i.maxim...@ovn.org> +Origin: upstream, https://github.com/openvswitch/ovs/commit/78e712c0b1dacc2f12d2a03d98f083d8672867f0.patch +Bug-Debian: https://bugs.debian.org/bug=980132 +Last-Update: 2021-01-15 + +Index: openvswitch/lib/lldp/lldp.c +=================================================================== +--- openvswitch.orig/lib/lldp/lldp.c ++++ openvswitch/lib/lldp/lldp.c +@@ -464,10 +464,13 @@ lldp_decode(struct lldpd *cfg OVS_UNUSED + b = xzalloc(tlv_size + 1); + PEEK_BYTES(b, tlv_size); + if (tlv_type == LLDP_TLV_PORT_DESCR) { ++ free(port->p_descr); + port->p_descr = b; + } else if (tlv_type == LLDP_TLV_SYSTEM_NAME) { ++ free(chassis->c_name); + chassis->c_name = b; + } else { ++ free(chassis->c_descr); + chassis->c_descr = b; + } + break; diff -Nru openvswitch-2.10.0+2018.08.28+git.8ca7c82b7d+ds1/debian/patches/series openvswitch-2.10.0+2018.08.28+git.8ca7c82b7d+ds1/debian/patches/series --- openvswitch-2.10.0+2018.08.28+git.8ca7c82b7d+ds1/debian/patches/series 2019-09-19 14:40:49.000000000 +0200 +++ openvswitch-2.10.0+2018.08.28+git.8ca7c82b7d+ds1/debian/patches/series 2021-01-15 08:27:23.000000000 +0100 @@ -11,3 +11,4 @@ remove-yet-another-mips-failing-test.patch remove-non-deterministic-tests.patch Fix_vswitchd_abort_when_a_port_is_added_and_the_controller_is_down.patch +CVE-2020-27827_lldp_do_not_leak_memory_on_multiple_instances_of_TLVs.patch