summaryrefslogtreecommitdiff
path: root/Meta/Lagom/Fuzzers
AgeCommit message (Collapse)Author
2021-02-13Lagom/Fuzzers: Add RSA key parser fuzzerLuke
First issue: #5317
2021-02-08Everywhere: Remove unnecessary headers 4/4Ben Wiederhake
Arbitrarily split up to make git bisect easier. These unnecessary #include's were found by combining an automated tool (which determined likely candidates) and some brain power (which decided whether the #include is also semantically superfluous).
2021-02-08Fuzz: Remove unused FuzziliJS headerBen Wiederhake
2021-01-24Lagom/Fuzzers: Fix FuzzilliJs build and update patch for new Fuzzilli versionLuke
-fsanitize=fuzzer was being added to LINKER_FLAGS from Lagom/CMakeLists, which we don't want with FuzzilliJs as we want to define the functions it provides ourselves.
2021-01-09Everywhere: Replace a bundle of dbg with dbgln.asynts
These changes are arbitrarily divided into multiple commits to make it easier to find potentially introduced bugs with git bisect.Everything: The modifications in this commit were automatically made using the following command: find . -name '*.cpp' -exec sed -i -E 's/dbg\(\) << ("[^"{]*");/dbgln\(\1\);/' {} \;
2021-01-03FuzzJs: If the program successfully parsed, try running itLuke
This should help us get a lot more coverage in LibJS.
2021-01-02Lagom/Fuzzers: Add TTF fuzzerLuke
2020-12-25LibELF: Remove ELF::Loader and move everyone to ELF::ImageAndreas Kling
This commit gets rid of ELF::Loader entirely since its very ambiguous purpose was actually to load executables for the kernel, and that is now handled by the kernel itself. This patch includes some drive-by cleanup in LibDebug and CrashDaemon enabled by the fact that we no longer need to keep the ref-counted ELF::Loader around.
2020-12-21Everywhere: Switch from (void) to [[maybe_unused]] (#4473)Lenny Maiorani
Problem: - `(void)` simply casts the expression to void. This is understood to indicate that it is ignored, but this is really a compiler trick to get the compiler to not generate a warning. Solution: - Use the `[[maybe_unused]]` attribute to indicate the value is unused. Note: - Functions taking a `(void)` argument list have also been changed to `()` because this is not needed and shows up in the same grep command.
2020-12-19LibHTTP: Make HTTPRequest::from_raw_request() take a ReadonlyBytesAndreas Kling
This allows us to get rid of some ByteBuffer::wrap() usage.
2020-12-14Lagom/Fuzzers: Fix creation of ELF::LoaderItamar
2020-12-02Meta+LibHTTP: Fuzz HTTP request parsingBen Wiederhake
2020-11-30Lagom/Fuzzers: Add URL fuzzerLuke
2020-11-29Meta: Add GitHub Actions workflow for Lagom with FuzzersLuke
There are cases where Lagom will build with GCC but not Clang. This often goes unnoticed for a while as we don't often build with Clang. However, this is now important to test in CI because of the OSS-Fuzz integration. Note that this only tests the build, it does not run any tests. Note that it also only builds LagomCore, Lagom and the fuzzers. It does not build the other programs that use Lagom.
2020-11-29Lagom: Add a Shell parser fuzzerAnotherTest
2020-11-29Lagom: Add Regex fuzzersLinus Groh
2020-11-27Lagom: Various fixes to make Lagom run on OSS-Fuzz (#4176)DavidKorczynski
2020-11-26Lagom: Rename FuzzBMP to FuzzBMPLoaderNico Weber
2020-11-26Lagom: Make BMP fuzzer look like the other image loader fuzzersNico Weber
2020-11-26Lagom: Add fuzzers for remaining image loaders: ICO, PNG, PBM, PGMNico Weber
2020-11-25Lagom: Fix FuzzJs buildLinus Groh
This was broken with the JS::Parser::Error position changes, but I don't actually see a reason to do anything with the parser errors here, so let's remove it and consider simply not crashing a success. :^)
2020-11-20Lagom: Add a gif loader fuzzerNico Weber
2020-11-19Lagom: Add a jpg fuzzerNico Weber
2020-11-19Lagom: Make fuzzer cmake less repetitiveNico Weber
2020-11-19Lagom: Add a PPM fuzzerNico Weber
It finds the problem fixed in 69518bd178ebfaa but nothing else.
2020-11-14Lagom: Add a gemini fuzzerNico Weber
Didn't find anything interesting, but might as well check it in.
2020-11-08Lagom/Fuzzers: Add a Dockerfile for FuzzilliJsLinus Groh
Based on Fedora. This allows building and running FuzzilliJs and Fuzzilli itself in a Docker/Podman container.
2020-11-07Lagom/Fuzzers: Add Fuzzilli version of FuzzJsLuke
Fuzzilli is a JavaScript engine fuzzer made by googleprojectzero. https://github.com/googleprojectzero/fuzzilli/
2020-09-12Meta+LibGfx: Fuzz BMP parsingBen Wiederhake
2020-09-12LibJS: Fix start position of multi-line tokensBen Wiederhake
This broke in case of unterminated regular expressions, causing goofy location numbers, and 'source_location_hint' to eat up all memory: Unexpected token UnterminatedRegexLiteral. Expected statement (line: 2, column: 4294967292)
2020-08-10Lagom+LibELF: Add an ELF fuzzer, and tweak the code to survive a few minutes ↵Nico Weber
of fuzzing (#3071) If a buffer smaller than Elf32_Ehdr was passed to Image, header() would do an out-of-bounds read. Make parse() check for that. Make most Image methods assert that the image is_valid(). For that to work, set m_valid early in Image::parse() instead of only at its end. Also reorder a few things so that the fuzzer doesn't hit (valid) assertions, which were harmless from a security PoV but which still allowed userspace to crash the kernel with an invalid ELF file. Make dbgprintf()s configurable at run time so that the fuzzer doesn't produce lots of logspam.
2020-07-14Lagom: Add a markdown fuzzerNico Weber
2020-06-01Lagom: Fix target nameSergey Bugaev
2020-05-15LibJS: Let parser keep track of errorsLinus Groh
Rather than printing them to stderr directly the parser now keeps a Vector<Error>, which allows the "owner" of the parser to consume them individually after parsing. The Error struct has a message, line number, column number and a to_string() helper function to format this information into a meaningful error message. The Function() constructor will now include an error message when throwing a SyntaxError.
2020-05-09Lagom: Add missing copyright header to FuzzJS.cppLinus Groh
2020-04-08Lagom: Add fuzz testing for LibJS using libFuzzer (#1692)Paul Redmond
Note: clang only (see https://llvm.org/docs/LibFuzzer.html) - add FuzzJs which will run the LibJS parser on random javascript inputs - added a basic dictionary of javascript tokens To use fuzzer: CC=/usr/bin/clang CXX=/usr/bin/clang++ cmake -DENABLE_FUZZER_SANITIZER=1 .. Fuzzers/FuzzJs -dict=../Fuzzers/FuzzJs.dict