Type |
Bug
|
Priority |
Major
|
Assignee | |
RedmineID |
8
|
Version |
tigase-server-7.1.0
|
Estimation |
8h
|
Spent time |
37h 30m
|
Related
Issue Votes (0)
Watchers (0)
Hi! As far as I've been able to tell, XMPP servers should disconnect clients
that send illegal XML characters[1]. And more importantly, XMPP servers
should NOT pass through illegal XML characters.
The original RFC3920[2] is a little vague on this issue (search for
"well-formed"), but Peter Saint-Andre's current draft revision[3] is fairly
clear:
"An XMPP entity MUST NOT accept data that is not XML-well-formed; instead it
MUST return an stream error and close the stream over
which the data was received."
I'm able to reproduce this bug using Pidgin 2.7.3 in Linux.
will probably need to use the --multiple flag)
used tigase.im)
"test" then ++u then 013 then space. This will insert the ASCII
character 013 aka 0x0b aka vertical tab
0x0b is invalid in XML 1.0 according to the
spec. The only allowed characters are:
#x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF]
I think maybe some of the characters which are invalid in XML 1.0 are
valid in 1.1, but it seems like XMPP might mandate XML 1.0? I
couldn't find any info in the original RFC, but section 11.8 of Peter
Saint-Andre's proposed draft says, "XMPP is an application profile of
XML 1.0. A future version of XMPP might be defined in terms of higher
versions of XML, but this specification defines XMPP only in terms of
XML 1.0."