Skip to content

ieee80211: validate aggregate lengths before deaggregation - #1205

Open
mgonzalezlopezudc wants to merge 2 commits into
inet-framework:masterfrom
mgonzalezlopezudc:fix/ieee80211-audit-aggregate-bounds
Open

mgonzalezlopezudc wants to merge 2 commits into
inet-framework:masterfrom
mgonzalezlopezudc:fix/ieee80211-audit-aggregate-bounds

Conversation

@mgonzalezlopezudc

Copy link
Copy Markdown
Contributor

Summary

Malformed subframe lengths could cause packet-boundary exceptions. Preflight aggregate bounds before mutation, preserve caller ownership on failure, and discard failed A-MSDU deaggregation through the recipient service.

Scope

A-MSDU/A-MPDU helpers, IMsduDeaggregation validation contract, and live QoS recipient service.

Dependencies and merge order

No prerequisite within this audit series; this topic was built and tested independently on the pinned base.

Validation

Pinned test base: 7287f347aaca36e557c708d6930a6f5a450b2833.

The isolated topic head passed an assertions-enabled debug build (-O0 -Wall -g0; debug symbols omitted for storage) and the focused checks below. The larger integration source tree also passed debug and release compilation; no separate release build is claimed for this topic.

Executed focused test commands, from the repository root after source setenv -q:

inet_run_unit_tests -m debug -f 'Ieee80211(MsduDeaggregationBounds|MpduDeaggregationBounds|MsduAggregation)_1\.test'
inet_run_module_tests -m debug -f 'Ieee80211MalformedMsduReceive_1\.test'

Results: 3 unit, 1 module cases passed.

Limits and review status

A-MPDU has no production caller on this base; BAR-release cleanup has static review but no runtime regression.

Draft pending final independent review and reconciliation with current upstream. Live PR overlap has not been reverified against the pinned test base.

An oversized subframe or truncated padding previously advanced packet cursors beyond the aggregate. Validate the entire body before consuming input or producing output; failure preserves caller ownership and both live A-MSDU receive paths discard the malformed packet. Emit successful-deaggregation statistics only for validated input.

Unit cases cover truncated headers, payloads, padding, malformed later subframes, empty delimiters and valid controls. The A-MPDU helper has no production caller on this baseline; this change does not claim delimiter CRC validation or receive-path integration for it.

Change: src.ieee80211.aggregation | behavior.change.fix | test | wifi-audit
Exercise the production QoS receive entry point after helper bounds coverage: malformed input must emit one drop with no delivery or successful-deaggregation observation. A valid subsequent aggregate must still deliver its payload.

Change: tests | behavior.add | test | wifi-audit
@mgonzalezlopezudc
mgonzalezlopezudc marked this pull request as ready for review September 16, 2026 09:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant