diff --git a/Misc/NEWS.d/next/Windows/2022-09-23-15-40-04.gh-issue-96965.CsnEGs.rst b/Misc/NEWS.d/next/Windows/2022-09-23-15-40-04.gh-issue-96965.CsnEGs.rst
new file mode 100644
index 00000000000000..de7aff0563e553
--- /dev/null
+++ b/Misc/NEWS.d/next/Windows/2022-09-23-15-40-04.gh-issue-96965.CsnEGs.rst
@@ -0,0 +1 @@
+Update libffi to 3.4.3
diff --git a/PCbuild/get_externals.bat b/PCbuild/get_externals.bat
index cd211f13e355e5..9c6bc4eac496db 100644
--- a/PCbuild/get_externals.bat
+++ b/PCbuild/get_externals.bat
@@ -52,7 +52,7 @@ echo.Fetching external libraries...
set libraries=
set libraries=%libraries% bzip2-1.0.8
-if NOT "%IncludeLibffiSrc%"=="false" set libraries=%libraries% libffi-3.4.2
+if NOT "%IncludeLibffiSrc%"=="false" set libraries=%libraries% libffi-3.4.3
if NOT "%IncludeSSLSrc%"=="false" set libraries=%libraries% openssl-1.1.1q
set libraries=%libraries% sqlite-3.38.4.0
if NOT "%IncludeTkinterSrc%"=="false" set libraries=%libraries% tcl-core-8.6.12.1
@@ -76,7 +76,7 @@ for %%e in (%libraries%) do (
echo.Fetching external binaries...
set binaries=
-if NOT "%IncludeLibffi%"=="false" set binaries=%binaries% libffi-3.4.2
+if NOT "%IncludeLibffi%"=="false" set binaries=%binaries% libffi-3.4.3
if NOT "%IncludeSSL%"=="false" set binaries=%binaries% openssl-bin-1.1.1q
if NOT "%IncludeTkinter%"=="false" set binaries=%binaries% tcltk-8.6.12.1
if NOT "%IncludeSSLSrc%"=="false" set binaries=%binaries% nasm-2.11.06
diff --git a/PCbuild/python.props b/PCbuild/python.props
index efcb480976b6a2..c3ab12e7c67250 100644
--- a/PCbuild/python.props
+++ b/PCbuild/python.props
@@ -64,8 +64,8 @@
$(ExternalsDir)sqlite-3.38.4.0\
$(ExternalsDir)bzip2-1.0.8\
$(ExternalsDir)xz-5.2.5\
- $(ExternalsDir)libffi-3.4.2\
- $(ExternalsDir)libffi-3.4.2\$(ArchName)\
+ $(ExternalsDir)libffi-3.4.3\
+ $(ExternalsDir)libffi-3.4.3\$(ArchName)\
$(libffiOutDir)include
$(ExternalsDir)openssl-1.1.1q\
$(ExternalsDir)openssl-bin-1.1.1q\$(ArchName)\