Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added a first fuzzer for several string operations. #1468

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open

Added a first fuzzer for several string operations. #1468

wants to merge 1 commit into from

Conversation

DavidKorczynski
Copy link

Hi guys,

Cross referencing #1462
I have implemented an initial fuzzer and integrated with OSS-fuzz. I have more in the pipeline but figured it would be nice to start small.

David

@DavidKorczynski
Copy link
Author

Any news on this @flashcode ?

@txtsd txtsd mentioned this pull request Apr 22, 2020
@txtsd
Copy link

txtsd commented Apr 22, 2020

I'm eager to see this fuzzer added and improved on!

@DavidKorczynski
Copy link
Author

DavidKorczynski commented Apr 22, 2020

@AdamKorcz and I would be happy to work on integrating fuzzing into weechat - I started it here as it would be nice to get the process going first before we commit more time to it. I also opened a PR on the OSS-Fuzz side (google/oss-fuzz#3584) but I closed it just a few hours ago since I wasn't sure if you were interested here - I can naturally reopen once we progress.

@flashcode
Copy link
Member

flashcode commented Apr 25, 2020

Hi @DavidKorczynski,

Thanks for the PR.

I recently added in WeeChat a way to create fake IRC servers, for now they are used in tests to simulate messages received from the server, see:

void setup ()
{
printf ("\n");
/* create a fake server (no I/O) */
run_cmd ("/server add " IRC_FAKE_SERVER " fake:127.0.0.1 "
"-nicks=nick1,nick2,nick3");
/* connect to the fake server */
run_cmd ("/connect " IRC_FAKE_SERVER);
/* get the server pointer */
ptr_server = irc_server_search (IRC_FAKE_SERVER);
}

And my goal is to use that in a fuzzer. Simulating incoming IRC messages will cover:

  • IRC protocol functions (interesting, CVE were found recenlty here)
  • indirectly many string functions, including the ones you are testing in this PR.

So I think it's a better approach to cover more code via the fuzzer.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature New feature request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants