diff --git a/Misc/NEWS.d/next/Windows/2022-04-01-14-57-40.bpo-47194.IB0XL4.rst b/Misc/NEWS.d/next/Windows/2022-04-01-14-57-40.bpo-47194.IB0XL4.rst
new file mode 100644
index 0000000000000000000000000000000000000000..7e76add45fa953bd7620a1df55eb043d18f8c9d6
--- /dev/null
+++ b/Misc/NEWS.d/next/Windows/2022-04-01-14-57-40.bpo-47194.IB0XL4.rst
@@ -0,0 +1 @@
+Update ``zlib`` to v1.2.12 to resolve CVE-2018-25032.
diff --git a/PCbuild/get_externals.bat b/PCbuild/get_externals.bat
index 189b31246d545992d59354aed26dfb3019bc1dc4..481e06d9fcd06feee3e041f06d221e45cc391e35 100644
--- a/PCbuild/get_externals.bat
+++ b/PCbuild/get_externals.bat
@@ -59,7 +59,7 @@ if NOT "%IncludeTkinterSrc%"=="false" set libraries=%libraries% tcl-core-8.6.12.
 if NOT "%IncludeTkinterSrc%"=="false" set libraries=%libraries% tk-8.6.12.1
 if NOT "%IncludeTkinterSrc%"=="false" set libraries=%libraries% tix-8.4.3.6
 set libraries=%libraries%                                       xz-5.2.2
-set libraries=%libraries%                                       zlib-1.2.11
+set libraries=%libraries%                                       zlib-1.2.12
 
 for %%e in (%libraries%) do (
     if exist "%EXTERNALS_DIR%\%%e" (
diff --git a/PCbuild/python.props b/PCbuild/python.props
index e64173737cf72aafe2a078491a3f34b0a6f22f01..b9211f60d86d4c1c3a446dbfb3e36e3e7e4b81e0 100644
--- a/PCbuild/python.props
+++ b/PCbuild/python.props
@@ -71,7 +71,7 @@
     <opensslOutDir>$(ExternalsDir)openssl-bin-1.1.1n\$(ArchName)\</opensslOutDir>
     <opensslIncludeDir>$(opensslOutDir)include</opensslIncludeDir>
     <nasmDir>$(ExternalsDir)\nasm-2.11.06\</nasmDir>
-    <zlibDir>$(ExternalsDir)\zlib-1.2.11\</zlibDir>
+    <zlibDir>$(ExternalsDir)\zlib-1.2.12\</zlibDir>
     
     <!-- Suffix for all binaries when building for debug -->
     <PyDebugExt Condition="'$(PyDebugExt)' == '' and $(Configuration) == 'Debug'">_d</PyDebugExt>