commit: 2d0d3ec11073df20c4c76cbcb76807690ee3ad42 Author: Michael Mair-Keimberger <mmk <AT> levelnine <DOT> at> AuthorDate: Sat Apr 16 15:11:49 2022 +0000 Commit: Sam James <sam <AT> gentoo <DOT> org> CommitDate: Sun Apr 17 19:42:07 2022 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2d0d3ec1
app-containers/runc: remove unused patch(es) Package-Manager: Portage-3.0.30, Repoman-3.0.3 Signed-off-by: Michael Mair-Keimberger <mmk <AT> levelnine.at> Closes: https://github.com/gentoo/gentoo/pull/25043 Signed-off-by: Sam James <sam <AT> gentoo.org> app-containers/runc/files/CVE-2021-43784.patch | 86 -------------------------- 1 file changed, 86 deletions(-) diff --git a/app-containers/runc/files/CVE-2021-43784.patch b/app-containers/runc/files/CVE-2021-43784.patch deleted file mode 100644 index ab3886ee9ba7..000000000000 --- a/app-containers/runc/files/CVE-2021-43784.patch +++ /dev/null @@ -1,86 +0,0 @@ -From b8dbe46687c2a96efa9252b69d3fc1ce33bdc416 Mon Sep 17 00:00:00 2001 -From: Aleksa Sarai <cyp...@cyphar.com> -Date: Thu, 18 Nov 2021 16:12:59 +1100 -Subject: [PATCH] runc init: avoid netlink message length overflows - -When writing netlink messages, it is possible to have a byte array -larger than UINT16_MAX which would result in the length field -overflowing and allowing user-controlled data to be parsed as control -characters (such as creating custom mount points, changing which set of -namespaces to allow, and so on). - -Co-authored-by: Kir Kolyshkin <kolysh...@gmail.com> -Signed-off-by: Kir Kolyshkin <kolysh...@gmail.com> -Signed-off-by: Aleksa Sarai <cyp...@cyphar.com> ---- - libcontainer/container_linux.go | 20 +++++++++++++++++++- - libcontainer/message_linux.go | 9 +++++++++ - 2 files changed, 28 insertions(+), 1 deletion(-) - -diff --git a/libcontainer/container_linux.go b/libcontainer/container_linux.go -index 6ce1854f68..1484703b0c 100644 ---- a/libcontainer/container_linux.go -+++ b/libcontainer/container_linux.go -@@ -2028,16 +2028,34 @@ func encodeIDMapping(idMap []configs.IDMap) ([]byte, error) { - return data.Bytes(), nil - } - -+// netlinkError is an error wrapper type for use by custom netlink message -+// types. Panics with errors are wrapped in netlinkError so that the recover -+// in bootstrapData can distinguish intentional panics. -+type netlinkError struct{ error } -+ - // bootstrapData encodes the necessary data in netlink binary format - // as a io.Reader. - // Consumer can write the data to a bootstrap program - // such as one that uses nsenter package to bootstrap the container's - // init process correctly, i.e. with correct namespaces, uid/gid - // mapping etc. --func (c *linuxContainer) bootstrapData(cloneFlags uintptr, nsMaps map[configs.NamespaceType]string) (io.Reader, error) { -+func (c *linuxContainer) bootstrapData(cloneFlags uintptr, nsMaps map[configs.NamespaceType]string) (_ io.Reader, Err error) { - // create the netlink message - r := nl.NewNetlinkRequest(int(InitMsg), 0) - -+ // Our custom messages cannot bubble up an error using returns, instead -+ // they will panic with the specific error type, netlinkError. In that -+ // case, recover from the panic and return that as an error. -+ defer func() { -+ if r := recover(); r != nil { -+ if e, ok := r.(netlinkError); ok { -+ Err = e.error -+ } else { -+ panic(r) -+ } -+ } -+ }() -+ - // write cloneFlags - r.AddData(&Int32msg{ - Type: CloneFlagsAttr, -diff --git a/libcontainer/message_linux.go b/libcontainer/message_linux.go -index 1d4f5033aa..e4107ce39f 100644 ---- a/libcontainer/message_linux.go -+++ b/libcontainer/message_linux.go -@@ -3,6 +3,9 @@ - package libcontainer - - import ( -+ "fmt" -+ "math" -+ - "github.com/vishvananda/netlink/nl" - "golang.org/x/sys/unix" - ) -@@ -54,6 +57,12 @@ type Bytemsg struct { - - func (msg *Bytemsg) Serialize() []byte { - l := msg.Len() -+ if l > math.MaxUint16 { -+ // We cannot return nil nor an error here, so we panic with -+ // a specific type instead, which is handled via recover in -+ // bootstrapData. -+ panic(netlinkError{fmt.Errorf("netlink: cannot serialize bytemsg of length %d (larger than UINT16_MAX)", l)}) -+ } - buf := make([]byte, (l+unix.NLA_ALIGNTO-1) & ^(unix.NLA_ALIGNTO-1)) - native := nl.NativeEndian() - native.PutUint16(buf[0:2], uint16(l))