diff --git a/src/lib/BUILD.gn b/src/lib/BUILD.gn
index 8f20cb1..44a999b 100644
--- a/src/lib/BUILD.gn
+++ b/src/lib/BUILD.gn
@@ -95,6 +95,7 @@
"trace:tests",
"transfer_manifest:tests",
"trivial-allocator:tests",
+ "ubsan-custom:tests",
"ui:tests",
"unwinder:tests",
"usb_bulk:tests",
diff --git a/src/lib/ubsan-custom/BUILD.gn b/src/lib/ubsan-custom/BUILD.gn
new file mode 100644
index 0000000..723c269
--- /dev/null
+++ b/src/lib/ubsan-custom/BUILD.gn
@@ -0,0 +1,11 @@
+# Copyright 2024 The Fuchsia Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+# **TODO(https://fxbug.dev/334165273):** Contents forthcoming
+group("ubsan-custom") {
+}
+
+group("tests") {
+ testonly = true
+}
diff --git a/src/lib/ubsan-custom/OWNERS b/src/lib/ubsan-custom/OWNERS
new file mode 100644
index 0000000..96c33a4
--- /dev/null
+++ b/src/lib/ubsan-custom/OWNERS
@@ -0,0 +1,4 @@
+leona...@google.com
+mcgr...@google.com
+mvan...@google.com
+pho...@google.com
diff --git a/src/lib/ubsan-custom/README.md b/src/lib/ubsan-custom/README.md
new file mode 100644
index 0000000..d3be5c5
--- /dev/null
+++ b/src/lib/ubsan-custom/README.md
@@ -0,0 +1,12 @@
+# Minimal UndefinedBehaviorSanitizer for custom embedded uses
+
+This is a small header-only library that makes it simple to define the runtime
+required by (UndefinedBehaviorSanitizer)[ubsan]. The runtime implementations
+in LLVM's compiler-rt, even the "minimal" one, cannot fit into custom build
+situations such as kernel or embedded code, for a variety of reasons.
+
+**TODO(https://fxbug.dev/334165273):**
+This may be upstreamed into LLVM in the future, removing the need
+for this separate header library.
+
+[ubsan]: https://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html