Re: [xmpp] IQ Handling vulnerabilities

Kevin Smith <kevin@kismith.co.uk> Sun, 09 February 2014 16:56 UTC

Return-Path: <k.i.smith@gmail.com>
X-Original-To: xmpp@ietfa.amsl.com
Delivered-To: xmpp@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id A02161A0322 for <xmpp@ietfa.amsl.com>; Sun, 9 Feb 2014 08:56:27 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 1.422
X-Spam-Level: *
X-Spam-Status: No, score=1.422 tagged_above=-999 required=5 tests=[BAYES_50=0.8, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622, FREEMAIL_FROM=0.001, SPF_PASS=-0.001] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id UDhOIgNKVCCR for <xmpp@ietfa.amsl.com>; Sun, 9 Feb 2014 08:56:26 -0800 (PST)
Received: from mail-ve0-x235.google.com (mail-ve0-x235.google.com [IPv6:2607:f8b0:400c:c01::235]) by ietfa.amsl.com (Postfix) with ESMTP id EDE361A01DA for <xmpp@ietf.org>; Sun, 9 Feb 2014 08:56:25 -0800 (PST)
Received: by mail-ve0-f181.google.com with SMTP id cz12so4315239veb.12 for <xmpp@ietf.org>; Sun, 09 Feb 2014 08:56:25 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:reply-to:sender:in-reply-to:references:date:message-id :subject:from:to:cc:content-type:content-transfer-encoding; bh=PBXGFcIYnOOY51ycS9zi9LZ8HMas9af/fpBSDRmwdxc=; b=Q7C9Gi+g0FjDwKh8XQIHd77WWpi3PSxkuPxCMGERi8CepggUafZIOUOhJVYPoiBapk lIvf4DOt1VG1WmhM8yzKL4Ga7aXOOpxRGF2zDkwbkiXw1exN82b8vWbVzEQf+QRYMQg4 oONEbcC/ULr6UB7LlR+oSWU/3J/edMKgD0WjYTA+dM+rNPHRmtQ3ciCn/MGZy7hofnAv 0nvYXpJ+8D8gBBqjbTN9RfeIMJK0BM+RI1wPL3PmVNiQsaWflgqxQsbYvuCGuHEXwu+k t8WN2xmVIS0/biGdMU0ddWHExPuqRQ3ATZhkaABftL8fxYFxlQnulcps1vGQxoET3wS9 XATA==
MIME-Version: 1.0
X-Received: by 10.52.171.68 with SMTP id as4mr16817096vdc.0.1391964985831; Sun, 09 Feb 2014 08:56:25 -0800 (PST)
Sender: k.i.smith@gmail.com
Received: by 10.52.245.134 with HTTP; Sun, 9 Feb 2014 08:56:25 -0800 (PST)
In-Reply-To: <12420410-2615-4A32-8998-AFF19D4EF7BC@xnyhps.nl>
References: <CAOb_FnxS-dMT85N7LHj5M9JWk3pL85=ugrDqaT7j5d28HBr0Cw@mail.gmail.com> <CF194491.38AD3%jhildebr@cisco.com> <2F5E925F-021D-408E-91D9-3CC5BEB6BEC6@nostrum.com> <48F4D361-4403-47E6-862D-FBDDDEBCC642@xnyhps.nl> <CF1A369C.38BE2%jhildebr@cisco.com> <CAKHUCzyCwKbmnUoXLHW=XzYbiFrcg-dQsDojGUnA-_r3qK+_Vg@mail.gmail.com> <12420410-2615-4A32-8998-AFF19D4EF7BC@xnyhps.nl>
Date: Sun, 9 Feb 2014 16:56:25 +0000
X-Google-Sender-Auth: N4Yp5-A-_nkQsJk_KEDy12_EcMM
Message-ID: <CAOb_Fny1hoQXH9+8t0XkJDKjoeuXbgqPxeZb99C3GBxsB+O-mg@mail.gmail.com>
From: Kevin Smith <kevin@kismith.co.uk>
To: Thijs Alkemade <thijs@xnyhps.nl>
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Cc: Ben Campbell <ben@nostrum.com>, XMPP Working Group <xmpp@ietf.org>
Subject: Re: [xmpp] IQ Handling vulnerabilities
X-BeenThere: xmpp@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: kevin@kismith.co.uk
List-Id: XMPP Working Group <xmpp.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/xmpp>, <mailto:xmpp-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/xmpp/>
List-Post: <mailto:xmpp@ietf.org>
List-Help: <mailto:xmpp-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/xmpp>, <mailto:xmpp-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 09 Feb 2014 16:56:27 -0000

On Sun, Feb 9, 2014 at 2:13 PM, Thijs Alkemade <thijs@xnyhps.nl> wrote:
>
> On 7 feb. 2014, at 16:50, Dave Cridland <dave@cridland.net> wrote:
>
>> What are the attacks possible against an entity using predictable stanza ids, but which otherwise acts properly (ie, checks to/from on responses, etc)?
>>
>> I'm a bit confused - if an entity isn't checking the to/from of the responses, then sure there's a slew of attacks possible. If it *also* has predictable ids, then the attacks are easier - but they're the same attacks. Aren't they?
>
> The least far-fetched scenario I can think of: you're offering a file transfer
> to someone's MUC room nick. The person disconnects, someone else takes their
> nick and intercepts the file transfer by guessing the 'id' that was used. This
> is also a scenario where a per-address counter will not protect you. (Though a
> better fix is probably to cancel all pending queries to participants when you
> see them disappear from the room...)
>
>> I'm not saying that we shouldn't generally recommend unpredictable ids - it seems relatively simple and causes little harm - but cryptographically secure ones seems overkill, and I'm always nervous of imposing unneeded drains on the entropy store of a system.
>>
>> Also, I've mentioned this elsewhere, but I'll mention it here too: much of the XMPP community seems focussed on clients exhibiting this class of bug, and attacks against those clients. I strongly suspect that not all servers are immune to this, and the attacks on servers are likely to be just as fascinating.
>
> I'm trying to think of a situation where the server sends a iq 'get' to the
> client, but I don't really know any. A lot of iq 'set's, where the server
> informs the client of something (and probably doesn't really care whether that
> results in an 'error' or 'result'), but nothing where the server wants to know
> something from the client. Could you give an example?

There's a fun one where the server sends a ping to the client to check
for inactivity. If another client can keep a dead session alive,
that's quite interesting.

/K