diff --git a/gnu/packages/ld-wrapper.in b/gnu/packages/ld-wrapper.in
index c1f2038acb61325e6e14a808f51a1f8acb8472f1..16780c58f6ca55b3088b11863d5cb20dac9fc966 100644
--- a/gnu/packages/ld-wrapper.in
+++ b/gnu/packages/ld-wrapper.in
@@ -81,7 +81,19 @@ exec @GUILE@ -c "(load-compiled \"@SELF@.go\") (apply $main (cdr (command-line))
 
 (define %allow-impurities?
   ;; Whether to allow references to libraries outside the store.
-  (getenv "GUIX_LD_WRAPPER_ALLOW_IMPURITIES"))
+  ;; Allow them by default for convenience.
+  (let ((value (getenv "GUIX_LD_WRAPPER_ALLOW_IMPURITIES")))
+    (or (not value)
+        (let ((value (string-downcase value)))
+          (cond ((member value '("yes" "y" "t" "true" "1"))
+                 #t)
+                ((member value '("no" "n" "f" "false" "0"))
+                 #f)
+                (else
+                 (format (current-error-port)
+                         "ld-wrapper: ~s: invalid value for \
+'GUIX_LD_WRAPPER_ALLOW_IMPURITIES'~%"
+                         value)))))))
 
 (define %debug?
   ;; Whether to emit debugging output.
diff --git a/guix/build/gnu-build-system.scm b/guix/build/gnu-build-system.scm
index a39a884852f1b429381d589c5038cdca4beb2e58..be5ad78b93c370f9fecc7e348e309953e30a4148 100644
--- a/guix/build/gnu-build-system.scm
+++ b/guix/build/gnu-build-system.scm
@@ -87,6 +87,9 @@ (define native-input-directories
       (#f                                         ; not cross compiling
        '())))
 
+  ;; Tell 'ld-wrapper' to disallow non-store libraries.
+  (setenv "GUIX_LD_WRAPPER_ALLOW_IMPURITIES" "no")
+
   ;; When cross building, $PATH must refer only to native (host) inputs since
   ;; target inputs are not executable.
   (set-path-environment-variable "PATH" '("bin" "sbin")