seemoo-lab / owl

An open Apple Wireless Direct Link (AWDL) implementation written in C
https://owlink.org
GNU General Public License v3.0
1.26k stars 90 forks source link

MacBook and iMac both crash & rebooted #30

Open anschino opened 4 years ago

anschino commented 4 years ago

I very much appreciate your demo program OWL. However, when I tried to run it on my MacBook(2020 ver., Catalina) and iMac(2019 ver., Catalina) as

 sudo owl -i en0

, I see the owl face followed by two lines displaying

 INFO : WLAN device: en0 (addr xxxx)
 INFO : Host device: tap0

Right after that, both of the devices suddenly stop and get rebooted. I also have tried to turn off IPv4 and enable IPv6 by setting it as "Automatically", but no luck. Is there any workaround for this problem? Thank you!

Sn0wfreezeDev commented 4 years ago

Hi, thank you for your report. We discovered this issue as well (last week) and I put some focus on it to resolve it. I could track it down to the call to pcap_inject which is used to inject WiFi frames.
Unfortunately, this kernel panic is triggered by a potential bug in Apple's kernel implementation.

This error only occurs on Macs with a T2 chip (so the newer models). The MacBook Pro 15" 2019 I used to test it for example has such a chip and it results in the same crash.

I opened an issue here https://github.com/the-tcpdump-group/libpcap/issues/922 and we discovered that we will now send a bug report to Apple as this cannot be fixed on our side at the moment.

Kind regards Alex

anschino commented 4 years ago

Thank you for your reply. After reading your post, I tried using your another program "OpenDrop" instead of this OWL, which apparently is not going to be working on my recent macs any time soon. Surprisingly, this time, OpenDrop worked fine on both of my iMac (2019) and MacBook Pro 16" (2020)! How is it possible that OpenDrop works while OWL does not? I thought OpenDrop was built right upon your OWL.

Sn0wfreezeDev commented 4 years ago

Hi,

On macOS you have native support for Apple Wireless Direct Link (AWDL) and OpenDrop builds on top of AWDL as AirDrop does. OWL is an alternative implementation of AWDL and therefore only needed on Linux or on macOS, if more granular control over the AWDL network is needed.

OpenDrop for example is not able to make AWDL connections automatically. This has to be handled by the macOS system itself. OWL can do that and therefore can be more reliable for OpenDrop.