]> git.puffer.fish Git - matthieu/frr.git/commit
bgpd: Make sure we have enough data to read two bytes when validating AIGP
authorDonatas Abraitis <donatas@opensourcerouting.org>
Fri, 18 Aug 2023 08:28:03 +0000 (11:28 +0300)
committerMergify <37929162+mergify[bot]@users.noreply.github.com>
Thu, 24 Aug 2023 11:44:40 +0000 (11:44 +0000)
commitd8258f9b124254f9fee3dfa79325e9d05e3e678c
treeb671a2c90f6abe73a9befd751a6d2d5a393d8ae1
parent24660906b2228ff3239cccb5fd2cb4c52ddea62d
bgpd: Make sure we have enough data to read two bytes when validating AIGP

Found when fuzzing:

```
==3470861==ERROR: AddressSanitizer: heap-buffer-overflow on address 0xffff77801ef7 at pc 0xaaaaba7b3dbc bp 0xffffcff0e760 sp 0xffffcff0df50
READ of size 2 at 0xffff77801ef7 thread T0
    0 0xaaaaba7b3db8 in __asan_memcpy (/home/ubuntu/frr_8_5_2/frr_8_5_2_fuzz_clang/bgpd/bgpd+0x363db8) (BuildId: cc710a2356e31c7f4e4a17595b54de82145a6e21)
    1 0xaaaaba81a8ac in ptr_get_be16 /home/ubuntu/frr_8_5_2/frr_8_5_2_fuzz_clang/./lib/stream.h:399:2
    2 0xaaaaba819f2c in bgp_attr_aigp_valid /home/ubuntu/frr_8_5_2/frr_8_5_2_fuzz_clang/bgpd/bgp_attr.c:504:3
    3 0xaaaaba808c20 in bgp_attr_aigp /home/ubuntu/frr_8_5_2/frr_8_5_2_fuzz_clang/bgpd/bgp_attr.c:3275:7
    4 0xaaaaba7ff4e0 in bgp_attr_parse /home/ubuntu/frr_8_5_2/frr_8_5_2_fuzz_clang/bgpd/bgp_attr.c:3678:10
```

Reported-by: Iggy Frankovic <iggyfran@amazon.com>
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
(cherry picked from commit f96201e104892e18493f24cf67bb713678e8237b)
bgpd/bgp_attr.c