twisted / twisted/twisted

CramMD5Credentials.setResponse does not check for proper format of parameter 'response'

Open
#6,285 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug core new priority-low
Dominant language
Python
Stars
6k
Forks
1.2k
Avg merge
2d 10h
Merged PRs (30d)
10

Description

implizit's avatar implizit reported
Trac ID trac#6285
Type defect
Created 2013-01-29 16:35:40Z

t.c.credentials.CramMD5Credentials.setResponse assumes that parameter response has a proper format (something like ). However, this is not guaranteed. For example, if you create a small ESMTP-Server with CRAM-MD5-Support, it is possible that the client does not send the proper response. I observed this with Apple Mail. You can test it via telnet by entering:

  EHLO 127.0.0.1
  AUTH CRAM-MD5
  QUIT

In this case, setResponse throws a ValueError. One possible fix is to catch this exception and assign an empty string to self.username and self.reponse. The above "QUIT" will be interpreted as the response, which is IMHO valid w.r.t the RFC.

Searchable metadata
trac-id__6285 6285
type__defect defect
reporter__implizit implizit
priority__low low
milestone__ 
branch__ 
branch_author__ 
status__new new
resolution__None None
component__core core
keywords__ 
time__1359477340000000 1359477340000000
changetime__1359917767000000 1359917767000000
version__None None
owner__ 

Contributor guide

Open the contributing guide

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

Start at the t.c.credentials.CramMD5Credentials.setResponse entry point and inspect how the response is parsed. Exercise it with the malformed CRAM-MD5 input shown in the issue; done means an invalid format no longer raises ValueError and the resulting credentials state matches the requested behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
authentication, networking
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Stale
Clarity
Clearly specified
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.