Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 48 additions & 0 deletions SPECS/hvloader/CVE-2025-69419.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
From c640a6f880b8646a8efffca0771312c86dced8ed Mon Sep 17 00:00:00 2001
From: AllSpark <allspark@microsoft.com>
Date: Mon, 9 Feb 2026 15:04:35 +0000
Subject: [PATCH] Check return code of UTF8_putc

Signed-off-by: Azure Linux Security Servicing Account <azurelinux-security@microsoft.com>
Upstream-reference: AI Backport of https://github.com/openssl/openssl/commit/41be0f216404f14457bbf3b9cc488dba60b49296.patch
---
CryptoPkg/Library/OpensslLib/openssl/crypto/asn1/a_strex.c | 6 ++++--
.../Library/OpensslLib/openssl/crypto/pkcs12/p12_utl.c | 5 +++++
2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/CryptoPkg/Library/OpensslLib/openssl/crypto/asn1/a_strex.c b/CryptoPkg/Library/OpensslLib/openssl/crypto/asn1/a_strex.c
index 284dde27..843b0f94 100644
--- a/CryptoPkg/Library/OpensslLib/openssl/crypto/asn1/a_strex.c
+++ b/CryptoPkg/Library/OpensslLib/openssl/crypto/asn1/a_strex.c
@@ -203,8 +203,10 @@ static int do_buf(unsigned char *buf, int buflen,
orflags = CHARTYPE_LAST_ESC_2253;
if (type & BUF_TYPE_CONVUTF8) {
unsigned char utfbuf[6];
- int utflen;
- utflen = UTF8_putc(utfbuf, sizeof(utfbuf), c);
+ int utflen = UTF8_putc(utfbuf, sizeof(utfbuf), c);
+
+ if (utflen < 0)
+ return -1; /* error happened with UTF8 */
for (i = 0; i < utflen; i++) {
/*
* We don't need to worry about setting orflags correctly
diff --git a/CryptoPkg/Library/OpensslLib/openssl/crypto/pkcs12/p12_utl.c b/CryptoPkg/Library/OpensslLib/openssl/crypto/pkcs12/p12_utl.c
index 43b9e3a5..4998fccf 100644
--- a/CryptoPkg/Library/OpensslLib/openssl/crypto/pkcs12/p12_utl.c
+++ b/CryptoPkg/Library/OpensslLib/openssl/crypto/pkcs12/p12_utl.c
@@ -207,6 +207,11 @@ char *OPENSSL_uni2utf8(const unsigned char *uni, int unilen)
/* re-run the loop emitting UTF-8 string */
for (asclen = 0, i = 0; i < unilen; ) {
j = bmp_to_utf8(asctmp+asclen, uni+i, unilen-i);
+ /* when UTF8_putc fails */
+ if (j < 0) {
+ OPENSSL_free(asctmp);
+ return NULL;
+ }
if (j == 4) i += 4;
else i += 2;
asclen += j;
--
2.45.4

37 changes: 37 additions & 0 deletions SPECS/hvloader/CVE-2025-69420.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
From 420cb22403347eb6f9341ea6f9fef9831fd1bc91 Mon Sep 17 00:00:00 2001
From: AllSpark <allspark@microsoft.com>
Date: Mon, 9 Feb 2026 15:05:35 +0000
Subject: [PATCH] Verify ASN1 object's types before attempting to access them
as a particular type

Signed-off-by: Azure Linux Security Servicing Account <azurelinux-security@microsoft.com>
Upstream-reference: AI Backport of https://github.com/openssl/openssl/commit/4e254b48ad93cc092be3dd62d97015f33f73133a.patch
---
.../Library/OpensslLib/openssl/crypto/ts/ts_rsp_verify.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/CryptoPkg/Library/OpensslLib/openssl/crypto/ts/ts_rsp_verify.c b/CryptoPkg/Library/OpensslLib/openssl/crypto/ts/ts_rsp_verify.c
index 7fe3d27e..5d452d26 100644
--- a/CryptoPkg/Library/OpensslLib/openssl/crypto/ts/ts_rsp_verify.c
+++ b/CryptoPkg/Library/OpensslLib/openssl/crypto/ts/ts_rsp_verify.c
@@ -262,7 +262,7 @@ static ESS_SIGNING_CERT *ess_get_signing_cert(PKCS7_SIGNER_INFO *si)
ASN1_TYPE *attr;
const unsigned char *p;
attr = PKCS7_get_signed_attribute(si, NID_id_smime_aa_signingCertificate);
- if (!attr)
+ if (attr == NULL || attr->type != V_ASN1_SEQUENCE)
return NULL;
p = attr->value.sequence->data;
return d2i_ESS_SIGNING_CERT(NULL, &p, attr->value.sequence->length);
@@ -274,7 +274,7 @@ static ESS_SIGNING_CERT_V2 *ess_get_signing_cert_v2(PKCS7_SIGNER_INFO *si)
const unsigned char *p;

attr = PKCS7_get_signed_attribute(si, NID_id_smime_aa_signingCertificateV2);
- if (attr == NULL)
+ if (attr == NULL || attr->type != V_ASN1_SEQUENCE)
return NULL;
p = attr->value.sequence->data;
return d2i_ESS_SIGNING_CERT_V2(NULL, &p, attr->value.sequence->length);
--
2.45.4

41 changes: 41 additions & 0 deletions SPECS/hvloader/CVE-2025-69421.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
From 129add888334b03911f62d87b99ee68cbf8798a9 Mon Sep 17 00:00:00 2001
From: AllSpark <allspark@microsoft.com>
Date: Mon, 9 Feb 2026 15:04:55 +0000
Subject: [PATCH] =?UTF-8?q?PKCS12=5Fitem=5Fdecrypt=5Fd2i=5Fex():=20Check?=
=?UTF-8?q?=20oct=20argument=20for=20NULL\n\nFixes=20CVE-2025-69421\n\nRev?=
=?UTF-8?q?iewed-by:=20Nikola=20Pajkovsky=20<nikolap@openssl.org>\nReviewe?=
=?UTF-8?q?d-by:=20Sa=C5=A1a=20Nedv=C4=9Bdick=C3=BD=20<sashan@openssl.org>?=
=?UTF-8?q?\nReviewed-by:=20Eugene=20Syromiatnikov=20<esyr@openssl.org>\nR?=
=?UTF-8?q?eviewed-by:=20Tomas=20Mraz=20<tomas@openssl.org>\nMergeDate:=20?=
=?UTF-8?q?Mon=20Jan=2026=2019:56:08=202026\n(cherry=20picked=20from=20com?=
=?UTF-8?q?mit=202c13bf15286328641a805eb3b7c97e27d42881fb)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Signed-off-by: Azure Linux Security Servicing Account <azurelinux-security@microsoft.com>
Upstream-reference: AI Backport of https://github.com/openssl/openssl/commit/36ecb4960872a4ce04bf6f1e1f4e78d75ec0c0c7.patch
---
.../Library/OpensslLib/openssl/crypto/pkcs12/p12_decr.c | 6 ++++++
1 file changed, 6 insertions(+)

diff --git a/CryptoPkg/Library/OpensslLib/openssl/crypto/pkcs12/p12_decr.c b/CryptoPkg/Library/OpensslLib/openssl/crypto/pkcs12/p12_decr.c
index 3c860584..bb9491c0 100644
--- a/CryptoPkg/Library/OpensslLib/openssl/crypto/pkcs12/p12_decr.c
+++ b/CryptoPkg/Library/OpensslLib/openssl/crypto/pkcs12/p12_decr.c
@@ -88,6 +88,12 @@ void *PKCS12_item_decrypt_d2i(const X509_ALGOR *algor, const ASN1_ITEM *it,
void *ret;
int outlen;

+
+ if (oct == NULL) {
+ PKCS12err(PKCS12_F_PKCS12_ITEM_DECRYPT_D2I, ERR_R_PASSED_NULL_PARAMETER);
+ return NULL;
+ }
+
if (!PKCS12_pbe_crypt(algor, pass, passlen, oct->data, oct->length,
&out, &outlen, 0)) {
PKCS12err(PKCS12_F_PKCS12_ITEM_DECRYPT_D2I,
--
2.45.4

8 changes: 7 additions & 1 deletion SPECS/hvloader/hvloader.spec
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
Summary: HvLoader.efi is an EFI application for loading an external hypervisor loader.
Name: hvloader
Version: 1.0.1
Release: 16%{?dist}
Release: 17%{?dist}
License: MIT
Vendor: Microsoft Corporation
Distribution: Mariner
Expand Down Expand Up @@ -37,6 +37,9 @@ Patch19: CVE-2024-38796.patch
Patch20: CVE-2025-3770.patch
Patch21: CVE-2025-2296.patch
Patch22: CVE-2025-2295.patch
Patch23: CVE-2025-69419.patch
Patch24: CVE-2025-69420.patch
Patch25: CVE-2025-69421.patch

BuildRequires: bc
BuildRequires: gcc
Expand Down Expand Up @@ -82,6 +85,9 @@ cp ./Build/MdeModule/RELEASE_GCC5/X64/MdeModulePkg/Application/%{name_github}-%{
/boot/efi/HvLoader.efi

%changelog
* Mon Feb 09 2026 Azure Linux Security Servicing Account <azurelinux-security@microsoft.com> - 1.0.1-17
- Patch for CVE-2025-69421, CVE-2025-69420, CVE-2025-69419

* Tue Jan 06 2026 Azure Linux Security Servicing Account <azurelinux-security@microsoft.com> - 1.0.1-16
- Patch for CVE-2025-2295

Expand Down
Loading