diff --git a/meta-oe/recipes-support/freerdp/freerdp3/CVE-2026-31897.patch b/meta-oe/recipes-support/freerdp/freerdp3/CVE-2026-31897.patch
new file mode 100644
index 0000000000..2d1b338171
--- /dev/null
+++ b/meta-oe/recipes-support/freerdp/freerdp3/CVE-2026-31897.patch
@@ -0,0 +1,28 @@
+From 8a03413b6b154100076bfedf6388a348189a6791 Mon Sep 17 00:00:00 2001
+From: Armin Novak <armin.novak@thincast.com>
+Date: Tue, 10 Mar 2026 09:17:23 +0100
+Subject: [PATCH] [codec,planar] add early length check to avoid oob read
+
+CVE: CVE-2026-31897
+Upstream-Status: Backport [https://github.com/FreeRDP/FreeRDP/commit/cd27c8faca0eeb0d4309cc5837dfdf3c42eba4e7]
+Signed-off-by: Ankur Tyagi <ankur.tyagi85@gmail.com>
+---
+ libfreerdp/codec/planar.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/libfreerdp/codec/planar.c b/libfreerdp/codec/planar.c
+index 4b51a023e..f3e00f9e5 100644
+--- a/libfreerdp/codec/planar.c
++++ b/libfreerdp/codec/planar.c
+@@ -720,9 +720,9 @@ BOOL planar_decompress(BITMAP_PLANAR_CONTEXT* planar, const BYTE* pSrcData, UINT
+ 
+ 	srcp = pSrcData;
+ 
+-	if (!pSrcData)
++	if (!pSrcData || (SrcSize < 1))
+ 	{
+-		WLog_ERR(TAG, "Invalid argument pSrcData=NULL");
++		WLog_ERR(TAG, "Invalid argument pSrcData=%p [size=%" PRIu32 "]", pSrcData, SrcSize);
+ 		return FALSE;
+ 	}
+ 
diff --git a/meta-oe/recipes-support/freerdp/freerdp3_3.4.0.bb b/meta-oe/recipes-support/freerdp/freerdp3_3.4.0.bb
index 66cc3305e8..a45490e8f5 100644
--- a/meta-oe/recipes-support/freerdp/freerdp3_3.4.0.bb
+++ b/meta-oe/recipes-support/freerdp/freerdp3_3.4.0.bb
@@ -35,6 +35,7 @@ SRC_URI = "git://github.com/FreeRDP/FreeRDP.git;branch=master;protocol=https \
            file://CVE-2026-29775.patch \
            file://CVE-2026-29776.patch \
            file://CVE-2026-31806.patch \
+           file://CVE-2026-31897.patch \
            "
 
 S = "${WORKDIR}/git"
