secdev / secdev/scapy

RadioTap MCS is parsed wrong. PR #3963 seems to work for now.

Open
#4,476 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

needs additional info
Dominant language
Python
Stars
12.6k
Forks
2.2k
Avg merge
1d 4h
Merged PRs (30d)
56

Description

Brief description

How i understand the problem:

  • In Wireshark i see "Known MCS information: 0x00" which results in all Fields (Bandwith, MCS index, Guard interval...) are Absent. maybe odd of Wireshark too, it highlights 3 Bytes but only 7 bits (the previous mentioned Fields) are shown to me.
  • dot11.py RadioTap is parsing to the Antenna signal correctly, but then everything is off by one byte. (Type, Subtype, MAC Address.....). I guess if known mcs information is 0x00 set everything to None or something.
  • RadioTap documentation i don't understand it.
Scapy version

2.5.0+git20240324.2858b51

Python version

3.12.4

Operating system

Linux 6.9.9

Additional environment information

No response

How to reproduce

could take some time and compare it with Wireshark.

def write_mcs(pkt):
    wrpcap(filename='/tmp/mcs_issue.pcap', pkt=pkt, append=True)
    print(f'{pkt} written.', flush=True)
    

sniff(
    iface=interface,
    store=False,
    count=100,
    prn=write_mcs,
    lfilter=lambda x: x.present.value & 0x80000,
    )
Actual result

No response

Expected result

No response

Related resources

I think maybe PR #3963 is the Solution. Yes, parsing works.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start in dot11.py and inspect the RadioTap MCS parsing path, then compare its behavior with PR #3963 and Wireshark. Reproduce with the provided sniffing script and captured packets; done means MCS fields and subsequent 802.11 fields remain correctly aligned when known MCS information is 0x00.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
networking
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.