Page MenuHomeFreeBSD

icmp: use per rate limit randomized jitter
AcceptedPublic

Authored by tuexen on Mon, Feb 3, 10:43 AM.

Details

Summary

Using the same random jitter for multiple rate limits allows an attacker to use one rate limiter to figure out the current jitter and then use this knowledge to de-randomize the other rate limiters.
This can be mitigated by using a separate randomized jitter for each rate limiter.
This issue was reported in Keyu Man et al.: SCAD: Towards a Universal and Automated Network Side-Channel Vulnerability Detection

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Skipped
Unit
Tests Skipped

Event Timeline

tuexen retitled this revision from tcp: use per rate limit randomized jitter to icmp: use per rate limit randomized jitter.Mon, Feb 3, 11:03 AM
This revision is now accepted and ready to land.Mon, Feb 3, 12:56 PM
sys/netinet/ip_icmp.c
1113

Let's

MPASS(which < BANDLIM_MAX);

Or copy a more verbose assertion from badport_bandlim().

sys/netinet6/icmp6.c
2782

Maybe same assertion here.

Add KASSERT()s, as suggested by glebius@.

This revision now requires review to proceed.Mon, Feb 3, 8:02 PM
tuexen added inline comments.
sys/netinet/ip_icmp.c
1113

Done.

tuexen added inline comments.
sys/netinet6/icmp6.c
2782

Done.

This revision is now accepted and ready to land.Mon, Feb 3, 9:54 PM