Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

bgpd: Check if we have really enough data before doing memcpy for software version #16211

Conversation

ton31337
Copy link
Member

No description provided.

…tware version

If we receive CAPABILITY message (software-version), we SHOULD check if we really
have enough data before doing memcpy(), that could also lead to buffer overflow.

(data + len > end) is not enough, because after this check we do data++ and later
memcpy(..., data, len). That means we have one more byte.

Hit this through fuzzing by

```
    0 0xaaaaaadf872c in __asan_memcpy (/home/ubuntu/frr-public/frr_public_private-libfuzzer/bgpd/.libs/bgpd+0x35872c) (BuildId: 9c6e455d0d9a20f5a4d2f035b443f50add9564d7)
    1 0xaaaaab06bfbc in bgp_dynamic_capability_software_version /home/ubuntu/frr-public/frr_public_private-libfuzzer/bgpd/bgp_packet.c:3713:3
    2 0xaaaaab05ccb4 in bgp_capability_msg_parse /home/ubuntu/frr-public/frr_public_private-libfuzzer/bgpd/bgp_packet.c:3839:4
    3 0xaaaaab05c074 in bgp_capability_receive /home/ubuntu/frr-public/frr_public_private-libfuzzer/bgpd/bgp_packet.c:3980:9
    4 0xaaaaab05e48c in bgp_process_packet /home/ubuntu/frr-public/frr_public_private-libfuzzer/bgpd/bgp_packet.c:4109:11
    5 0xaaaaaae36150 in LLVMFuzzerTestOneInput /home/ubuntu/frr-public/frr_public_private-libfuzzer/bgpd/bgp_main.c:582:3
```

Hit this again by Iggy \m/

Reported-by: Iggy Frankovic <iggyfran@amazon.com>
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
@ton31337
Copy link
Member Author

ci:rerun CI wasn't triggered

@ton31337
Copy link
Member Author

@Mergifyio backport dev/10.1 stable/10.0

Copy link

mergify bot commented Jun 13, 2024

backport dev/10.1 stable/10.0

✅ Backports have been created

@ton31337 ton31337 added this to the 10.1 milestone Jun 13, 2024
@ton31337
Copy link
Member Author

@Mergifyio backport dev/10.1 stable/10.0 stable/9.1

Copy link

mergify bot commented Jun 13, 2024

@ton31337
Copy link
Member Author

ci:rerun

@donaldsharp donaldsharp self-requested a review June 18, 2024 15:20
Copy link
Member

@riw777 riw777 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

looks good

@riw777 riw777 merged commit f047430 into FRRouting:master Jun 24, 2024
11 checks passed
Jafaral added a commit that referenced this pull request Jun 25, 2024
bgpd: Check if we have really enough data before doing memcpy for software version (backport #16211)
ton31337 added a commit that referenced this pull request Jun 25, 2024
bgpd: Check if we have really enough data before doing memcpy for software version (backport #16211)
ton31337 added a commit that referenced this pull request Jun 25, 2024
bgpd: Check if we have really enough data before doing memcpy for software version (backport #16211)
# for free to join this conversation on GitHub. Already have an account? # to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants