Skip to content
New issue

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

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

Already on GitHub? Sign in 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)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants