BPF List
 help / color / mirror / Atom feed
* [PATCH bpf v3 0/3] Fix hash bucket overflow checks for 32-bit arches
@ 2024-03-07 12:03 Toke Høiland-Jørgensen
  2024-03-07 12:03 ` [PATCH bpf v3 1/3] bpf: Fix DEVMAP_HASH overflow check on " Toke Høiland-Jørgensen
                   ` (3 more replies)
  0 siblings, 4 replies; 9+ messages in thread
From: Toke Høiland-Jørgensen @ 2024-03-07 12:03 UTC (permalink / raw)
  To: Alexei Starovoitov, Daniel Borkmann, David S. Miller,
	Jakub Kicinski, Jesper Dangaard Brouer, John Fastabend,
	Andrii Nakryiko, Martin KaFai Lau, Song Liu, Yonghong Song,
	KP Singh, Stanislav Fomichev, Hao Luo, Jiri Olsa,
	Toke Høiland-Jørgensen, Bui Quang Minh
  Cc: Jesper Dangaard Brouer, netdev, bpf

Syzbot managed to trigger a crash by creating a DEVMAP_HASH map with a
large number of buckets because the overflow check relies on
well-defined behaviour that is only correct on 64-bit arches.

Fix the overflow checks to happen before values are rounded up in all
the affected map types.

v3:
- Keep the htab->n_buckets > U32_MAX / sizeof(struct bucket) check
- Use 1UL << 31 instead of U32_MAX / 2 + 1 as the constant to check
  against
- Add patch to fix stackmap.c
v2:
- Fix off-by-one error in overflow check
- Apply the same fix to hashtab, where the devmap_hash code was copied
  from (John)

Toke Høiland-Jørgensen (3):
  bpf: Fix DEVMAP_HASH overflow check on 32-bit arches
  bpf: Fix hashtab overflow check on 32-bit arches
  bpf: Fix stackmap overflow check on 32-bit arches

 kernel/bpf/devmap.c   | 11 ++++++-----
 kernel/bpf/hashtab.c  | 14 +++++++++-----
 kernel/bpf/stackmap.c |  9 ++++++---
 3 files changed, 21 insertions(+), 13 deletions(-)

-- 
2.43.2


^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2024-03-11 10:58 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-03-07 12:03 [PATCH bpf v3 0/3] Fix hash bucket overflow checks for 32-bit arches Toke Høiland-Jørgensen
2024-03-07 12:03 ` [PATCH bpf v3 1/3] bpf: Fix DEVMAP_HASH overflow check on " Toke Høiland-Jørgensen
2024-03-07 12:03 ` [PATCH bpf v3 2/3] bpf: Fix hashtab " Toke Høiland-Jørgensen
2024-03-08  4:09   ` Alexei Starovoitov
2024-03-11 10:58     ` Toke Høiland-Jørgensen
2024-03-07 12:03 ` [PATCH bpf v3 3/3] bpf: Fix stackmap " Toke Høiland-Jørgensen
2024-03-07 15:55   ` Bui Quang Minh
2024-03-07 16:52     ` Toke Høiland-Jørgensen
2024-03-08  4:10 ` [PATCH bpf v3 0/3] Fix hash bucket overflow checks for " patchwork-bot+netdevbpf

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox