- Apply upstream fix for crash in bgp_attr_encap that were missing
a check of the actual remaining stream length before taking the TLV value (CVE-2024-44070,bsc#1229438,gh#FRRouting/frr#16502): + 0002-bgpd-Check-the-actual-remaining-stream-length-before.patch - Re-added 0001-disable-zmq-test.patch to avoid (sporadic or arch specific, e.g. aarch64) "make check" test failures (bsc#1180217). + 0001-disable-zmq-test.patch - Re-added hardening patch for systemd service(s) (bsc#1181400): + harden_frr.service.patch - Cleanup unknown --enable-systemd and correct the --sysconfdir and --localstatedir configure options to not end in …/frr. OBS-URL: https://build.opensuse.org/package/show/network/frr?expand=0&rev=72
This commit is contained in:
parent
80b188223a
commit
7e97e9eb90
@ -0,0 +1,51 @@
|
|||||||
|
From 605485a7c470f6e49c3f5712f2c4692fea3019e7 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Donatas Abraitis <donatas@opensourcerouting.org>
|
||||||
|
Date: Wed, 31 Jul 2024 08:35:14 +0300
|
||||||
|
Subject: [PATCH] bgpd: Check the actual remaining stream length before taking
|
||||||
|
TLV value
|
||||||
|
Upstream: yes
|
||||||
|
References: CVE-2024-44070,bsc#1229438,gh#FRRouting/frr#16502
|
||||||
|
|
||||||
|
```
|
||||||
|
0 0xb50b9f898028 in __sanitizer_print_stack_trace (/home/ubuntu/frr-public/frr_public_private-libfuzzer/bgpd/.libs/bgpd+0x368028) (BuildId: 3292703ed7958b20076550c967f879db8dc27ca7)
|
||||||
|
1 0xb50b9f7ed8e4 in fuzzer::PrintStackTrace() (/home/ubuntu/frr-public/frr_public_private-libfuzzer/bgpd/.libs/bgpd+0x2bd8e4) (BuildId: 3292703ed7958b20076550c967f879db8dc27ca7)
|
||||||
|
2 0xb50b9f7d4d9c in fuzzer::Fuzzer::CrashCallback() (/home/ubuntu/frr-public/frr_public_private-libfuzzer/bgpd/.libs/bgpd+0x2a4d9c) (BuildId: 3292703ed7958b20076550c967f879db8dc27ca7)
|
||||||
|
3 0xe0d12d7469cc (linux-vdso.so.1+0x9cc) (BuildId: 1a77697e9d723fe22246cfd7641b140c427b7e11)
|
||||||
|
4 0xe0d12c88f1fc in __pthread_kill_implementation nptl/pthread_kill.c:43:17
|
||||||
|
5 0xe0d12c84a678 in gsignal signal/../sysdeps/posix/raise.c:26:13
|
||||||
|
6 0xe0d12c83712c in abort stdlib/abort.c:79:7
|
||||||
|
7 0xe0d12d214724 in _zlog_assert_failed /home/ubuntu/frr-public/frr_public_private-libfuzzer/lib/zlog.c:789:2
|
||||||
|
8 0xe0d12d1285e4 in stream_get /home/ubuntu/frr-public/frr_public_private-libfuzzer/lib/stream.c:324:3
|
||||||
|
9 0xb50b9f8e47c4 in bgp_attr_encap /home/ubuntu/frr-public/frr_public_private-libfuzzer/bgpd/bgp_attr.c:2758:3
|
||||||
|
10 0xb50b9f8dcd38 in bgp_attr_parse /home/ubuntu/frr-public/frr_public_private-libfuzzer/bgpd/bgp_attr.c:3783:10
|
||||||
|
11 0xb50b9faf74b4 in bgp_update_receive /home/ubuntu/frr-public/frr_public_private-libfuzzer/bgpd/bgp_packet.c:2383:20
|
||||||
|
12 0xb50b9faf1dcc in bgp_process_packet /home/ubuntu/frr-public/frr_public_private-libfuzzer/bgpd/bgp_packet.c:4075:11
|
||||||
|
13 0xb50b9f8c90d0 in LLVMFuzzerTestOneInput /home/ubuntu/frr-public/frr_public_private-libfuzzer/bgpd/bgp_main.c:582:3
|
||||||
|
```
|
||||||
|
|
||||||
|
Reported-by: Iggy Frankovic <iggyfran@amazon.com>
|
||||||
|
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
|
||||||
|
(cherry picked from commit 0998b38e4d61179441f90dd7e7fd6a3a8b7bd8c5)
|
||||||
|
|
||||||
|
diff --git a/bgpd/bgp_attr.c b/bgpd/bgp_attr.c
|
||||||
|
index 40e074d058..4ebb45e3de 100644
|
||||||
|
--- a/bgpd/bgp_attr.c
|
||||||
|
+++ b/bgpd/bgp_attr.c
|
||||||
|
@@ -2727,6 +2727,14 @@ static int bgp_attr_encap(struct bgp_attr_parser_args *args)
|
||||||
|
args->total);
|
||||||
|
}
|
||||||
|
|
||||||
|
+ if (STREAM_READABLE(BGP_INPUT(peer)) < sublength) {
|
||||||
|
+ zlog_err("Tunnel Encap attribute sub-tlv length %d exceeds remaining stream length %zu",
|
||||||
|
+ sublength, STREAM_READABLE(BGP_INPUT(peer)));
|
||||||
|
+ return bgp_attr_malformed(args,
|
||||||
|
+ BGP_NOTIFY_UPDATE_OPT_ATTR_ERR,
|
||||||
|
+ args->total);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
/* alloc and copy sub-tlv */
|
||||||
|
/* TBD make sure these are freed when attributes are released */
|
||||||
|
tlv = XCALLOC(MTYPE_ENCAP_TLV,
|
||||||
|
--
|
||||||
|
2.43.0
|
||||||
|
|
16
frr.changes
16
frr.changes
@ -1,3 +1,18 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Aug 22 13:02:19 UTC 2024 - Marius Tomaschewski <mt@suse.com>
|
||||||
|
|
||||||
|
- Apply upstream fix for crash in bgp_attr_encap that were missing
|
||||||
|
a check of the actual remaining stream length before taking the
|
||||||
|
TLV value (CVE-2024-44070,bsc#1229438,gh#FRRouting/frr#16502):
|
||||||
|
+ 0002-bgpd-Check-the-actual-remaining-stream-length-before.patch
|
||||||
|
- Re-added 0001-disable-zmq-test.patch to avoid (sporadic or arch
|
||||||
|
specific, e.g. aarch64) "make check" test failures (bsc#1180217).
|
||||||
|
+ 0001-disable-zmq-test.patch
|
||||||
|
- Re-added hardening patch for systemd service(s) (bsc#1181400):
|
||||||
|
+ harden_frr.service.patch
|
||||||
|
- Cleanup unknown --enable-systemd and correct the --sysconfdir
|
||||||
|
and --localstatedir configure options to not end in …/frr.
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Fri Aug 9 14:14:10 UTC 2024 - Erico Mendonca <erico.mendonca@suse.com>
|
Fri Aug 9 14:14:10 UTC 2024 - Erico Mendonca <erico.mendonca@suse.com>
|
||||||
|
|
||||||
@ -32,6 +47,7 @@ Sun Jul 28 20:21:43 UTC 2024 - Erico Mendonca <erico.mendonca@suse.com> - 10.0.1
|
|||||||
- 0021-ospfd-Solved-crash-in-RI-parsing-with-OSPF-TE.patch
|
- 0021-ospfd-Solved-crash-in-RI-parsing-with-OSPF-TE.patch
|
||||||
- 0022-ospfd-Correct-Opaque-LSA-Extended-parser.patch
|
- 0022-ospfd-Correct-Opaque-LSA-Extended-parser.patch
|
||||||
- 0023-ospfd-protect-call-to-get_edge-in-ospf_te.c.patch
|
- 0023-ospfd-protect-call-to-get_edge-in-ospf_te.c.patch
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Tue Jun 4 21:27:48 UTC 2024 - Marius Tomaschewski <mt@suse.com>
|
Tue Jun 4 21:27:48 UTC 2024 - Marius Tomaschewski <mt@suse.com>
|
||||||
|
|
||||||
|
12
frr.spec
12
frr.spec
@ -39,6 +39,9 @@ URL: https://www.frrouting.org
|
|||||||
#Git-Clone: https://github.com/FRRouting/frr.git
|
#Git-Clone: https://github.com/FRRouting/frr.git
|
||||||
Source: https://github.com/FRRouting/frr/archive/refs/tags/%{name}-%{version}.tar.gz
|
Source: https://github.com/FRRouting/frr/archive/refs/tags/%{name}-%{version}.tar.gz
|
||||||
Source1: %{name}-tmpfiles.d
|
Source1: %{name}-tmpfiles.d
|
||||||
|
Patch0: harden_frr.service.patch
|
||||||
|
Patch1: 0001-disable-zmq-test.patch
|
||||||
|
Patch2: 0002-bgpd-Check-the-actual-remaining-stream-length-before.patch
|
||||||
BuildRequires: autoconf
|
BuildRequires: autoconf
|
||||||
BuildRequires: automake
|
BuildRequires: automake
|
||||||
BuildRequires: bison >= 2.7
|
BuildRequires: bison >= 2.7
|
||||||
@ -78,7 +81,7 @@ BuildRequires: pkgconfig(sqlite3)
|
|||||||
Requires(post): %{install_info_prereq}
|
Requires(post): %{install_info_prereq}
|
||||||
Requires(pre): %{install_info_prereq}
|
Requires(pre): %{install_info_prereq}
|
||||||
Requires(pre): shadow
|
Requires(pre): shadow
|
||||||
Requires(preun): %{install_info_prereq}
|
Requires(preun):%{install_info_prereq}
|
||||||
Recommends: logrotate
|
Recommends: logrotate
|
||||||
Conflicts: quagga
|
Conflicts: quagga
|
||||||
Provides: zebra = %{version}
|
Provides: zebra = %{version}
|
||||||
@ -204,8 +207,8 @@ export CFLAGS="-ffat-lto-objects"
|
|||||||
autoreconf -fiv
|
autoreconf -fiv
|
||||||
%configure \
|
%configure \
|
||||||
--disable-silent-rules \
|
--disable-silent-rules \
|
||||||
--sysconfdir=%{_sysconfdir}/%{name} \
|
--sysconfdir=%{_sysconfdir}\
|
||||||
--localstatedir=%{frr_statedir} \
|
--localstatedir=%{_rundir} \
|
||||||
--sbindir=%{frr_daemondir} \
|
--sbindir=%{frr_daemondir} \
|
||||||
--with-moduledir=%{_libdir}/frr/modules \
|
--with-moduledir=%{_libdir}/frr/modules \
|
||||||
--disable-static \
|
--disable-static \
|
||||||
@ -259,9 +262,8 @@ autoreconf -fiv
|
|||||||
--with-crypto=openssl \
|
--with-crypto=openssl \
|
||||||
--enable-config-rollbacks \
|
--enable-config-rollbacks \
|
||||||
%if %{with grpc}
|
%if %{with grpc}
|
||||||
--enable-grpc \
|
--enable-grpc
|
||||||
%endif
|
%endif
|
||||||
--enable-systemd
|
|
||||||
|
|
||||||
make %{?_smp_mflags} MAKEINFO="makeinfo --no-split"
|
make %{?_smp_mflags} MAKEINFO="makeinfo --no-split"
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user