Details: https://nvd.nist.gov/vuln/detail/CVE-2023-40569

Pick the patch that was identified[1] by Debian as the solution.

[1]: https://security-tracker.debian.org/tracker/CVE-2023-40569

Signed-off-by: Gyorgy Sarvari <[email protected]>
---
 .../freerdp/freerdp/CVE-2023-40569.patch      | 38 +++++++++++++++++++
 .../recipes-support/freerdp/freerdp_2.6.1.bb  |  1 +
 2 files changed, 39 insertions(+)
 create mode 100644 meta-oe/recipes-support/freerdp/freerdp/CVE-2023-40569.patch

diff --git a/meta-oe/recipes-support/freerdp/freerdp/CVE-2023-40569.patch 
b/meta-oe/recipes-support/freerdp/freerdp/CVE-2023-40569.patch
new file mode 100644
index 0000000000..792c652307
--- /dev/null
+++ b/meta-oe/recipes-support/freerdp/freerdp/CVE-2023-40569.patch
@@ -0,0 +1,38 @@
+From acc25a2257a960c82adea14faf48730c9139811d Mon Sep 17 00:00:00 2001
+From: akallabeth <[email protected]>
+Date: Tue, 22 Aug 2023 15:05:20 +0200
+Subject: [PATCH] fix missing destination checks
+
+(cherry picked from commit ef7e0d60c207dae478952d795e74751d1516629d)
+
+CVE: CVE-2023-40569
+Upstream-Status: Backport 
[https://github.com/FreeRDP/FreeRDP/commit/23c3daeca1598393f8c93f563f7847a4d67919f1]
+Signed-off-by: Gyorgy Sarvari <[email protected]>
+---
+ libfreerdp/codec/progressive.c | 10 ++++++++--
+ 1 file changed, 8 insertions(+), 2 deletions(-)
+
+diff --git a/libfreerdp/codec/progressive.c b/libfreerdp/codec/progressive.c
+index 60343b881..a30da6201 100644
+--- a/libfreerdp/codec/progressive.c
++++ b/libfreerdp/codec/progressive.c
+@@ -2425,11 +2425,17 @@ INT32 progressive_decompress_ex(PROGRESSIVE_CONTEXT* 
progressive, const BYTE* pS
+               for (j = 0; j < nbUpdateRects; j++)
+               {
+                       const RECTANGLE_16* rect = &updateRects[j];
+-                      const UINT32 nXSrc = rect->left - (nXDst + tile->x);
+-                      const UINT32 nYSrc = rect->top - (nYDst + tile->y);
++                      if (rect->left < updateRect.left)
++                              goto fail;
++                      const UINT32 nXSrc = rect->left - updateRect.left;
++                      const UINT32 nYSrc = rect->top - updateRect.top;
+                       const UINT32 width = rect->right - rect->left;
+                       const UINT32 height = rect->bottom - rect->top;
+ 
++                      if (rect->left + width > surface->width)
++                              goto fail;
++                      if (rect->top + height > surface->height)
++                              goto fail;
+                       if (!freerdp_image_copy(pDstData, DstFormat, nDstStep, 
rect->left, rect->top, width,
+                                               height, tile->data, 
progressive->format, tile->stride, nXSrc,
+                                               nYSrc, NULL, FREERDP_FLIP_NONE))
diff --git a/meta-oe/recipes-support/freerdp/freerdp_2.6.1.bb 
b/meta-oe/recipes-support/freerdp/freerdp_2.6.1.bb
index b909f88310..205f7b0cd7 100644
--- a/meta-oe/recipes-support/freerdp/freerdp_2.6.1.bb
+++ b/meta-oe/recipes-support/freerdp/freerdp_2.6.1.bb
@@ -26,6 +26,7 @@ SRC_URI = 
"git://github.com/FreeRDP/FreeRDP.git;branch=stable-2.0;protocol=https
            file://CVE-2023-39352.patch \
            file://CVE-2023-39353.patch \
            file://CVE-2023-40181.patch \
+           file://CVE-2023-40569.patch \
            "
 
 S = "${WORKDIR}/git"
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#123688): 
https://lists.openembedded.org/g/openembedded-devel/message/123688
Mute This Topic: https://lists.openembedded.org/mt/117378241/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to