Files
uWebSockets/fuzzing
2021-02-16 18:42:56 +01:00
..
2020-08-23 18:44:20 +02:00
2019-06-14 21:56:06 +02:00
2020-08-06 17:07:19 +02:00
2021-02-16 18:42:56 +01:00
2021-01-11 13:37:26 +01:00
2020-09-28 13:02:54 +02:00
2020-09-28 13:02:54 +02:00
2020-08-26 04:47:11 +02:00
2021-01-29 13:17:56 +01:00
2020-06-27 02:19:29 +02:00

Fuzz-testing of various parsers, mocked examples and system libraries

A secure web server must be capable of receiving mass amount of malicious input without misbehaving or performing illegal actions, such as stepping outside of a memory block or otherwise spilling the beans.

Continuous fuzzing under various sanitizers is done as part of the Google OSS-Fuzz project:

  • UndefinedBehaviorSanitizer
  • AddressSanitizer
  • MemorySanitizer

Overall coverage is about 95% for both uSockets and uWebSockets, all source code included

Currently the following parts are individually fuzzed:

  • WebSocket handshake generator
  • WebSocket message parser
  • WebSocket extensions parser & negotiator
  • WebSocket permessage-deflate compression/inflation helper
  • Http parser (with and without Proxy Protocol v2)
  • Http method/url router
  • Pub/sub "topic tree"

While some targets are entire (mocked) example apps

  • libEpollFuzzer mocks the kernel syscalls and allows to cover a lot of uSockets source code.
  • A mock implementation of uSockets allows to cover a lot of the inbetween logic of uWebSockets.