⬢ DragonFlyBSD Kernel Audit
DF-2300 / fix.diff
← back to finding ↓ download raw
--- /home/maxx/dfbsd/dfbsd/sys/bus/firewire/fwohci.c	2026-06-29 12:51:18.000000000 +0000
+++ fwohci.DF-2300i.fixed	2026-10-18 12:37:24.923807159 +0000
@@ -54,6 +54,7 @@
 #include <sys/endian.h>
 
 #include <sys/thread2.h>
+#include <sys/caps.h>
 
 #include <bus/firewire/firewire.h>
 #include <bus/firewire/firewirereg.h>
@@ -350,6 +351,11 @@
 	if (!ap->a_data)
 		return(EINVAL);
 
+	/* DF-2300: raw OHCI register / PHY access programs the DMA
+	 * engine; restrict it to privileged callers. */
+	if (caps_priv_check(ap->a_cred, SYSCAP_NODRIVER))
+		return(EPERM);
+
 	switch (ap->a_cmd) {
 	case FWOHCI_WRREG:
 #define OHCI_MAX_REG 0x800