diff --git a/meta-oe/recipes-devtools/perl/libdbi-perl/CVE-2026-88816.patch b/meta-oe/recipes-devtools/perl/libdbi-perl/CVE-2026-88816.patch
new file mode 100644
index 0000000000..75cfd22488
--- /dev/null
+++ b/meta-oe/recipes-devtools/perl/libdbi-perl/CVE-2026-88816.patch
@@ -0,0 +1,69 @@
+From 70962570212dc60a5428098cf2a0462ad5945851 Mon Sep 17 00:00:00 2001
+From: "H.Merijn Brand - Tux" <linux@tux.freedom.nl>
+Date: Thu, 10 Sep 2026 11:26:24 +0200
+Subject: [PATCH] Fix FetchHashKeyName   on IV/NV (CVE-2026-88816) (reported by
+ Raj)
+
+CVE: CVE-2026-88816
+Upstream-Status: Backport [https://github.com/perl5-dbi/dbi/commit/70962570212dc60a5428098cf2a0462ad5945851]
+
+Backport Changes:
+- Use the regression's fresh handle for its attribute and prepare
+  calls, with RaiseError enabled for the expected exception.
+- Omit release notes, generated Changes.pm, and dbixs_rev.h updates.
+
+Signed-off-by: Darsh Kelaiya <dkelaiya@cisco.com>
+---
+ DBI.xs              |  2 +-
+ t/06attrs.t         | 11 +++++++++++
+ t/90sql_type_cast.t |  2 +-
+ 3 files changed, 13 insertions(+), 2 deletions(-)
+
+diff --git a/DBI.xs b/DBI.xs
+index c3b2386..2bef3cb 100644
+--- a/DBI.xs
++++ b/DBI.xs
+@@ -5351,7 +5351,7 @@ fetchrow_hashref(sth, keyattrib=Nullch)
+     if (!keyattrib || !*keyattrib) {
+         SV *kn = DBIc_FetchHashKeyName(imp_sth);
+         if (kn && SvOK(kn))
+-            keyattrib = SvPVX(kn);
++            keyattrib = SvPV_nolen(kn); /* Also force stringification */
+         else
+             keyattrib = "NAME";
+     }
+diff --git a/t/06attrs.t b/t/06attrs.t
+index 835e7db..3d80559 100644
+--- a/t/06attrs.t
++++ b/t/06attrs.t
+@@ -328,6 +328,17 @@ check_inherited($drh, "ReadOnly", 1, 0);
+ 
+ }
+ 
++{   # CVE-2026-88816
++    my $h = DBI->connect("dbi:ExampleP:", "", "", { RaiseError => 1, PrintError => 0 });
++    $h->{FetchHashKeyName} = 42;
++    my $s = $h->prepare("select mode,size,name from .");
++    $s->execute;
++    my @err;
++    local $SIG{__DIE__} = sub { push @err => @_ };
++    eval { $s->fetchrow_hashref; };
++    like($err[0], qr{Can't use (?:attribute '42'|an undefined)}, "Invalid HashKeyName");
++}
++
+ done_testing();
+ 
+ 1;
+diff --git a/t/90sql_type_cast.t b/t/90sql_type_cast.t
+index ca37f65..0102a06 100644
+--- a/t/90sql_type_cast.t
++++ b/t/90sql_type_cast.t
+@@ -49,7 +49,7 @@ my @tests = (
+      "aa",         SQL_NUMERIC, 0,               NO_CAST_NO_STRICT, q{["aa"]}],
+     ['non numeric cast to numeric (strict)',
+      "aa",         SQL_NUMERIC, DBIstcf_STRICT,  NO_CAST_STRICT,    q{["aa"]}],
+-
++    # CVE-2026-88815
+     ['invalid sql type',
+      99,           123456789,   0,               INVALID_TYPE,      q{[99]}],
+     ['small int cast to int',
diff --git a/meta-oe/recipes-devtools/perl/libdbi-perl_1.647.bb b/meta-oe/recipes-devtools/perl/libdbi-perl_1.647.bb
index 1e2c4f9933..0b444a7980 100644
--- a/meta-oe/recipes-devtools/perl/libdbi-perl_1.647.bb
+++ b/meta-oe/recipes-devtools/perl/libdbi-perl_1.647.bb
@@ -24,6 +24,7 @@ SRC_URI = "${CPAN_MIRROR}/authors/id/H/HM/HMBRAND/DBI-${PV}.tgz \
            file://CVE-2026-111879.patch \
            file://CVE-2026-88815_p1.patch \
            file://CVE-2026-88815_p2.patch \
+           file://CVE-2026-88816.patch \
            "
 SRC_URI[sha256sum] = "0df16af8e5b3225a68b7b592ab531004ddb35a9682b50300ce50174ad867d9aa"
 
