diff --git a/meta/recipes-support/libfyaml/libfyaml/0001-Fix-32-bit-build-by-removing-stray-parameter-to-fy_s.patch b/meta/recipes-support/libfyaml/libfyaml/0001-Fix-32-bit-build-by-removing-stray-parameter-to-fy_s.patch
new file mode 100644
index 0000000000..a964a5a71e
--- /dev/null
+++ b/meta/recipes-support/libfyaml/libfyaml/0001-Fix-32-bit-build-by-removing-stray-parameter-to-fy_s.patch
@@ -0,0 +1,25 @@
+From 6e7cc36489999843990ff2da558f9f70e579c8e9 Mon Sep 17 00:00:00 2001
+From: Fredrik Fornwall <fredrik@fornwall.net>
+Date: Sun, 15 Mar 2026 21:47:27 +0100
+Subject: [PATCH] Fix 32-bit build by removing stray parameter to
+ fy_skip_size32()
+
+Upstream-Status: Backport [https://github.com/pantoniou/libfyaml/commit/0982fcefc6a16d4c8cb5b06747d3fc8e630de3ae]
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+---
+ include/libfyaml/libfyaml-vlsize.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/include/libfyaml/libfyaml-vlsize.h b/include/libfyaml/libfyaml-vlsize.h
+index 6ccb7ab..1b950c4 100644
+--- a/include/libfyaml/libfyaml-vlsize.h
++++ b/include/libfyaml/libfyaml-vlsize.h
+@@ -816,7 +816,7 @@ fy_decode_size_nocheck(const uint8_t *start, size_t *sizep)
+ static inline const uint8_t *
+ fy_skip_size(const uint8_t *start, size_t bufsz)
+ {
+-	return fy_skip_size32(start, bufsz, &sz);
++	return fy_skip_size32(start, bufsz);
+ }
+ 
+ static inline const uint8_t *
diff --git a/meta/recipes-support/libfyaml/libfyaml/0001-build-don-t-output-none-required-to-LIBM-if-no-linke.patch b/meta/recipes-support/libfyaml/libfyaml/0001-build-don-t-output-none-required-to-LIBM-if-no-linke.patch
new file mode 100644
index 0000000000..8eeefb532d
--- /dev/null
+++ b/meta/recipes-support/libfyaml/libfyaml/0001-build-don-t-output-none-required-to-LIBM-if-no-linke.patch
@@ -0,0 +1,33 @@
+From 97a93fc2859bcb88ca15dc92e1ba6f852b4a0cb7 Mon Sep 17 00:00:00 2001
+From: "E. Madison Bray" <madison@bray.work>
+Date: Tue, 24 Mar 2026 17:09:24 +0100
+Subject: [PATCH] build: don't output "none required" to LIBM if no linker
+ flags needed for it
+
+Upstream-Status: Backport [https://github.com/pantoniou/libfyaml/commit/24b18e7363b336962fe160c1dc05ca57ba95783c]
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+---
+ configure.ac | 7 ++++---
+ 1 file changed, 4 insertions(+), 3 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index b03cf24..f5c854f 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -254,9 +254,10 @@ AC_DEFINE_UNQUOTED([HAVE_ASAN], [$HAVE_ASAN], [Define to 1 if ASAN is enabled])
+ # Link libm on platforms where trunc() lives outside libc.
+ AC_SEARCH_LIBS([trunc], [m])
+ LIBM="$ac_cv_search_trunc"
+-if test "x$LIBM" = "xno" || test "x$LIBM" = "xyes" ; then
+-	LIBM=""
+-fi
++case "$ac_cv_search_trunc" in
++	no|yes|"none required") LIBM="" ;;
++	*) LIBM="$ac_cv_search_trunc" ;;
++esac
+ AC_SUBST(LIBM)
+ 
+ # check if there's a qsort_r available (musl does not have it)
+-- 
+2.47.3
+
diff --git a/meta/recipes-support/libfyaml/libfyaml/0002-vlsize-Handle-decoding-when-size_t-sizeof-uint64_t.patch b/meta/recipes-support/libfyaml/libfyaml/0002-vlsize-Handle-decoding-when-size_t-sizeof-uint64_t.patch
new file mode 100644
index 0000000000..6090444529
--- /dev/null
+++ b/meta/recipes-support/libfyaml/libfyaml/0002-vlsize-Handle-decoding-when-size_t-sizeof-uint64_t.patch
@@ -0,0 +1,35 @@
+From 3fea9f76ea36ec9364a9935ca1b64fa742d47fa1 Mon Sep 17 00:00:00 2001
+From: Pantelis Antoniou <pantelis.antoniou@konsulko.com>
+Date: Wed, 18 Mar 2026 15:56:10 +0200
+Subject: [PATCH] vlsize: Handle decoding when size_t < sizeof(uint64_t)
+
+Those two might differ.
+
+Upstream-Status: Backport [https://github.com/pantoniou/libfyaml/commit/9192deaac095f9881cc1e5756dede683f36b09d6]
+Signed-off-by: Pantelis Antoniou <pantelis.antoniou@konsulko.com>
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+---
+ include/libfyaml/libfyaml-vlsize.h | 7 ++++++-
+ 1 file changed, 6 insertions(+), 1 deletion(-)
+
+diff --git a/include/libfyaml/libfyaml-vlsize.h b/include/libfyaml/libfyaml-vlsize.h
+index 1b950c4..acfd78d 100644
+--- a/include/libfyaml/libfyaml-vlsize.h
++++ b/include/libfyaml/libfyaml-vlsize.h
+@@ -810,7 +810,12 @@ fy_decode_size(const uint8_t *start, size_t bufsz, size_t *sizep)
+ static inline const uint8_t *
+ fy_decode_size_nocheck(const uint8_t *start, size_t *sizep)
+ {
+-	return fy_decode_size32_nocheck(start, sizep);
++	uint64_t sz;
++	const uint8_t *ret;
++
++	ret = fy_decode_size32_nocheck(start, &sz);
++	*sizep = (size_t)sz;
++	return ret;
+ }
+ 
+ static inline const uint8_t *
+-- 
+2.47.3
+
diff --git a/meta/recipes-support/libfyaml/libfyaml_0.9.4.bb b/meta/recipes-support/libfyaml/libfyaml_0.9.6.bb
similarity index 54%
rename from meta/recipes-support/libfyaml/libfyaml_0.9.4.bb
rename to meta/recipes-support/libfyaml/libfyaml_0.9.6.bb
index 77fe0a15b0..1a98b396b0 100644
--- a/meta/recipes-support/libfyaml/libfyaml_0.9.4.bb
+++ b/meta/recipes-support/libfyaml/libfyaml_0.9.6.bb
@@ -4,8 +4,12 @@ LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=6399094fbc639a289cfca2d660c010aa"
 
 GITHUB_BASE_URI = "https://github.com/pantoniou/libfyaml"
-SRC_URI = "${GITHUB_BASE_URI}/releases/download/v${PV}/libfyaml-${PV}.tar.gz"
-SRC_URI[sha256sum] = "dac2b0af7b757b32a4fa7c6493d85d0f7dea6effd20ae4352570b6a450b9e5fb"
+SRC_URI = "${GITHUB_BASE_URI}/releases/download/v${PV}/libfyaml-${PV}.tar.gz \
+           file://0001-Fix-32-bit-build-by-removing-stray-parameter-to-fy_s.patch \
+           file://0002-vlsize-Handle-decoding-when-size_t-sizeof-uint64_t.patch \
+           file://0001-build-don-t-output-none-required-to-LIBM-if-no-linke.patch \
+           "
+SRC_URI[sha256sum] = "a59cc3331e2eb903ec36933ad52a45888041cac31e44f553a00511131242c483"
 
 inherit autotools pkgconfig github-releases
 
