MozillaSecurity / MozillaSecurity/FuzzManager

[CrashManager] Setting "value" of "testcase" type field to "53-2" throws a stacktrace

Open
#465 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug crashmanager
Dominant language
Python
Stars
208
Forks
48
Avg merge
23h 5m
Merged PRs (30d)
2

Description

Setting a bucket with the following signature:

{
  "symptoms": [
    {
      "src": "stderr", 
      "type": "output", 
      "value": "/\\[Non\\-crash bug\\] Mismatch on stdout/"
    }, 
    {
      "type": "testcase", 
      "value": "53-2"
    }
  ]
}

causes this stacktrace in FuzzManager:

Traceback:

File "/usr/local/lib/python2.7/dist-packages/django/core/handlers/exception.py" in inner
  41.             response = get_response(request)

File "/usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py" in _legacy_get_response
  249.             response = self._get_response(request)

File "/usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py" in _get_response
  187.                 response = self.process_exception_by_middleware(e, request)

File "/usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py" in _get_response
  185.                 response = wrapped_callback(request, *callback_args, **callback_kwargs)

File "/usr/local/lib/python2.7/dist-packages/django/contrib/auth/decorators.py" in _wrapped_view
  23.                 return view_func(request, *args, **kwargs)

File "./crashmanager/views.py" in newSignature
  609.         return __handleSignaturePost(request, bucket)

File "./crashmanager/views.py" in __handleSignaturePost
  563.                                                              requiredOutputSources=requiredOutputs))

File "/srv/fuzzmanager.fuzzing.mozilla.org/FuzzManager/FTB/Signatures/CrashSignature.py" in matches
  104.             if not symptom.matches(crashInfo):

File "/srv/fuzzmanager.fuzzing.mozilla.org/FuzzManager/FTB/Signatures/Symptom.py" in matches
  279.             if self.output.matches(line):

File "/srv/fuzzmanager.fuzzing.mozilla.org/FuzzManager/FTB/Signatures/Matchers.py" in matches
  67.             return self.value in val

Exception Type: UnicodeDecodeError at /crashmanager/signatures/new/
Exception Value: 'ascii' codec can't decode byte 0xe3 in position 7: ordinal not in range(128)

Instead of 53-2 which fails, I can set to /53-2/, which works.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Reproduce the signature submission at crashmanager/views.py in newSignature and follow the stack trace through FTB/Signatures/Symptom.py and FTB/Signatures/Matchers.py. Verify that a testcase value of "53-2" no longer raises UnicodeDecodeError, while the slash-wrapped form continues to work.

Written by the indexing model from the issue text.

Assessment

Tech stack
django, python
Domain
backend
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.