Hello Steve, I have sent a dunfell branch patch with the subject "[OE-core][*dunfell*][PATCH] go-runtime: Security fix for CVE-2022-41722". I am not sure why it's showing as a reply on kirkstone patch, not a separate email. Please consider this patch to fix CVE-2022-41722 in dunfell.
Thanks, Shubham On Wed, Apr 19, 2023 at 6:03 PM Shubham Kulkarni via lists.openembedded.org <skulkarni=mvista....@lists.openembedded.org> wrote: > From: Shubham Kulkarni <skulka...@mvista.com> > > path/filepath: do not Clean("a/../c:/b") into c:\b on Windows > > Backport from > https://github.com/golang/go/commit/bdf07c2e168baf736e4c057279ca12a4d674f18c > > Signed-off-by: Shubham Kulkarni <skulka...@mvista.com> > --- > meta/recipes-devtools/go/go-1.14.inc | 2 + > .../go/go-1.14/CVE-2022-41722-1.patch | 53 +++++++++++ > .../go/go-1.14/CVE-2022-41722-2.patch | 104 > +++++++++++++++++++++ > 3 files changed, 159 insertions(+) > create mode 100644 meta/recipes-devtools/go/go-1.14/CVE-2022-41722-1.patch > create mode 100644 meta/recipes-devtools/go/go-1.14/CVE-2022-41722-2.patch > > diff --git a/meta/recipes-devtools/go/go-1.14.inc > b/meta/recipes-devtools/go/go-1.14.inc > index f2a5fc3..74017f4 100644 > --- a/meta/recipes-devtools/go/go-1.14.inc > +++ b/meta/recipes-devtools/go/go-1.14.inc > @@ -53,6 +53,8 @@ SRC_URI += "\ > file://CVE-2022-41717.patch \ > file://CVE-2022-1962.patch \ > file://CVE-2022-41723.patch \ > + file://CVE-2022-41722-1.patch \ > + file://CVE-2022-41722-2.patch \ > " > > SRC_URI_append_libc-musl = " > file://0009-ld-replace-glibc-dynamic-linker-with-musl.patch" > diff --git a/meta/recipes-devtools/go/go-1.14/CVE-2022-41722-1.patch > b/meta/recipes-devtools/go/go-1.14/CVE-2022-41722-1.patch > new file mode 100644 > index 0000000..f5bffd7 > --- /dev/null > +++ b/meta/recipes-devtools/go/go-1.14/CVE-2022-41722-1.patch > @@ -0,0 +1,53 @@ > +From 94e0c36694fb044e81381d112fef3692de7cdf52 Mon Sep 17 00:00:00 2001 > +From: Yasuhiro Matsumoto <mattn...@gmail.com> > +Date: Fri, 22 Apr 2022 10:07:51 +0900 > +Subject: [PATCH 1/2] path/filepath: do not remove prefix "." when > following > + path contains ":". > + > +Fixes #52476 > + > +Change-Id: I9eb72ac7dbccd6322d060291f31831dc389eb9bb > +Reviewed-on: https://go-review.googlesource.com/c/go/+/401595 > +Auto-Submit: Ian Lance Taylor <i...@google.com> > +Reviewed-by: Alex Brainman <alex.brain...@gmail.com> > +Run-TryBot: Ian Lance Taylor <i...@google.com> > +Reviewed-by: Ian Lance Taylor <i...@google.com> > +Reviewed-by: Damien Neil <dn...@google.com> > +TryBot-Result: Gopher Robot <go...@golang.org> > + > +Upstream-Status: Backport from > https://github.com/golang/go/commit/9cd1818a7d019c02fa4898b3e45a323e35033290 > +CVE: CVE-2022-41722 > +Signed-off-by: Shubham Kulkarni <skulka...@mvista.com> > +--- > + src/path/filepath/path.go | 14 +++++++++++++- > + 1 file changed, 13 insertions(+), 1 deletion(-) > + > +diff --git a/src/path/filepath/path.go b/src/path/filepath/path.go > +index 26f1833..92dc090 100644 > +--- a/src/path/filepath/path.go > ++++ b/src/path/filepath/path.go > +@@ -116,9 +116,21 @@ func Clean(path string) string { > + case os.IsPathSeparator(path[r]): > + // empty path element > + r++ > +- case path[r] == '.' && (r+1 == n || > os.IsPathSeparator(path[r+1])): > ++ case path[r] == '.' && r+1 == n: > + // . element > + r++ > ++ case path[r] == '.' && os.IsPathSeparator(path[r+1]): > ++ // ./ element > ++ r++ > ++ > ++ for r < len(path) && os.IsPathSeparator(path[r]) { > ++ r++ > ++ } > ++ if out.w == 0 && volumeNameLen(path[r:]) > 0 { > ++ // When joining prefix "." and an absolute > path on Windows, > ++ // the prefix should not be removed. > ++ out.append('.') > ++ } > + case path[r] == '.' && path[r+1] == '.' && (r+2 == n || > os.IsPathSeparator(path[r+2])): > + // .. element: remove to last separator > + r += 2 > +-- > +2.7.4 > diff --git a/meta/recipes-devtools/go/go-1.14/CVE-2022-41722-2.patch > b/meta/recipes-devtools/go/go-1.14/CVE-2022-41722-2.patch > new file mode 100644 > index 0000000..e1f7a55 > --- /dev/null > +++ b/meta/recipes-devtools/go/go-1.14/CVE-2022-41722-2.patch > @@ -0,0 +1,104 @@ > +From b8803cb711ae163b8e67897deb6cf8c49702227c Mon Sep 17 00:00:00 2001 > +From: Damien Neil <dn...@google.com> > +Date: Mon, 12 Dec 2022 16:43:37 -0800 > +Subject: [PATCH 2/2] path/filepath: do not Clean("a/../c:/b") into c:\b on > + Windows > + > +Do not permit Clean to convert a relative path into one starting > +with a drive reference. This change causes Clean to insert a . > +path element at the start of a path when the original path does not > +start with a volume name, and the first path element would contain > +a colon. > + > +This may introduce a spurious but harmless . path element under > +some circumstances. For example, Clean("a/../b:/../c") becomes `.\c`. > + > +This reverts CL 401595, since the change here supersedes the one > +in that CL. > + > +Thanks to RyotaK (https://twitter.com/ryotkak) for reporting this issue. > + > +Updates #57274 > +Fixes #57276 > +Fixes CVE-2022-41722 > + > +Change-Id: I837446285a03aa74c79d7642720e01f354c2ca17 > +Reviewed-on: > https://team-review.git.corp.google.com/c/golang/go-private/+/1675249 > +Reviewed-by > <https://team-review.git.corp.google.com/c/golang/go-private/+/1675249+Reviewed-by>: > Roland Shoemaker <bracew...@google.com> > +Run-TryBot: Damien Neil <dn...@google.com> > +Reviewed-by: Julie Qiu <julie...@google.com> > +TryBot-Result: Security TryBots < > security-tryb...@go-security-trybots.iam.gserviceaccount.com> > +(cherry picked from commit 8ca37f4813ef2f64600c92b83f17c9f3ca6c03a5) > +Reviewed-on: > https://team-review.git.corp.google.com/c/golang/go-private/+/1728944 > +Run-TryBot > <https://team-review.git.corp.google.com/c/golang/go-private/+/1728944+Run-TryBot>: > Roland Shoemaker <bracew...@google.com> > +Reviewed-by: Tatiana Bradley <tatianabrad...@google.com> > +Reviewed-by: Damien Neil <dn...@google.com> > +Reviewed-on: https://go-review.googlesource.com/c/go/+/468119 > +Reviewed-by: Than McIntosh <th...@google.com> > +Run-TryBot: Michael Pratt <mpr...@google.com> > +TryBot-Result: Gopher Robot <go...@golang.org> > +Auto-Submit: Michael Pratt <mpr...@google.com> > + > +Upstream-Status: Backport from > https://github.com/golang/go/commit/bdf07c2e168baf736e4c057279ca12a4d674f18c > +CVE: CVE-2022-41722 > +Signed-off-by: Shubham Kulkarni <skulka...@mvista.com> > +--- > + src/path/filepath/path.go | 27 ++++++++++++++------------- > + 1 file changed, 14 insertions(+), 13 deletions(-) > + > +diff --git a/src/path/filepath/path.go b/src/path/filepath/path.go > +index 92dc090..f0f095e 100644 > +--- a/src/path/filepath/path.go > ++++ b/src/path/filepath/path.go > +@@ -14,6 +14,7 @@ package filepath > + import ( > + "errors" > + "os" > ++ "runtime" > + "sort" > + "strings" > + ) > +@@ -116,21 +117,9 @@ func Clean(path string) string { > + case os.IsPathSeparator(path[r]): > + // empty path element > + r++ > +- case path[r] == '.' && r+1 == n: > ++ case path[r] == '.' && (r+1 == n || > os.IsPathSeparator(path[r+1])): > + // . element > + r++ > +- case path[r] == '.' && os.IsPathSeparator(path[r+1]): > +- // ./ element > +- r++ > +- > +- for r < len(path) && os.IsPathSeparator(path[r]) { > +- r++ > +- } > +- if out.w == 0 && volumeNameLen(path[r:]) > 0 { > +- // When joining prefix "." and an absolute > path on Windows, > +- // the prefix should not be removed. > +- out.append('.') > +- } > + case path[r] == '.' && path[r+1] == '.' && (r+2 == n || > os.IsPathSeparator(path[r+2])): > + // .. element: remove to last separator > + r += 2 > +@@ -156,6 +145,18 @@ func Clean(path string) string { > + if rooted && out.w != 1 || !rooted && out.w != 0 { > + out.append(Separator) > + } > ++ // If a ':' appears in the path element at the > start of a Windows path, > ++ // insert a .\ at the beginning to avoid > converting relative paths > ++ // like a/../c: into c:. > ++ if runtime.GOOS == "windows" && out.w == 0 && > out.volLen == 0 && r != 0 { > ++ for i := r; i < n && > !os.IsPathSeparator(path[i]); i++ { > ++ if path[i] == ':' { > ++ out.append('.') > ++ out.append(Separator) > ++ break > ++ } > ++ } > ++ } > + // copy element > + for ; r < n && !os.IsPathSeparator(path[r]); r++ { > + out.append(path[r]) > +-- > +2.7.4 > -- > 2.7.4 > > > > >
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#180218): https://lists.openembedded.org/g/openembedded-core/message/180218 Mute This Topic: https://lists.openembedded.org/mt/98365307/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-