-
-
Notifications
You must be signed in to change notification settings - Fork 2.2k
Open
Description
Brief description
MacOS is incorrectly populating the netmask in sockattr.sa_data for routes.
Instead of being left-justified in the buffer and little endian (current NetBSD setting), it is right justified in a 4-byte word aligned buffer and big endian.
This results in the routing only working for default route or named interfaces.
Patch being submitted to correct this issue.
Scapy version
2.7.0dev1 (and prior back to at least 2019)
Python version
3.10
Operating system
MacOS 10.15 through 14 (at least) on Intel
Additional environment information
No response
How to reproduce
Load scapy on MacOS and print(conf.route).
I've seen this in tickets from 2019 to current.
Actual result
Note the netmasks are wrong.
Network Netmask Gateway Iface Output IP Metric
0.0.0.0 0.0.0.0 172.31.1.243 en0 172.31.1.155 1
127.0.0.0 0.255.255.255 127.0.0.1 lo0 127.0.0.1 1
169.254.0.0 255.255.255.255 0.0.0.0 en0 172.31.1.155 1
169.254.0.0 255.255.255.255 0.0.0.0 en19 172.30.11.107 1
172.16.0.0 240.255.255.255 172.30.11.5 en19 172.30.11.107 1
172.30.11.0 255.255.255.255 0.0.0.0 en19 172.30.11.107 1
172.30.11.107 255.255.255.255 0.0.0.0 en19 172.30.11.107 1
172.30.11.255 255.255.255.255 0.0.0.0 en19 172.30.11.107 1
172.31.1.0 255.255.255.255 0.0.0.0 en0 172.31.1.155 1
172.31.1.155 255.255.255.255 0.0.0.0 en0 172.31.1.155 1
172.31.1.243 255.255.255.255 0.0.0.0 en0 172.31.1.155 1
172.31.1.255 255.255.255.255 0.0.0.0 en0 172.31.1.155 1
224.0.0.0 0.240.255.255 0.0.0.0 en0 172.31.1.155 1
224.0.0.0 0.240.255.255 0.0.0.0 en19 172.30.11.107 1
255.255.255.255 255.255.255.255 0.0.0.0 en0 172.31.1.155 1
255.255.255.255 255.255.255.255 0.0.0.0 en0 172.31.1.155 1
255.255.255.255 255.255.255.255 0.0.0.0 en19 172.30.11.107 1
Expected result
Network Netmask Gateway Iface Output IP Metric
127.0.0.0 255.0.0.0 127.0.0.1 lo0 127.0.0.1 1
169.254.0.0 255.255.0.0 0.0.0.0 en0 172.31.1.155 1
169.254.0.0 255.255.0.0 0.0.0.0 en19 172.30.11.107 1
172.16.0.0 255.240.0.0 172.30.11.5 en19 172.30.11.107 1
172.30.11.0 255.255.255.0 0.0.0.0 en19 172.30.11.107 1
172.30.11.107 255.255.255.255 0.0.0.0 en19 172.30.11.107 1
172.30.11.255 255.255.255.255 0.0.0.0 en19 172.30.11.107 1
172.31.1.0 255.255.255.0 0.0.0.0 en0 172.31.1.155 1
172.31.1.155 255.255.255.255 0.0.0.0 en0 172.31.1.155 1
172.31.1.243 255.255.255.255 0.0.0.0 en0 172.31.1.155 1
172.31.1.255 255.255.255.255 0.0.0.0 en0 172.31.1.155 1
224.0.0.0 240.0.0.0 0.0.0.0 en0 172.31.1.155 1
224.0.0.0 240.0.0.0 0.0.0.0 en19 172.30.11.107 1
255.255.255.255 255.255.255.255 0.0.0.0 en0 172.31.1.155 1
255.255.255.255 255.255.255.255 0.0.0.0 en0 172.31.1.155 1
255.255.255.255 255.255.255.255 0.0.0.0 en19 172.30.11.107 1
Related resources
No response
Metadata
Metadata
Assignees
Labels
No labels