diff --git a/indra/cmake/00-Common.cmake b/indra/cmake/00-Common.cmake
index 6043b5a603bfdb733fb9ff15d8d00d0666cd3fa7..a6d386ce7344fa887695f527c0ef997b33f09363 100644
--- a/indra/cmake/00-Common.cmake
+++ b/indra/cmake/00-Common.cmake
@@ -32,6 +32,9 @@ set(CMAKE_CXX_FLAGS_DEBUG "$ENV{LL_BUILD_DEBUG}")
 # Portable compilation flags.
 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DADDRESS_SIZE=${ADDRESS_SIZE}")
 
+# Configure asan
+set(ASAN OFF CACHE BOOL "Enable use of asan in builds")
+
 # Configure crash reporting
 set(RELEASE_CRASH_REPORTING OFF CACHE BOOL "Enable use of crash reporting in release builds")
 set(NON_RELEASE_CRASH_REPORTING OFF CACHE BOOL "Enable use of crash reporting in developer builds")
@@ -63,6 +66,10 @@ if (WINDOWS)
   # http://www.cmake.org/pipermail/cmake/2009-September/032143.html
   string(REPLACE "/Zm1000" " " CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS})
 
+  if(ASAN)
+    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /fsanitize=address")
+  endif(ASAN)
+
   # Without PreferredToolArchitecture=x64, as of 2020-06-26 the 32-bit
   # compiler on our TeamCity build hosts has started running out of virtual
   # memory for the precompiled header file.
diff --git a/indra/cmake/LLSharedLibs.cmake b/indra/cmake/LLSharedLibs.cmake
index f69b45cd926193e04ce625a7ae2ed0c1674d2d81..0773e7587a4c803b1f544a86036ee4a43f2e5213 100644
--- a/indra/cmake/LLSharedLibs.cmake
+++ b/indra/cmake/LLSharedLibs.cmake
@@ -18,6 +18,13 @@ macro(ll_deploy_sharedlibs_command target_exe)
   if(NOT DARWIN)
     if(WINDOWS)
       SET_TEST_PATH(SEARCH_DIRS)
+      if(ASAN)
+        if(ADDRESS_SIZE EQUAL 32)
+          LIST(APPEND SEARCH_DIRS "$ENV{VCToolsInstallDir}bin\\Hostx64\\x86")
+        else(ADDRESS_SIZE EQUAL 32)
+          LIST(APPEND SEARCH_DIRS "$ENV{VCToolsInstallDir}bin\\Hostx64\\x64")
+        endif(ADDRESS_SIZE EQUAL 32)
+      endif(ASAN)
       LIST(APPEND SEARCH_DIRS "$ENV{SystemRoot}/system32")
     elseif(LINUX)
       SET_TEST_PATH(SEARCH_DIRS)
diff --git a/indra/cmake/Linking.cmake b/indra/cmake/Linking.cmake
index 3cb235a9d58775166c57cb0f70878829a824dae8..18e44d72e53092a7c81c5886ed2d7708b4981574 100644
--- a/indra/cmake/Linking.cmake
+++ b/indra/cmake/Linking.cmake
@@ -69,6 +69,22 @@ if (WINDOWS)
       ole32
       dbghelp
       )
+
+  if(ASAN)
+    if(ADDRESS_SIZE EQUAL 32)
+      set(WINDOWS_LIBRARIES
+          ${WINDOWS_LIBRARIES}
+          clang_rt.asan_dynamic_runtime_thunk-i386
+          clang_rt.asan_dynamic-i386
+          )
+    else(ADDRESS_SIZE EQUAL 32)
+      set(WINDOWS_LIBRARIES
+          ${WINDOWS_LIBRARIES}
+          clang_rt.asan_dynamic_runtime_thunk-x86_64
+          clang_rt.asan_dynamic-x86_64
+          )
+    endif(ADDRESS_SIZE EQUAL 32)
+  endif(ASAN)
 else (WINDOWS)
   set(WINDOWS_LIBRARIES "")
 endif (WINDOWS)