Improving the security of PX4 by fuzz testing the MAVLink C parser.
In an effort to improve the security of PX4, and of the whole ecosystem around MAVLink, we applied fuzz testing against the MAVLink library. In fuzz testing (“fuzzing”) random data, including invalid and unexpected values, is used as input for a program or programming interface.
In this case, we are targeting the MAVLink parser written in C which is used in PX4, MAVSDK, QGroundControl, and other pieces of software. The parser which parses incoming communication packets can be considered the “door” to the outside world, or third parties and is, therefore, a logical target for potential attackers. By throwing a lot of random bytes at the parser written in C we found 1 security bug and automatically identified another already known bug. The fixes for both bugs are currently under review.
For more information: https://github.com/Auterion/mavlink-fuzz-testing
Author: Julian Oes | Auterion Software Engineer