Repository navigation
Conversation
mojomex
force-pushed
the
fix/ars548-object-list-bounds
branch
2 times, most recently
from
October 22, 2026 06:33
a6b9b9a to
6db75bf
Compare
mojomex
force-pushed
the
fix/ars548-object-list-bounds
branch
from
October 22, 2026 06:56
6db75bf to
9d05cdf
Compare
mojomex
marked this pull request as ready for review
October 22, 2026 08:05
…(GHSA-vfxx-jpg9-gqcp) The common-format object list selector accepted a packet when either the received payload size or the advertised PDU length matched, so a packet with a matching PDU length but a short payload reached parse_objects_list_packet() and was read out of bounds (CWE-125). - Require both the payload size and the PDU length to match, like the FW40 branch already does - Reject packets shorter than header + max_objects * sizeof(ObjectPacket) in parse_objects_list_packet() as defense in depth - Add regression tests: header-only, truncated, oversized, mismatched-format and off-by-one PDU length packets of both object list formats are rejected, and correctly sized packets of both formats are decoded; truncated detection list and sensor status packets are rejected Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Add a ground-truth bag recorded from an ARS548 flashed with the ARS540DI firmware (5.40.4), mounted as a corner radar. It exercises the 200-object list format (37452-byte payload, PDU length 37444) with real sensor data; previously only the 50-object ARS548 format had a recording. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
mojomex
force-pushed
the
fix/ars548-object-list-bounds
branch
from
October 26, 2026 06:14
6d41215 to
75a4d76
Compare
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## refactor/ars548-decoder-logger #505 +/- ##
==================================================================
+ Coverage 45.72% 47.01% +1.28%
==================================================================
Files 137 137
Lines 10359 10365 +6
Branches 1282 1284 +2
==================================================================
+ Hits 4737 4873 +136
+ Misses 5620 5490 -130
Partials 2 2
Flags with carried forward coverage won't be shown. Click here to find out more. 🚀 New features to boost your workflow:
|
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
PR Type
Related Links
Description
The common-format object list selector in
ContinentalARS548Decoder::process_packet()accepted a packet when either the received payload size or the advertised PDU length matched. A packet with a matching PDU length but a short payload therefore reachedparse_objects_list_packet(), which copies a fixed number of bytes and read out of bounds (CWE-125).header + max_objects * sizeof(ObjectPacket)inparse_objects_list_packet()as defense in depth.Stacked on #515.
Review Procedure
Review the diff and the new test cases in
continental_ros_decoder_test_main_ars548.cpp.Remarks
The test fixture gained a toggle to skip ground-truth comparison and a callback counter so that synthetic packets not present in the test bag can be asserted on.
Pre-Review Checklist for the PR Author
PR Author should check the checkboxes below when creating the PR.
Checklist for the PR Reviewer
Reviewers should check the checkboxes below before approval.
Post-Review Checklist for the PR Author
PR Author should check the checkboxes below before merging.
CI Checks
🤖 Generated with Claude Code