Failure to define Dialback XML prefix

Description

This issue affects a version of Openfire that is as of yet unreleased. It should not affect anyone running a proper release of Openfire. It is introduced by https://igniterealtime.atlassian.net/browse/OF-2559.

When performing Server Dialback authentication, Openfire seems to neglect defining the dialback namespace that it uses.

See these logs, taken from the perspective of an ejabberd instance, that appears to be missing xmlns:db='jabber:server:dialback' on line 23:

<--: <stream:stream xmlns:db="jabber:server:dialback" xmlns:stream="http://etherx.jabber.org/streams" xmlns="jabber:server" from="conference.openfire.example" to="ejabberd.example" version="1.0"> -->: <?xml version='1.0'?><stream:stream id='5630279679576815420' version='1.0' xml:lang='de' xmlns:db='jabber:server:dialback' xmlns:stream='http://etherx.jabber.org/streams' to='conference.openfire.example' from='ejabberd.example' xmlns='jabber:server'> -->: <stream:features><starttls xmlns='urn:ietf:params:xml:ns:xmpp-tls'><required/></starttls></stream:features> <--: <starttls xmlns='urn:ietf:params:xml:ns:xmpp-tls'/> -->: <proceed xmlns='urn:ietf:params:xml:ns:xmpp-tls'/> <--: <stream:stream xmlns:db="jabber:server:dialback" xmlns:stream="http://etherx.jabber.org/streams" xmlns="jabber:server" from="conference.openfire.example" to="ejabberd.example" version="1.0"> -->: <?xml version='1.0'?><stream:stream id='9216896791510707007' version='1.0' xml:lang='de' xmlns:db='jabber:server:dialback' xmlns:stream='http://etherx.jabber.org/streams' to='conference.openfire.example' from='ejabberd.example' xmlns='jabber:server'> -->: <stream:features><mechanisms xmlns='urn:ietf:params:xml:ns:xmpp-sasl'><mechanism>EXTERNAL</mechanism></mechanisms><dialback xmlns='urn:xmpp:features:dialback'><errors/></dialback></stream:features> <--: <auth xmlns="urn:ietf:params:xml:ns:xmpp-sasl" mechanism="EXTERNAL">Y29uZmVyZW5jZS5tYXJyZWNhLnNwb2lsZWRkdWNrLmN5b3U=</auth> -->: <failure xmlns='urn:ietf:params:xml:ns:xmpp-sasl'><not-authorized/><text xml:lang='en'>Certificate host name mismatch</text></failure> <--: <db:result from="conference.openfire.example" to="ejabberd.example">9cd66bdd211f55b350cb3afccaa7b6bd9e3391dd</db:result> -->: <?xml version='1.0'?><stream:stream version='1.0' xml:lang='de' xmlns:db='jabber:server:dialback' xmlns:stream='http://etherx.jabber.org/streams' to='conference.openfire.example' from='ejabberd.example' xmlns='jabber:server'> <--: <stream:stream xmlns:db="jabber:server:dialback" xmlns:stream="http://etherx.jabber.org/streams" xmlns="jabber:server" from="conference.openfire.example" to="ejabberd.example" id="28l2rzp1zt" version="1.0"> <--: <stream:features><starttls xmlns="urn:ietf:params:xml:ns:xmpp-tls"><required/></starttls><mechanisms xmlns="urn:ietf:params:xml:ns:xmpp-sasl"/><dialback xmlns="urn:xmpp:features:dialback"><errors/></dialback><limits xmlns="urn:xmpp:stream-limits:0"><max-bytes>1048576</max-bytes><idle-seconds>360</idle-seconds></limits></stream:features> -->: <starttls xmlns='urn:ietf:params:xml:ns:xmpp-tls'/> <--: <proceed xmlns="urn:ietf:params:xml:ns:xmpp-tls"/> -->: <?xml version='1.0'?><stream:stream version='1.0' xmlns:db='jabber:server:dialback' xmlns:stream='http://etherx.jabber.org/streams' to='conference.openfire.example' from='ejabberd.example' xmlns='jabber:server'> <--: <?xml version='1.0' encoding='UTF-8'?><stream:stream xmlns:stream="http://etherx.jabber.org/streams" xmlns="jabber:server" xmlns:db="jabber:server:dialback" from="openfire.example" to="ejabberd.example" id="55fdnuzcqa" xml:lang="en-US" version="1.0"><stream:features><mechanisms xmlns="urn:ietf:params:xml:ns:xmpp-sasl"><mechanism>EXTERNAL</mechanism></mechanisms><limits xmlns="urn:xmpp:stream-limits:0"><max-bytes>1048576</max-bytes><idle-seconds>360</idle-seconds></limits></stream:features> -->: <auth mechanism='EXTERNAL' xmlns='urn:ietf:params:xml:ns:xmpp-sasl'>bWVzc2FnaW5nLm9uZQ==</auth> <--: <success xmlns="urn:ietf:params:xml:ns:xmpp-sasl"/> -->: <?xml version='1.0'?><stream:stream version='1.0' xml:lang='en-US' xmlns:db='jabber:server:dialback' xmlns:stream='http://etherx.jabber.org/streams' to='conference.openfire.example' from='ejabberd.example' xmlns='jabber:server'> -->: <db:verify id='9216896791510707007' to='conference.openfire.example' from='ejabberd.example'>9cd66bdd211f55b350cb3afccaa7b6bd9e3391dd</db:verify> <--: <?xml version='1.0' encoding='UTF-8'?><stream:stream xmlns:stream="http://etherx.jabber.org/streams" xmlns="jabber:server" from="openfire.example" to="ejabberd.example" id="55fdnuzcqa" xml:lang="en-US" version="1.0"><stream:features><limits xmlns="urn:xmpp:stream-limits:0"><max-bytes>1048576</max-bytes><idle-seconds>360</idle-seconds></limits></stream:features> <--: <db:verify from="conference.openfire.example" to="ejabberd.example" type="valid" id="9216896791510707007"/> -->: <?xml version='1.0'?><stream:stream version='1.0' xml:lang='en-US' xmlns:db='jabber:server:dialback' xmlns:stream='http://etherx.jabber.org/streams' to='conference.openfire.example' from='ejabberd.example' xmlns='jabber:server'> -->: <stream:error><not-well-formed xmlns='urn:ietf:params:xml:ns:xmpp-streams'/><text xml:lang='en' xmlns='urn:ietf:params:xml:ns:xmpp-streams'>unbound prefix</text></stream:error> -->: </stream:stream> -->: <db:result type='error' to='conference.openfire.example' from='ejabberd.example'><error type='cancel'><remote-server-not-found xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/><text xml:lang='en' xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'>Stream closed by local host: unbound prefix (not-well-formed)</text></error></db:result> -->: </stream:stream>

Environment

None

relates to

Activity

Show:

Guus der Kinderen October 25, 2023 at 6:17 PM

Fixed an issue where the dialback namespace was not added to (authenticated) connections of an Authoritative Server.

Fixed

Details

Assignee

Reporter

Fix versions

Priority

Created September 25, 2023 at 3:29 PM
Updated October 25, 2023 at 6:17 PM
Resolved October 25, 2023 at 6:17 PM

Flag notifications