⬢ DragonFlyBSD Kernel Audit
DF-2821 / fix.diff
← back to finding ↓ download raw
--- sys/kern/kern_nrandom.c	2026-06-29 12:51:19.000000000 +0000
+++ /tmp/opencode/v26/fixtree/sys/kern/kern_nrandom.c	2026-10-24 16:33:07.877714441 +0000
@@ -882,11 +882,14 @@
 		/*
 		 * Force cpus to diverge.  Chained state and per-cpu state
 		 * is thrown in.
+		 *
+		 * DF-2821: do NOT feed the generator's own output (buf,
+		 * refreshed by read_random() below) back into the pools.
+		 * Self-feedback satisfies the MIN_POOL_SIZE reseed gate
+		 * with zero external entropy, masking total entropy
+		 * starvation behind a continuously-reseeded facade.
 		 */
 		add_buffer_randomness_state(state,
-					    buf, sizeof(buf),
-					    RAND_SRC_THREAD1);
-		add_buffer_randomness_state(state,
 					    (void *)&rgd->gd_cnt,
 					    sizeof(rgd->gd_cnt),
 					    RAND_SRC_THREAD2);