mirror of
https://github.com/openembedded/meta-openembedded.git
synced 2026-07-15 16:07:26 +00:00
xrdp: patch CVE-2022-23478
Details: https://nvd.nist.gov/vuln/detail/CVE-2022-23478
Pick the patch that mentions this vulnerability explicitly.
Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
Signed-off-by: Anuj Mittal <anuj.mittal@oss.qualcomm.com>
(cherry picked from commit 63b5fff975)
Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
Signed-off-by: Anuj Mittal <anuj.mittal@oss.qualcomm.com>
This commit is contained in:
committed by
Anuj Mittal
parent
72c3d49f78
commit
c1f03cbf71
@@ -0,0 +1,85 @@
|
|||||||
|
From 6cb54a1c26b53617e1c79a0abc96d03c4add1eb8 Mon Sep 17 00:00:00 2001
|
||||||
|
From: matt335672 <30179339+matt335672@users.noreply.github.com>
|
||||||
|
Date: Wed, 7 Dec 2022 11:12:42 +0000
|
||||||
|
Subject: [PATCH] CVE-2022-23478
|
||||||
|
|
||||||
|
Fix potential OOB write if invalid chansrv channel opened
|
||||||
|
|
||||||
|
Also removed an unnecessary dynamic memory allocation
|
||||||
|
|
||||||
|
CVE: CVE-2022-23478
|
||||||
|
Upstream-Status: Backport [https://github.com/neutrinolabs/xrdp/commit/6cb54a1c26b53617e1c79a0abc96d03c4add1eb8]
|
||||||
|
Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
|
||||||
|
---
|
||||||
|
xrdp/xrdp_mm.c | 21 +++++++++------------
|
||||||
|
1 file changed, 9 insertions(+), 12 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/xrdp/xrdp_mm.c b/xrdp/xrdp_mm.c
|
||||||
|
index 74b0516afa..c91e03ab56 100644
|
||||||
|
--- a/xrdp/xrdp_mm.c
|
||||||
|
+++ b/xrdp/xrdp_mm.c
|
||||||
|
@@ -1360,7 +1360,7 @@ xrdp_mm_trans_process_drdynvc_channel_open(struct xrdp_mm *self,
|
||||||
|
int error;
|
||||||
|
int chan_id;
|
||||||
|
int chansrv_chan_id;
|
||||||
|
- char *name;
|
||||||
|
+ char name[1024 + 1];
|
||||||
|
struct xrdp_drdynvc_procs procs;
|
||||||
|
|
||||||
|
if (!s_check_rem(s, 2))
|
||||||
|
@@ -1368,33 +1368,32 @@ xrdp_mm_trans_process_drdynvc_channel_open(struct xrdp_mm *self,
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
in_uint32_le(s, name_bytes);
|
||||||
|
- if ((name_bytes < 1) || (name_bytes > 1024))
|
||||||
|
- {
|
||||||
|
- return 1;
|
||||||
|
- }
|
||||||
|
- name = g_new(char, name_bytes + 1);
|
||||||
|
- if (name == NULL)
|
||||||
|
+ if ((name_bytes < 1) || (name_bytes > (int)(sizeof(name) - 1)))
|
||||||
|
{
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
if (!s_check_rem(s, name_bytes))
|
||||||
|
{
|
||||||
|
- g_free(name);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
in_uint8a(s, name, name_bytes);
|
||||||
|
name[name_bytes] = 0;
|
||||||
|
if (!s_check_rem(s, 8))
|
||||||
|
{
|
||||||
|
- g_free(name);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
in_uint32_le(s, flags);
|
||||||
|
in_uint32_le(s, chansrv_chan_id);
|
||||||
|
+ if (chansrv_chan_id < 0 || chansrv_chan_id > 255)
|
||||||
|
+ {
|
||||||
|
+ LOG(LOG_LEVEL_ERROR, "Attempting to open invalid chansrv channel %d",
|
||||||
|
+ chansrv_chan_id);
|
||||||
|
+ return 1;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
if (flags == 0)
|
||||||
|
{
|
||||||
|
/* open static channel, not supported */
|
||||||
|
- g_free(name);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
@@ -1410,13 +1409,11 @@ xrdp_mm_trans_process_drdynvc_channel_open(struct xrdp_mm *self,
|
||||||
|
&chan_id);
|
||||||
|
if (error != 0)
|
||||||
|
{
|
||||||
|
- g_free(name);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
self->xr2cr_cid_map[chan_id] = chansrv_chan_id;
|
||||||
|
self->cs2xr_cid_map[chansrv_chan_id] = chan_id;
|
||||||
|
}
|
||||||
|
- g_free(name);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
@@ -18,6 +18,7 @@ SRC_URI = "https://github.com/neutrinolabs/${BPN}/releases/download/v${PV}/${BPN
|
|||||||
file://0001-mark-count-with-unused-attribute.patch \
|
file://0001-mark-count-with-unused-attribute.patch \
|
||||||
file://CVE-2022-23468.patch \
|
file://CVE-2022-23468.patch \
|
||||||
file://CVE-2022-23477.patch \
|
file://CVE-2022-23477.patch \
|
||||||
|
file://CVE-2022-23478.patch \
|
||||||
"
|
"
|
||||||
|
|
||||||
SRC_URI[sha256sum] = "db693401da95b71b4d4e4c99aeb569a546dbdbde343f6d3302b0c47653277abb"
|
SRC_URI[sha256sum] = "db693401da95b71b4d4e4c99aeb569a546dbdbde343f6d3302b0c47653277abb"
|
||||||
|
|||||||
Reference in New Issue
Block a user