diff --git a/CMakeModules/CorsikaUtilities.cmake b/CMakeModules/CorsikaUtilities.cmake
index 1ceabe90b3554bfc453bd97ad712154a4a373979..4b083e7a544257df2c90ed80f6cf8567525da8ae 100644
--- a/CMakeModules/CorsikaUtilities.cmake
+++ b/CMakeModules/CorsikaUtilities.cmake
@@ -102,11 +102,12 @@ function (CORSIKA_ADD_TEST name)
   target_include_directories (${name} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
   file (MAKE_DIRECTORY ${PROJECT_BINARY_DIR}/test_outputs/)
   add_test (NAME ${name} COMMAND ${name} -o ${PROJECT_BINARY_DIR}/test_outputs/junit-${name}.xml -r junit)
-  if(CMAKE_CXX_COMPILER_ID STREQUAL AppleClang)
-    target_compile_options(${name} PRIVATE -fno-omit-frame-pointer -fsanitize=address,undefined -fno-sanitize-recover=all)
-    set_target_properties(${name} PROPERTIES LINK_FLAGS "-fsanitize=address,undefined")
-  else()
-    target_compile_options(${name} PRIVATE -fno-omit-frame-pointer -fsanitize=address,leak,undefined -fno-sanitize-recover=all)
-    set_target_properties(${name} PROPERTIES LINK_FLAGS "-fsanitize=address,leak,undefined")
+  set(sanitize "address,implicit-integer-truncation,implicit-conversion,integer,alignment,bool,builtin,bounds,enum,float-cast-overflow,function,pointer-overflow,return,shift,shift-base,shift-exponent,unreachable,vla-bound,vptr")
+  if(NOT CMAKE_CXX_COMPILER_ID STREQUAL AppleClang)
+    # Apple has some security measures which interfere with the leak sanitizer, so we can't use it on OSX
+    set(sanitize "leak,${sanitize}")
   endif()
+  target_compile_options(${name} PRIVATE -fno-omit-frame-pointer -fsanitize=${sanitize} -fno-sanitize-recover=all)
+  set_target_properties(${name} PROPERTIES LINK_FLAGS "-fsanitize=${sanitize}")
+
 endfunction (CORSIKA_ADD_TEST)