XSF Discussion - 2019-09-11

  1. ralphm Daniel: your tweet to upgrade Dino is a bit, let's say, sparse on detail :-D
  2. Daniel which is probably a good thing?
  3. ralphm I don't know?
  4. ralphm Does has it shiny new features, or was there a horrible security issue?
  5. Daniel it had all the CVEs. roster injection. carbon injection. mam injection. https://github.com/dino/dino/commits/master
  6. lovetox_ Does it get a Combo Bonus 😃
  7. jonas’ :D
  8. ralphm Nice.
  9. Daniel i mean they fixed it pretty quick.
  10. ralphm Daniel: but you didn't want to rub it in?
  11. Daniel now someone should probably notify the debian maintainers
  12. Daniel ralphm, it's extremly easy to exploit. and someone has exploited the roster one in this muc yesterday
  13. Daniel so i don’t want to give details
  14. ralphm Well, if someone is updating the CVEs, isn't that automatic?
  15. ralphm Also, is there a changelog somewhere?
  16. Daniel dino hasn't had a release yet
  17. Daniel so no there is no changelog
  18. Daniel aside from git
  19. jonas’ they should definitely allocate CVEs
  20. Ge0rG they, or the researcher who found it?
  21. jonas’ "someone", actually
  22. jonas’ I don’t think you need to be affiliated with a project to allocate CVEs
  23. Ge0rG yeah, when I find something, I typically allocate the CVEs myself
  24. Daniel i'll probably write something down for the three bugs together
  25. Daniel i mean it's the same general mistake
  26. Ge0rG Nobody reads the Security Considerations
  27. Daniel yes
  28. Ge0rG is there a bold-red-blinking markup we can use at the top of https://xmpp.org/extensions/xep-0280.html#inbound ?
  29. Daniel maybe. if people only read the examples; we should have bad examples
  30. jonas’ Ge0rG, having a thing in xep.dtd / xep.xsl which allows to mark up Important boxes would be neat
  31. Daniel i mean explicitly examples showing you what kind of messages to reject
  32. jonas’ stuff like sphinx generates with .. warning::
  33. jonas’ Ge0rG, can you file a thing against xeps/XEP-0001?
  34. jonas’ that won’t help with RFC 6121, but it’s something
  35. Ge0rG jonas’: an issue thing or a PR thing?
  36. Ge0rG Daniel: that's actually an excellent idea
  37. Ge0rG jonas’: https://github.com/xsf/xeps/issues/821
  38. Ge0rG Daniel: how about https://op-co.de/tmp/xep-0280.html#example-11
  39. Daniel The paragraph above that is also new?
  40. Daniel Looks fine
  41. Daniel Yeah that's probably a good improvement
  42. Ge0rG Daniel: yeah
  43. Ge0rG Daniel: but you can't link to paragraphs
  44. Ge0rG and I didn't want to link to example 10
  45. Daniel Makes you question why that wasn't in there before
  46. Ge0rG Daniel: because XEP authors aren't security consultants
  47. Daniel Maybe we want to go so far and in the security section say in <strong> *This has been exploited several times*
  48. Daniel And link to the CVE
  49. Daniel Probably a separate PR
  50. Ge0rG it would mark my third PR for 0280 today.
  51. Daniel I mean it is absolutely ridiculous that this has struck so many times in three different iterations
  52. Ge0rG I suppose it is enough to have a negative example for "received", without one for "sent".
  53. Daniel Yes
  54. Daniel Hopefully...
  55. Ge0rG Daniel: do you have the link to the initial incarnation?
  56. Daniel This predates my involvement in xmpp
  57. Daniel So no
  58. jonas’ Ge0rG, a PR thing would be even better than an issue thing
  59. Ge0rG jonas’: yeah, but my work.
  60. Licaon_Kter [cnvrs] MattJ Any reason this room does not _warn the user that the discussions are logged_ ?
  61. ralphm As for RFCs, I suppose it could be in errata, but then again, who reads those.
  62. Ge0rG nobody :(
  63. Daniel up until recently i didn’t even know they existed
  64. Zash Licaon_Kter [cnvrs] looks like it only sends the signal when archiving is enabled or disabled.
  65. Zash And also the semantic difference between archiving and logging.
  66. pep. Maybe you should have two messages? :P
  67. Zash Link is in the subject and I /think/ also in some room metadata.
  68. pep. Some clients don't really show subjects in a prominent place anymore :(
  69. Licaon_Kter [cnvrs] Zash Subject/Title aside, Converse.js shows them, but will also show_"groupchat logging is now enabled"_ as per https://xmpp.org/extensions/xep-0045.html#enter-logging so, is Prosody not honouring that? Umm https://hg.prosody.im/trunk/file/tip/plugins/mod_muc_mam.lua#l99 maybe
  70. pep. he just answered you
  71. Licaon_Kter [cnvrs] I, obviously, did not undestand a thing 🙂
  72. pep. "when [it] is enabled or disabled."
  73. Zash It is missing a thing for when you join
  74. Licaon_Kter [cnvrs] Ok, right...
  75. Zash Report issue. Patches especially appreciated 🙂
  76. Licaon_Kter [cnvrs] True
  77. Zash But the public logs are provided by a separate module. Should that one add the tag?
  78. Zash IIRC both of them should only let you get logs/archives if you could join the room and get them yourself
  79. lovetox_ If the user is entering a room in which the discussions are logged to a public archive (often accessible via HTTP), the service SHOULD allow the user to enter the room but MUST also warn the user that the discussions are logged.
  80. lovetox_ So Zash this explicitly mentions http based logs
  81. lovetox_ i would argue it does not matter how the server logs, what counts is that is publicly available, and the user should be warned about it
  82. Licaon_Kter [cnvrs] FYI, I only noticed this because ejabberd is announcing it every time Converse.js mysteriously dis/reconnects https://github.com/conversejs/converse.js/issues/1697
  83. Ge0rG lovetox_: so it's also true for MAM
  84. Daniel btw i've requested a CVE. i was a bit unsure on the how given that dino technically had no releases yet; but let's see if it gets accepted
  85. balu_der_baer Daniel, Requested a CVE for which issue exactly?
  86. pep. It speaks!
  87. Daniel balu_der_baer, I put roster, carbons, and mam in one
  88. Ge0rG ...in Dino
  89. Daniel probbaly not worth creating different ones
  90. Ge0rG It would make sense to ask for one for Converse, though.
  91. Daniel balu_der_baer, i can credit you on the carbon one
  92. pep. Right. JC also just fixed an issue in converse
  93. Ge0rG Or is it just the 2017 one revamped?
  94. pep. It looks like it
  95. Ge0rG pep.: but it was fixed back then
  96. pep. In these clients
  97. Daniel for converse?
  98. Daniel was converse hit back then?
  99. Ge0rG pep.: converse was one of the clients, yes
  100. pep. heh, ok
  101. balu_der_baer I think the converse is the relevant one, given it is actually released software and not some "I compiled code from the internetz and is has bugz"
  102. pep. Isn't that the case for all software
  103. Daniel balu_der_baer, yes probably. dino is in debian and some other distros tho
  104. Kev I think dino has been released hasn't it? It's in Debian and stuff.
  105. Daniel and in fairly wide use
  106. Ge0rG pep.: I've heard that there is software that you need to type from a book
  107. pep. Kev, nope
  108. pep. no release
  109. Kev pep.: https://packages.debian.org/search?keywords=dino-im - different project?
  110. pep. No
  111. pep. But no release
  112. Kev Then it's been released.
  113. pep. No
  114. Daniel and that kids is why you dont make packages for git
  115. pep. Kev, https://tracker.debian.org/pkg/dino-im
  116. pep. look at the version string
  117. Zash Hey kids wanna get into a semantics discussion? What is a release?
  118. Kev I'm not saying that upstream say it's stable.
  119. Kev I'm saying that it has been released. I.e. it is available to users.
  120. pep. "It's in Debian so it's released!"
  121. pep. Ok let's leave the semantic discussions for later
  122. Kev Pretty much the definition of released is that it's available, yes.
  123. pep. Upstream hasn't cut a release yet, is all I'm saying.
  124. pep. Distributions do whatever they want with it
  125. Daniel it is probably worthwhile to get a CVE for. and it has already been requested
  126. Daniel so we don’t need to argue about it :-)
  127. Kev I understand that upstream may not have yet tagged a stable release. Just that that's largely irrelevant to users if they can apt install it.
  128. pep. So is it fine if I package it myself for my own use? Can I also say the software has been released? :)
  129. Kev I also understand that if someone uploaded it to Debian before upstream said it was ready for use, that sucks for upstream.
  130. pep. Or as long as it's published
  131. Ge0rG Kev: that sucks for debian
  132. Kev That too.
  133. Daniel it sucks for everyone
  134. pep. Ge0rG, you mean for Debian's users
  135. Kev That three.
  136. Daniel upstream. debian. the users
  137. Ge0rG Software releases are hard. Let's go shopping!
  138. Ge0rG almost wrote "shipping"
  139. Daniel am i seeing this correctly that converse has different mam/carbon parsing code for muc vs 1:1
  140. Daniel wtf
  141. Daniel and it hit only muc because of that
  142. balu_der_baer I know that Dino developers tell people to not use the debians "release" build but always use the latest nightly instead. And my guess is that those patches are caused by them preparing for a first real release
  143. balu_der_baer Daniel assessing Dino to be vulnerable to the MAM issue predates the commit time of the fix to Dino master by 5 minutes. Either they were super fast, Daniel told them before writing here or they actually knew before 🤔️
  144. Ge0rG A conspiracy within a conspiracy?
  145. Daniel balu_der_baer, we were in here talking about how it is most likely vuln
  146. Daniel but i was out for a midnight snack before i could be bothered to actually verify
  147. pep. They also have access to this muc :)
  148. Daniel and also if you have just before that fixed the roster and carbon issue the mam fix could easily be done in 5 min
  149. Daniel it's the exact same lines of code copy pasted
  150. balu_der_baer Is anyone filing a CVE for the stanza id bug in Prosody I discovered yesterday?
  151. Daniel is it prosody not filtering out?
  152. Daniel i didn’t catch you mentioning that
  153. Daniel so i'm guessing
  154. balu_der_baer yes
  155. Daniel obvious bugs are obvious
  156. Daniel just get one yourself i guess?
  157. balu_der_baer I didn't mention any of the bugs, I left this task to you guys.
  158. Daniel did it not filter in general? or just under certain conditions
  159. Daniel well how would the stanza-id thing manifest itself?
  160. Daniel aside from MAM catchup being fucked
  161. balu_der_baer I guess as long as nobody tries to use them for anything, it won't...
  162. Daniel also there is code to do it…
  163. balu_der_baer I leave it to you or any other dev to find out when and why it doesn't work, I am not into Lua
  164. Daniel well i'm not yet sure the bug exists
  165. balu_der_baer How would one find out?
  166. pep. balu_der_baer, hint? around what time?
  167. pep. I could go through the logs..
  168. balu_der_baer This one maybe?
  169. Daniel this room doesn’t claim to do the cleaning
  170. Daniel as a client you are supposed to parse the sid only if the server announces that
  171. pep. I'm somewhat happy poezio didn't display the second message, "Or this one"
  172. pep. <body xmlns="broken">Or this one</body>
  173. balu_der_baer Daniel, Technically correct.
  174. pep. <message xml:lang="en" type="groupchat" to="pep@bouah.net/poezio-C7iY" from="xsf@muc.xmpp.org/balu_der_baer" id="c090def67ff04d4dae5cfc260bf71522"><body>This one maybe?</body><stanza-id xmlns="urn:xmpp:sid:0" by="xsf@muc.xmpp.org" id="2019-09-11-185b3f943380209c" /><stanza-id xmlns="urn:xmpp:sid:0" by="xsf@muc.xmpp.org" id="2019-09-11-a55228b004fa960d" /><origin-id xmlns="urn:xmpp:sid:0" id="c090def67ff04d4dae5cfc260bf71522" /></message> <message xml:lang="en" type="groupchat" to="pep@bouah.net/poezio-C7iY" from="xsf@muc.xmpp.org/balu_der_baer" id="e11708f4ba544d3e8ceee73bf579544d"><body xmlns="broken">Or this one</body><stanza-id xmlns="urn:xmpp:sid:0" by="xsf@muc.xmpp.org" id="2019-09-11-185b3f943380209c" /><origin-id xmlns="urn:xmpp:sid:0" id="e11708f4ba544d3e8ceee73bf579544d" /></message>
  175. pep. For reference
  176. Daniel so if you find a client that uses this for catchup (or anything) then you have your bug
  177. balu_der_baer When a message is archived, the server MUST add an stanza-id element as defined in Unique and Stable Stanza IDs (XEP-0359) [2] to the message, which informs the recipient of where and under what ID the message is stored. When doing this the server MUST follow the business rules defined in XEP-0359.
  178. pep. hmm.
  179. pep. That first message was cut in poezio.
  180. pep. Because of the <stanza-id /> :/
  181. pep. <message xml:lang="en" type="groupchat" to="pep@bouah.net/poezio-C7iY" from="xsf@muc.xmpp.org/balu_der_baer" id="b23f6efec2cf4ac2ad23d7da18fb7367"><body>When a message is archived, the server MUST add an <stanza-id /> element as defined in Unique and Stable Stanza IDs (XEP-0359) [2] to the message, which informs the recipient of where and under what ID the message is stored. When doing this the server MUST follow the business rules defined in XEP-0359.</body><stanza-id xmlns="urn:xmpp:sid:0" by="xsf@muc.xmpp.org" id="2019-09-11-e360996b290c9aae" /><origin-id xmlns="urn:xmpp:sid:0" id="b23f6efec2cf4ac2ad23d7da18fb7367" /></message>
  182. balu_der_baer I admit, it's funny to see how different clients screw up different things. None of them seems to be really solid about anything so far.
  183. pep. indeed
  184. jonas’ le fuck wat
  185. jonas’ balu_der_baer, which client is that?
  186. pep. version string says Movim 0.15
  187. jonas’ nice
  188. jonas’ report an issue against movibm
  189. Zash There's the @by. This server needs some upgrades, but that part looks correct?
  190. balu_der_baer jonas, openssl s_client
  191. jonas’ report an issue against movim
  192. pep. heh
  193. balu_der_baer Was using Gajim before, but it's XML console does too many sanity checks for doing such evil things
  194. pep. Maybe poezio's /rawxml doesn't :-°
  195. jonas’ I’ll just leave now
  196. Daniel how is <body>foo <bar/> something</body> supposed to render?
  197. Kev It's not, because that's illegal.
  198. Daniel not render the entire message?
  199. Kev The server is allowed to bounce it, even. But if it gets through to a client, anything's fair game, I think.
  200. flow that's what I would do, and as server close the client session (of course configurable, so that if you really want to support broken clients)
  201. balu_der_baer The body element MUST NOT contain mixed content (as defined in Section 3.2.2 of [XML]).
  202. flow balu_der_baer, IIRC this is not even mixed content
  203. Kev flow: It's not?
  204. flow maybe it is
  205. Kev If it's not then my understanding of mixed content is off.
  206. flow I just though thtat mixed content is text content + element
  207. flow and not text content + element + text content
  208. balu_der_baer An element type has mixed content when elements of that type may contain character data, optionally interspersed with child elements.
  209. flow luckily there is a reference where I can lookup this and refresh my memory
  210. flow or I let balu_der_baer do the work ;)
  211. MattJ afaik mixed just means multiple types are used (both element and text nodes), it doesn't mean a specific order or number of nodes
  212. Kev That's certainly how the XMPP specs have used the term, yes.
  213. flow yep, convinced, and we don't do that in xmpp
  214. Daniel i mean cutting your own c2s when your server sends you this is probably not ideal
  215. flow nobody suggested this
  216. Daniel no. i was just thinking out loud if i need to do something different in Conversations
  217. Kev Daniel: No, especially as servers are allowed to send you crap. But I don't think we're suggesting that.
  218. balu_der_baer Daniel, You need to fix the <body xmlns="broken"> thing
  219. Daniel balu_der_baer, already made a note
  220. pep. I also opened issues in poezio.
  221. pep. Though that's probably in slixmpp
  222. flow background? implementations do not consider the namespace of body elements?
  223. larma I have the feeling its super productive if random people just push random stanzas in xsf@ 😉
  224. pep. let's do that more often
  225. Ge0rG > None of them seems to be really solid about anything so far. Nobody has complained about yaxim so far. But don't even try to put different xml:langs into the game ;)
  226. MattJ An ancient one is simply putting in multiple <body> (same namespace and xml:lang)
  227. MattJ Some clients would render the first, some the last
  228. Ge0rG yeah, having multiple elements with the same name in any kind of hashmap is a well known security issue
  229. balu_der_baer ⚠ Your client renders a first body when it shouldn't
  230. MattJ What should it render?
  231. balu_der_baer Nothing, it's an invalid message
  232. mathieui I think a few clients have a history of trying to fix received namespaces to work around very old bugs
  233. pep. Why do we try to keep compat with broken stuff? :(
  234. pep. Then we in turn we end up broken
  235. flow pep., some do, some avoid workarounds for broken implementations
  236. Kev You don't have a lot of choice dealing with broken stuff.
  237. pep. I wish we'd do that as a collective effort to push broken stuff away
  238. Kev At least not in an open ecosystem.
  239. flow I am in the latter camp FWIW
  240. pep. I also am
  241. Kev You might not try to 'fix up' the broken content, but you have to deal with it.
  242. flow Kev, I don't think this is true.
  243. pep. Kev, you do, you can just ignore them
  244. Kev pep.: Which is dealing with it.
  245. pep. Yes, while some others try to keep compat
  246. MattJ When we began Prosody, many of the other servers were "broken" in various ways... nobody would have used Prosody if we hadn't added workarounds for them
  247. flow Kev, sounded more like you meant that we don't have a choice besides adding workarounds into our code
  248. Kev flow: Yes, that's right.
  249. MattJ Not being able to s2s to 99% of the existing network was not an option :)
  250. pep. MattJ, now that you're a bit more notorious, here's your time :)
  251. Kev Like when ejabberd's PEP module sent tonnes of spurious messages, and if you wanted to avoid annoying your users you had to do something about them.
  252. MattJ Right, I'm just pointing out that you can't just make that your blanket stance towards issues like this
  253. Kev (ignore them, in fact, but it took code to ignore them)
  254. Ge0rG Is there consensus that a client MUST NOT render any bodies from a message that contains multiple bodies?
  255. Ge0rG (assuming equal xml:lang)
  256. Kev Ge0rG: You mean multiple bodies in the stream namespace, without distinguishing xml:lang, which might itself come from the stream?
  257. flow MattJ, true, it is always a per case decission, but to often that decission is "just add a workaround"
  258. MattJ In Prosody our policy is to avoid workarounds, and if that's not feasible then we add the workaround with a 'COMPAT' comment that explains when it was added and why (referencing bug reports, etc.)
  259. Zash pep.: Right when we're a bit behind on compliance features in core? Are you working for P1? ;)
  260. Ge0rG Kev: yes
  261. Kev In which case, no, I don't think there's anything in 612[01] that suggests a client would have to do that.
  262. MattJ and then we periodically review these and remove old ones that are no longer needed (as much?)
  263. pep. Zash, :P
  264. Ge0rG Kev: I'm pretty sure it's illegal, and the question arises which of the bodies will end up rendered
  265. flow Ge0rG, what would make it illegal?
  266. Kev flow: 612[01] rules do.
  267. flow Kev, multiple bodies with the same xml:lang?
  268. Kev Yes.
  269. flow ahh right, it's in rfc6121 5.2.3
  270. Ge0rG https://xmpp.org/rfcs/rfc6121.html#message-syntax-body
  271. flow couldn't find a rule in rfc6120 though
  272. Kev 6120 just says to use the rules in 6121.
  273. Ge0rG but §5.2.3 doesn't contain a statement on how to handle violations
  274. flow most things do not contain a statement on how to handle violations
  275. flow but yes, not showing a body at all appears sensible, probably even if there is a unique body-xmllang for your xmllang
  276. Ge0rG This is the opposite of "make everything you can to show the message content"
  277. MattJ https://tools.ietf.org/html/draft-iab-protocol-maintenance-03
  278. flow MattJ, \o/
  279. pep. this
  280. flow yep, this
  281. Ge0rG I hate this document.
  282. MattJ reject's Ge0rG's message
  283. Ge0rG It only makes sense in a closed system.
  284. Ge0rG With a dozen of actively used XMPP implementations, and a tail distribution of less widely used ones, how am I supposed to know that blocking "invalid" messages won't break the interop with some of them?
  285. MattJ It probably will
  286. MattJ But if everyone agreed to be strict, that tail would soon be fixed (or rightly let die)
  287. flow The question is if the outcome is better than being liberal in what to accept
  288. MattJ And not everyone has to agree to be strict, just the dominant players
  289. pep. Just like when people went TLS
  290. MattJ Prosody fixed many client bugs by being more strict in what it accepted than any of the existing servers
  291. pep. Except dominant players didn't.. at the time
  292. pep. (gmail)
  293. MattJ and we don't even go very far
  294. Ge0rG MattJ: but I don't have any leverage on those implementations. And people will blame me for the bugs
  295. MattJ I feel your pain, many of us have experienced that
  296. MattJ and as I said, we have put in (clearly marked) workarounds for things like that
  297. lovetox_ what is the problem about body with different namespace? so what i dont check the namespace of body if i dont have to, this is certainly no security issue
  298. pep. Ge0rG, or on deployments..
  299. MattJ while simultaneously trying to get it fixed
  300. pep. lovetox_, I can include a message that only gajim users will see and not others
  301. lovetox_ yeah and? its a feautre i would say
  302. pep. Is it?
  303. flow lovetox_, I am not sure if I can't be exploited somehow. The main problem is that implementations treat an element as body when it is not
  304. MattJ lovetox_, it's a potential human security issue - if people disagree on what to render for a message, the logs will be showing one thing, clients will be showing another
  305. flow But I can only come up with very constructed scenarious how this could cause an security issue
  306. MattJ despite it being a pretty poor messaging application that can't agree on how to render a text message :)
  307. flow Like a bot which accepts commands via <body/> and a screening service checking that the commands in <body/> are safe
  308. MattJ XSF board meeting logs could all be faked by board members, and someone will put <body>+1</body><body>-1</body> to make people think they voted one way on a contentious issue, but the chair would see them voting a different way
  309. MattJ Consistency is good, inconsistency is bad
  310. flow word
  311. MattJ Consistency in a distributed open network isn't always easy
  312. MattJ But if we at least specify the right way to do things, that's a great start
  313. MattJ Right now nobody can even claim any particular client is buggy, because there is no correct decision about what to render (which may include nothing)
  314. MattJ (or an error)
  315. MattJ I'll note that even excluding potentially-illegal <body> constructs, this issue will still exist for multiple <body> with different xml:lang (I can show different versions of the same message to different languages, they don't have to say the same thing)
  316. MattJ But at least in that case a client could indicate to the user that other versions of the message exist, and allow them to view them
  317. Daniel Mhh I now have uncommitted code that skips messages with body of the same language. Not really sure if I should commit that. I mean it's definitely illegal. And it probably won't happen on accident
  318. Ge0rG flow: do I need to pull a CVE number for Smack delivering the first of multiple equally xml-langed bodies?
  319. Daniel Ge0rG: is that a security issue?
  320. Ge0rG Daniel: what MattJ wrote. <body>+1</body><body>-1</body>
  321. Ge0rG https://logs.xmpp.org/xsf/2019-09-11#2019-09-11-869b4f1282d0a054
  322. Ge0rG Daniel: if there is only one implementation rendering the _last_ body from that list, it is a security issue
  323. jonas’ Ge0rG, what else are you supposed to do?
  324. Kev That's a user confusion/unreliability issue. I'm not convinced it's a security issue.
  325. jonas’ aioxmpp will take one, which one is officially undefined (but it will be the lastmost in the stanza)
  326. Ge0rG jonas’: tear down s2s!
  327. Daniel for ever!
  328. jonas’ Ge0rG, seriously though. what should I do as a client library?
  329. jonas’ send back an error?
  330. jonas’ I see how this is a problem, I just don’t know the correct course of action
  331. Ge0rG jonas’: me neither
  332. Daniel that will get you kicked from the muc lol
  333. flow and presence leak
  334. flow (potential)
  335. MattJ Kev, I'm surprised that in the environments you're involved in, you don't see user confusion as a security (or safety) issue
  336. Daniel jonas’, i just opted for ignoring it
  337. Daniel will happen infrequently enough to not be a real issue
  338. MattJ Especially if you add enforcement or auditing tools to the mix, which might disagree about which <body> to use/allow
  339. Ge0rG MattJ: maybe because it's scoped to the sending user.
  340. jonas’ flow, uh--- that’s an interesting one, I think you can make aioxmpp auto-reply to a message if you violate the schema hard enough
  341. Ge0rG If somebody wants to play mind tricks with you, the impact is limited to what you'd believe them
  342. flow jonas’, take the stanzas out of the stream, send an error back if the sending entity is subscribed to your presence and log an error
  343. pep. Why has it been specified that a MUC should kick us on message @type=error btw?
  344. Ge0rG pep.: yes.
  345. jonas’ Daniel, so you drop the entire stanza if there is more than one <body/> with same-language?
  346. Daniel because if your session dies?
  347. Daniel jonas’, yes
  348. jonas’ flow, yeah, no, the part which sends errors back wouldn’t know about that type of stuff
  349. pep. Ge0rG, am I onto something?
  350. flow jonas’, I never said it is easy ;)
  351. Daniel jonas’, i mean no; i return the body as null. it might run through other paths
  352. jonas’ Daniel, right
  353. Ge0rG pep.: I was going to elaborate, but Daniel came first
  354. jonas’ for all languages or only for the buggy one, Daniel?
  355. pep. if my session dies?
  356. Daniel good question 🙂 no for all messages
  357. flow jonas’, remember when we talked about providing a callback to the user which informs him what exactly went where wrong in the incoming processing chain?
  358. Ge0rG pep.: yes, the MUC needs to kick you out if your client silenty disconnected
  359. jonas’ flow, exists, but that is not an error condition yet
  360. pep. But what if my client doesn't silently disconnect and I'm just trying to point out errors to others
  361. jonas’ and I’m not sure what type of error condition it should be
  362. Ge0rG pep.: send a PM
  363. pep. @type=error?
  364. Ge0rG pep.: yes, those won't get you kicked IIRC
  365. pep. I see
  366. Ge0rG I have no idea how clients will behave ;)
  367. jonas’ Ge0rG, so auto-reply woudln’t get me kicked either since that would go to the full JID
  368. pep. I guess this + ignoring a message should be good
  369. jonas’ Ge0rG, so auto-reply from the library woudln’t get me kicked either since that would go to the full JID
  370. Ge0rG pep.: presence leak
  371. pep. rrr
  372. pep. Can you stop finding issues
  373. Ge0rG So can we now decide whether it's a security issue or not?
  374. Ge0rG pep.: no
  375. Ge0rG life would be boring otherwise. Also, blame balu_der_baer
  376. pep. But that's probably going in the logs anyway and not actually visible by the user.
  377. Daniel I'll "fix it" in that i will ignore it in the future but i wont rush out another release
  378. pep. I would like if a client would tell me "There is an error" (and aggregate them) "please report that to the dev"
  379. Ge0rG Daniel: can you rush out releases again? Or is Play store still imposing multi-day delays?
  380. Daniel yes i could
  381. Daniel was meaning to tweet that
  382. Daniel i fixed the PS issue
  383. Daniel but i was doing so much tweeting lately
  384. Ge0rG My other app is broken on Android 10 because Google finally removed the deprecated Apache HttpClient library which is used by... the Google Maps v1 library.
  385. Ge0rG Daniel: as much as @xmpp?
  386. Daniel not as annoying as @xmpp
  387. Daniel my tweets are super high quality
  388. Ge0rG I've been struggling to convey this message to the person responsible, for some days now.
  389. jonas’ doesn’t someone else have access to that account and can single-handedly change the password?
  390. pep. I think we'd rather fix this socially
  391. Ge0rG jonas’: nobody knows who that "someone else" is
  392. Daniel access yes. can’t change the pw though
  393. pep. Not technically
  394. Ge0rG pep.: full agreement here.
  395. Kev Which account what where?
  396. Daniel i mean sometimes i do tweet on @xmpp. but when i do it's only the best tweets
  397. Ge0rG Maybe I should just stop trying though, I'm probably the least empathetic person to attempt it
  398. Ge0rG Kev: twitter.com/xmpp
  399. pep. Daniel, of course
  400. jonas’ Ge0rG, Daniel, actually I think we just need to agree on *which* of the multiple bodies to show and it’s a non-issue, right?
  401. Ge0rG jonas’: right
  402. Kev Is that the XSF's one? I thought I had credentials for the XSF Twitter (although 1password is failing me)
  403. Daniel well rfc says it's illegal. so just dropping it is easier?
  404. Ge0rG Kev: yes
  405. Kev I wonder why I don't currently have it.
  406. Ge0rG Daniel: I'm sure some clients/bots will end up sending a default body and one in an explicit language, and the explicit language accidentally being the default one
  407. flow jonas’, coming up with a selection algorithm could be hard
  408. Daniel so we know it's not Kev whos doing the annoying tweets…
  409. jonas’ flow, "first"
  410. flow jonas’, first in XML?
  411. Ge0rG LinkedHashMap to the rescue!
  412. jonas’ flow, eys
  413. jonas’ flow, yes
  414. flow jonas’, what if "first" is different per recipient
  415. jonas’ flow, how is that supposed to happen?
  416. flow nothing gurantees that the order of the elements is stable when a stanza passes a hop
  417. jonas’ flow, the order of elements with the same namespace-uri/local-name pair?
  418. jonas’ I think we’d be in trouble already if that was violated.
  419. flow especially the order of those elements yes
  420. Kev Hmm. Looks like my tweetdeck doesn't have it either. I'm finding this very confusing.
  421. pep. > Ge0rG> Daniel: I'm sure some clients/bots will end up sending a default body and one in an explicit language, and the explicit language accidentally being the default one Let's agree to fix these bots?
  422. flow jonas’, like where?
  423. jonas’ flow, [thinking ...]
  424. jonas’ flow, forms?
  425. Ge0rG Kev: escalate to the A-team?
  426. jonas’ it’s not strictly required there, but would be a major UX pain if the elements were reordered there
  427. flow are child elements of <x/>
  428. flow I am taking just about first level child elements of stanzas
  429. jonas’ flow, oh, you’re only talking direct children of the stanza?
  430. jonas’ huh
  431. jonas’ why would that follow different rules?
  432. flow well mostly, for forms the order is actually important
  433. flow for first level stanza childs it is usually not
  434. Kev Right. I have control of @xmpp.
  435. Kev Awaiting further orders :)
  436. jonas’ change the password until someone has found the person spamming newsletter ads on it ;)
  437. flow I believe it to be at least unspecified that it has to be stable when processing a stanza, and while most implementations may keep the order, we should not depend on unspecified behavior
  438. Kev Changing the password won't help, people are granted access via tweetdeck.
  439. Kev I mean, unless it's genuinely compromised.
  440. pep. Kev, you can probably access analytics though? I think that came up yesterday in commteam@
  441. jonas’ looks more like "well meant but went too far"
  442. Ge0rG jonas’: I know who that person is
  443. pep. And they're not hiding it either
  444. Kev If someone from Board tells me to, I'll strip access down in tweetdeck.
  445. Daniel i think it has stopped anyway
  446. pep. Daniel, no it hasn't, it won't, read commteam@ :)
  447. Ge0rG Kev: yeah, can you check analytics for the number of new followers vs. gone followers since September 3rd?
  448. Kev No clue, can I?
  449. Ge0rG regarding the twitter activity, there was some wiki acitivty: https://wiki.xmpp.org/web/index.php?title=Special:RecentChanges&days=1&from=
  450. Ge0rG Kev: it was said to be on https://analytics.twitter.com
  451. jonas’ https://wiki.xmpp.org/web/CommTeam/Newsletter_Twitter_campaign
  452. Daniel i'm confused
  453. Kev I do not believe I can get past stats on follower counts.
  454. Ge0rG Bummer.
  455. Kev 28 day summary sees tweet count up, impressions up, mentions up, profile visits down 17%, followers I think stable, unless I'm misreading, or unless it's not giving the info.
  456. Ge0rG Kev: thanks
  457. Ge0rG In that case, it looks like the spam strategy is working out
  458. Daniel assuming this are good metrics…
  459. Kev I can only report what's in front of me.
  460. ralphm For clarity, as discussed in commteam@, those news letter tweets were sent by nyco. Some of the conversation might have been a bit harsh on him, as he is just trying to help.
  461. Ge0rG I'm very sorry that I hit the wrong notes in trying to talk to him :(
  462. ralphm To be honest, I was the one raising the issue in that room, and here before that, but I think we can take a lesson in seeing things from other perspectives, as well trying out things.
  463. ralphm In the mean while, should you have interesting stuff that could be (re-)tweeted from @xmpp, do let them know.
  464. Kev I don't think I've (deliberately, at least) passed any judgement other than offering to do what I'm told.
  465. ralphm Scheduled tweets interspersed with other stuff would already be a lot better.
  466. ralphm Kev: not calling anyone out specifically. And not even just on this topic.
  467. Kev Ah, my stats were September.
  468. Daniel yes. we actually have a lot of things going on in the community to increase # of tweets w/o repeating ourselves
  469. ralphm I assume everyone tries their best.
  470. Kev So for August we lost followers, and for July we gained (more) followers.
  471. Kev In fact, as far back as we've got stats, August is the only time we've lost followers rather than gaining.
  472. Daniel also 'we' probably react more sensitive to obvious advertisment than a regular person would
  473. Ge0rG Daniel: or without uttering things that look like cheap SEO
  474. Ge0rG Or that.
  475. Kev I'm back in 2017, and we've gained double-digits of followers each month, other than losing them in August.
  476. Kev I'm going to stop looking at stats now.
  477. jonas’ how about re-tweeting https://twitter.com/iNPUTmice/status/1171678611897835520 ?
  478. Ge0rG jonas’: it lacks hashtags
  479. Daniel :-)
  480. Daniel i literally loled
  481. Ge0rG speaking of high-quality content
  482. jonas’ #thatshouldhaveacve?
  483. Daniel jonas’, fwiw i usually RT my own tweets with xmpp if i consider them neutral and quality enough
  484. Ge0rG cheap self-promotion!
  485. Ge0rG :D
  486. Daniel good morning you should update dino did not make my own quality standards
  487. jonas’ I like it actually
  488. ralphm Had Daniel's mentioned that you should because of security issues, I would have retweeted it right away.
  489. jonas’ that’s not to diminish dino, but it’s the kind of near-sarcastic security black humor I’m into
  490. Daniel to my defense I did wrote that before i had coffee
  491. jonas’ that’s not to diminish dino, but it’s the kind of near-sarcastic security black humor I’m into w.r.t. announcements
  492. ralphm Noted. Daniel: don't 🐦 before ☕
  493. pep. Well on that note, you should also update converse. Maybe we can have a tweet with all of them.
  494. pep. And then retweet! When we get CVEs assigned
  495. pep. All PR is good PR right
  496. jonas’ FTR, Docker Hub is an awful thing
  497. jonas’ > Created 44 minutes ago > Queue time 1 minute > Duration 0 min
  498. jonas’ > Logs are not available yet
  499. jonas’ what kind of infrasturcture is this?
  500. Kev A free one?
  501. mathieui A terrible one
  502. pep. Ge0rG, re MUC & errors / presence leak, a client could theoretically (not saying I'm going to do it) buffer these error messages going out, and only send them when the user sends chatstates or messages in the MUC.
  503. pep. What about chat markers btw, are they also used in MUC? receipts are this I know. Isn't that a good enough presence leak already?
  504. ralphm Why would you send errors after a while? A server is likely not going to have anything it wants to do at that point?
  505. pep. Sending error to the participant jid, in hope that that gets logged by the clients and there's some kind of hint displayed to the user to actually contact devs. (Yes I'm pretty hopeful)
  506. pep. By that time the user could be gone for sure
  507. pep. Surelike they could be gone when I connect and fetch messages
  508. pep. Just like they could be gone when I connect and fetch messages
  509. ralphm Correlation is not fun with random long delays, maybe.
  510. pep. hmm
  511. pep. True
  512. pep. But then people shout "presence leak"
  513. Daniel what is a presence leak?
  514. Daniel i previously thought of it as a resource leak
  515. pep. Daniel, you connect, your client fetches archive from MUC, finds an error and attempts to send that to the participant jid responsible for it. You're then effectively telling them you just came online
  516. pep. (or that you're somehow available)
  517. Daniel in a group chat?
  518. ralphm Is presence leak really a thing for MUC (as opposed to MIX)?
  519. Daniel didn’t you just did the same by joining?
  520. ralphm This
  521. pep. I wasn't the one to shout "presence leak"!
  522. pep. :)
  523. pep. But yeah, I actually agree. let me dismiss that issue then
  524. pep. Maybe combined with MSN? One of your clients didn't notice, the other connects and you send these errors. But then oh well
  525. ralphm Now, in theory, for MIX this is a bit different. There, sending presence can be optional.
  526. ralphm But then you might have markers or somesuch.
  527. pep. It's fine I'm not concerned about MIX for now, poezio doesn't have an implementation :)
  528. ralphm This is the XSF channel though, and not jdev 🤣
  529. pep. heh
  530. pep. So you can do MIX PR just fine? :P
  531. jonas’ Kev, (moving this from council@), but what stops me from sending you a random type=error (think spam)?
  532. jonas’ if you make swift show a popup and interrupt the user, that’s bad design IMO
  533. flow Daniel> i previously thought of it as a resource leak It is the same, but "presence leak" is the term rfc6120 uses
  534. ralphm I guess that also dismisses most of the recent discussions on Unicode and security issues in implementations. 😃
  535. Daniel yes. but by that definition sending chat markers does not leak your resource
  536. Daniel chat markers leak that you are present
  537. Daniel but that's not what the term means
  538. Daniel (at least that what i've thought)
  539. Kev jonas’: I never said anything about popups (Swift policy is to never trigger popups from protocol).
  540. Kev But if you start receiving errors from someone, it'll tell you in the chat log with that person.
  541. jonas’ Kev, that, I think, is fine
  542. jonas’ even with CC-all-the-errors
  543. jonas’ it shows that something you did on your phone went wrong and that you might want to pay attention (essentially)
  544. Kev But not if it's bare-JID errors.
  545. flow > Daniel> chat markers leak that you are present Depends on the situation i'd say. Client should usually not send stanzas to other clients that are otherwhise unable to determine if you are online, that's what I'd call a "presence leak".
  546. lovetox i dont understand the benefit of the token XEP
  547. lovetox it says something about that the password can be stolen
  548. jonas’ lovetox, maybe on-list?
  549. lovetox but a token is the same, if its stolen, i can change the account password
  550. jonas’ I haven’t read it yet and I have to go AFK now
  551. lovetox at least its nice that the xep gives the user some knowledge about what devices have access to the account
  552. Daniel You could simply not allow that
  553. lovetox you mean the server?
  554. lovetox so how would then someone change his password
  555. Daniel Login properly
  556. Ge0rG tokens are opaque and properly randomized; also they are not often stored on a stick-it note ;)
  557. Ge0rG there is also very much value in one-time tokens to on-board a new device to your account
  558. Ge0rG without having a password in a URL or QR code
  559. lovetox but this is not about one-time tokens, so why are you mention it?
  560. lovetox because its also a "token"?
  561. lovetox its basically a password replacement that has absolutley the same propertys, full access to the account
  562. lovetox so as i said i think it adds value because you know what devices are in use, it does not really provide any additional security
  563. Zash Hm? Per-device passwords?
  564. Daniel Per device passwords
  565. lovetox and it was always weird for me that the register xep does not have an option where the server can demand your current password
  566. Zash You somehow logged into the account
  567. lovetox yeah ..
  568. Daniel I mean per device passwords is not necessarily a bad thing. I don't know if the xep is a good implementation of that
  569. Daniel I haven't read it yet
  570. Daniel But I wouldn't dismiss per device passwords on principle
  571. Zash I wonder if you can hijack the authzid for something like that
  572. lovetox i didnt dismiss it Daniel if you got that from what i said
  573. lovetox the XEP talks a bit about security
  574. lovetox so thats what i questioned
  575. lovetox its definitly nice to know what device are connected and beeing able to remotley log them off and revoke them
  576. Daniel > its definitly nice to know what device are connected and beeing able to remotley log them off and revoke them Yes
  577. Ge0rG I wouldn't be opposed to tokens that have limited permissions behind, like not being allowed to change the password or to issue further tokens; also a limit to one connection per token
  578. Daniel All that
  579. Link Mauve lovetox, in SASL EXTERNAL with client certs (XEP-0257 IIRC), it is said that if the user tries to change their password, they should get an error and then asked for the previous password first.
  580. Ge0rG Yes, with a data form
  581. Link Mauve In the non-error part of an error iq. ;_;
  582. Daniel > Yes, with a data form Data forms are definitely in the top five of my favorite forms
  583. larma I think auth tokens could be reusing RFC7628 and in general be more OAuth compatible
  584. larma Oh, and XEP-0235
  585. pep. oh, TIL
  586. Daniel oh they gave me three CVE
  587. Kev Maybe it's a special offer on Wednesdays.
  588. flow can't get enough of that wonderful CVEs
  589. Zash Gotta catch them all!
  590. Ge0rG They need to motivate the six digit numbers!
  591. pep. Do you win something if you get there first?