linux/kernel/time
Willy Tarreau c15a77bdda random32: update the net random state on interrupt and activity
commit f227e3ec3b upstream.

This modifies the first 32 bits out of the 128 bits of a random CPU's
net_rand_state on interrupt or CPU activity to complicate remote
observations that could lead to guessing the network RNG's internal
state.

Note that depending on some network devices' interrupt rate moderation
or binding, this re-seeding might happen on every packet or even almost
never.

In addition, with NOHZ some CPUs might not even get timer interrupts,
leaving their local state rarely updated, while they are running
networked processes making use of the random state.  For this reason, we
also perform this update in update_process_times() in order to at least
update the state when there is user or system activity, since it's the
only case we care about.

Reported-by: Amit Klein <aksecurity@gmail.com>
Suggested-by: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Eric Dumazet <edumazet@google.com>
Cc: "Jason A. Donenfeld" <Jason@zx2c4.com>
Cc: Andy Lutomirski <luto@kernel.org>
Cc: Kees Cook <keescook@chromium.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: <stable@vger.kernel.org>
Signed-off-by: Willy Tarreau <w@1wt.eu>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2020-08-07 09:34:01 +02:00
..
Kconfig treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
Makefile timekeeping: Provide a generic update_vsyscall() implementation 2019-06-22 21:21:06 +02:00
alarmtimer.c alarmtimer: Make alarmtimer platform device child of RTC device 2020-02-24 08:36:57 +01:00
clockevents.c
clocksource.c clocksource: Prevent double add_timer_on() for watchdog_timer 2020-02-11 04:35:54 -08:00
hrtimer.c hrtimer: Annotate lockless access to timer->state 2020-01-04 19:18:41 +01:00
itimer.c posix-cpu-timers: Switch thread group sampling to array 2019-08-28 11:50:39 +02:00
jiffies.c
ntp.c ntp/y2038: Remove incorrect time_t truncation 2019-11-12 08:13:44 +01:00
ntp_internal.h
posix-clock.c ptp: fix the race between the release of ptp_clock and cdev 2020-01-04 19:18:48 +01:00
posix-cpu-timers.c posix-cpu-timers: Fix two trivial comments 2019-10-23 14:48:24 +02:00
posix-stubs.c
posix-timers.c hrtimer: Improve comments on handling priority inversion against softirq kthread 2019-08-20 22:05:46 +02:00
posix-timers.h posix-timers: Use a callback for cancel synchronization on PREEMPT_RT 2019-08-20 22:05:46 +02:00
sched_clock.c time/sched_clock: Expire timer in hardirq context 2020-04-17 10:50:02 +02:00
test_udelay.c
tick-broadcast-hrtimer.c tick: broadcast-hrtimer: Fix a race in bc_set_next 2019-09-27 14:45:55 +02:00
tick-broadcast.c
tick-common.c
tick-internal.h
tick-oneshot.c
tick-sched.c tick/sched: Annotate lockless access to last_jiffies_update 2020-01-23 08:22:55 +01:00
tick-sched.h
time.c time: Zero the upper 32-bits in __kernel_timespec on 32-bit 2019-12-13 08:42:18 +01:00
timeconst.bc
timeconv.c
timecounter.c
timekeeping.c timekeeping/vsyscall: Prevent math overflow in BOOTTIME update 2019-08-23 02:12:11 +02:00
timekeeping.h
timekeeping_debug.c
timekeeping_internal.h
timer.c random32: update the net random state on interrupt and activity 2020-08-07 09:34:01 +02:00
timer_list.c timer_list: Guard procfs specific code 2019-06-23 00:08:52 +02:00
vsyscall.c lib/vdso: Update coarse timekeeper unconditionally 2020-03-05 16:43:49 +01:00