-
Notifications
You must be signed in to change notification settings - Fork 2.1k
iq 'from' attributes are not checked #300
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
Comments
Hi, I was at the XSF summit and heard about the issues. The roster one is easy enough to fix, but servers replying from non conforming jids makes it a problem. |
For libpurple we decided on the following change:
That seems to cover all servers that people reported problems with. |
…esence Protocol (XMPP) Fixes robbiehanson#300
I've been looking into XMPP implementations and whether they verify the source of iq replies. See http://mail.jabber.org/pipermail/jdev/2014-January/089824.html and http://mail.jabber.org/pipermail/jdev/2014-January/089838.html for more discussion.
https://github.com/robbiehanson/XMPPFramework/blob/783f62533885e027e8189f8dc133c72a17e9dea0/Utilities/XMPPIDTracker.m appears to contain no code that checks whether the received iq's
from
attribute matches the expectedto
attribute. This can lead to spoofing of iq replies (spoofing rosters, vcards, intercepting file transfers, etc.). The use of UUIDs makes this a lot harder, but not impossible.More importantly,
XMPPFramework/Extensions/Roster/XMPPRoster.m
Line 686 in bcaae05
<query xmlns='jabber:iq:roster'>
child is handled as if it were a push from the server. I have verified (using Flamingo) that it is possible to send additional, fake roster replies from other accounts and the received roster items get added to the contact list. This is a very serious security issue. These replies should come from your own bare JID, but some other servers out there send it from the bare domain or from your own full JID.The text was updated successfully, but these errors were encountered: