feat: filter uncommon flags combinations #80
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.
Overview
Add a filter for invalid TCP flag combinations, preventing security vulnerabilities and resource exhaustion attacks.
Security Vulnerabilities:
Combinations with SYN (ie SYN+FIN ): Packets with both SYN and FIN flags set are logically invalid but can cause ,accumulation of half-open connections and PCB resource exhaustion
Port Scanning: Attackers use unusual flag combinations to:
XMAS scan (FIN+URG+PSH)
NULL scan (no flags)
FIN scan (only FIN)
Protocol Fuzzing:
Non-compliant implementations send malformed packets that can:
Trigger edge cases in state machines
Cause unexpected behavior
Bypass security filters
Current Behavior:
lwIP processes all flag combinations without validation
Invalid packets like SYN+FIN are processed, creating unstable connection states
No protection against flag-based scanning and attacks
Solution
Implement TCP_VALIDATE_FLAGS_ENABLED feature that:
Validates incoming TCP flags before processing
Maintains whitelist of RFC-compliant flag combinations
Rejects invalid combinations with RST response
Prevents resource exhaustion from malformed packets