[Pidgin] #11320: Pidgin incorrectly requests plaintext auth over an unencrypted connection for XMPP if an unknown mechanism is seen by cyrus-sasl

Pidgin trac at pidgin.im
Tue Feb 9 13:40:01 EST 2010


#11320: Pidgin incorrectly requests plaintext auth over an unencrypted connection
for XMPP if an unknown mechanism is seen by cyrus-sasl
--------------------------+-------------------------------------------------
 Reporter:  dreiss        |     Owner:  rekkanoryo
     Type:  enhancement   |    Status:  new       
Component:  unclassified  |   Version:  2.6.4     
 Keywords:                |  
--------------------------+-------------------------------------------------
 Steps to reproduce:

   - Build Pidgin with cyrus-sasl.
   - Find a server that only supports SASL auth (not XEP-0078), does not
 support TLS, and only supports two authentication mechanisms: DIGEST-MD5
 and a second that cyrus-sasl doesn't know about.  I'm attaching a stub
 version of such a server as a Python script.  Just run it from the command
 line and it will bind to port 5222.
   - Create a new XMPP account pointing to localhost.  Uncheck "require
 SSL", but do not allow plaintext auth over an unencrypted connection.
 Enter an incorrect password (all passwords are incorrect for my demo
 server).
   - Connect to the server.

 Expected behavior:
   - Pidgin realizes that DIGEST-MD5 failed and the other mechanism has no
 chance of succeeding, so it informs the user that authentication failed.

 Observed behavior:
   - Pidgin displays a dialog that asks "[JID] requires plaintext
 authentication over an unencrypted connection.  Allow this and continue
 authentication?"

 I tracked this down to jabber_auth_start_cyrus.  It seems like libpurple's
 strategy on an authentication failure is to request the right to send the
 plaintext password, then try again.  I wasn't able to find any really good
 documentation on cyrus-sasl, do I don't know if it is possible to do
 something better.  Ideally, it would be possible to effectively ask cyrus-
 sasl "I'm not saying you can use a plaintext password yet, but if you
 could, would there be any other mechanisms you could use?"

-- 
Ticket URL: <http://developer.pidgin.im/ticket/11320>
Pidgin <http://pidgin.im>
Pidgin


More information about the Tracker mailing list