Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package prosody for openSUSE:Factory checked 
in at 2021-08-18 08:55:55
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/prosody (Old)
 and      /work/SRC/openSUSE:Factory/.prosody.new.1899 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "prosody"

Wed Aug 18 08:55:55 2021 rev:24 rq:912424 version:0.11.10

Changes:
--------
--- /work/SRC/openSUSE:Factory/prosody/prosody.changes  2021-05-15 
01:23:55.343080910 +0200
+++ /work/SRC/openSUSE:Factory/.prosody.new.1899/prosody.changes        
2021-08-18 08:56:42.482918739 +0200
@@ -1,0 +2,14 @@
+Mon Aug 16 14:00:52 UTC 2021 - Michael Vetter <[email protected]>
+
+- Update to 0.11.10:
+  Security:
+  * MUC: Fix logic for access to affiliation lists CVE-2021-37601
+    https://prosody.im/security/advisory_20210722/
+  Minor changes:
+  * prosodyctl: Add ???limits??? to known globals to warn about misplacing it
+  * util.ip: Fix netmask for link-local address range
+  * mod_pep: Remove obsolete node restoration code
+  * util.pubsub: Fix traceback if node data not initialized
+- Update is related to: bsc#1188976 CVE-2021-37601
+
+-------------------------------------------------------------------

Old:
----
  prosody-0.11.9.tar.gz
  prosody-0.11.9.tar.gz.asc

New:
----
  prosody-0.11.10.tar.gz
  prosody-0.11.10.tar.gz.asc

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ prosody.spec ++++++
--- /var/tmp/diff_new_pack.AfPzSA/_old  2021-08-18 08:56:42.918918227 +0200
+++ /var/tmp/diff_new_pack.AfPzSA/_new  2021-08-18 08:56:42.922918222 +0200
@@ -18,7 +18,7 @@
 
 %define _piddir /run
 Name:           prosody
-Version:        0.11.9
+Version:        0.11.10
 Release:        0
 Summary:        Communications server for Jabber/XMPP
 License:        MIT

++++++ prosody-0.11.9.tar.gz -> prosody-0.11.10.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/prosody-0.11.9/.hg_archival.txt 
new/prosody-0.11.10/.hg_archival.txt
--- old/prosody-0.11.9/.hg_archival.txt 2021-05-12 17:22:02.000000000 +0200
+++ new/prosody-0.11.10/.hg_archival.txt        2021-08-03 11:53:04.326141067 
+0200
@@ -1,4 +1,4 @@
 repo: 3e3171b59028ee70122cfec6ecf98f518f946b59
-node: d0e9ffccdef934af554ea2d4a5beb9a52e9e951d
+node: d117b92fd8e459170a98a8dece7f3930f4b6aed7
 branch: 0.11
-tag: 0.11.9
+tag: 0.11.10
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/prosody-0.11.9/plugins/mod_pep.lua 
new/prosody-0.11.10/plugins/mod_pep.lua
--- old/prosody-0.11.9/plugins/mod_pep.lua      2021-05-12 17:22:02.000000000 
+0200
+++ new/prosody-0.11.10/plugins/mod_pep.lua     2021-08-03 11:53:04.326141067 
+0200
@@ -207,18 +207,6 @@
 
                check_node_config = check_node_config;
        });
-       local nodes, err = known_nodes:get(username);
-       if nodes then
-               module:log("debug", "Restoring nodes for user %s", username);
-               for node in pairs(nodes) do
-                       module:log("debug", "Restoring node %q", node);
-                       service:create(node, true);
-               end
-       elseif err then
-               module:log("error", "Could not restore nodes for %s: %s", 
username, err);
-       else
-               module:log("debug", "No known nodes");
-       end
        services[username] = service;
        module:add_item("pep-service", { service = service, jid = user_bare });
        return service;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/prosody-0.11.9/plugins/muc/muc.lib.lua 
new/prosody-0.11.10/plugins/muc/muc.lib.lua
--- old/prosody-0.11.9/plugins/muc/muc.lib.lua  2021-05-12 17:22:02.000000000 
+0200
+++ new/prosody-0.11.10/plugins/muc/muc.lib.lua 2021-08-03 11:53:04.326141067 
+0200
@@ -976,7 +976,7 @@
                -- e.g. an admin can't ask for a list of owners
                local affiliation_rank = valid_affiliations[affiliation or 
"none"];
                if (affiliation_rank >= valid_affiliations.admin and 
affiliation_rank >= _aff_rank)
-               or (self:get_whois() == "anyone") then
+               or (self:get_members_only() and self:get_whois() == "anyone" 
and affiliation_rank >= valid_affiliations.member) then
                        local reply = 
st.reply(stanza):query("http://jabber.org/protocol/muc#admin";);
                        for jid in self:each_affiliation(_aff or "none") do
                                local nick = self:get_registered_nick(jid);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/prosody-0.11.9/prosody.release 
new/prosody-0.11.10/prosody.release
--- old/prosody-0.11.9/prosody.release  2021-05-12 18:52:16.000000000 +0200
+++ new/prosody-0.11.10/prosody.release 2021-08-03 11:53:04.326141067 +0200
@@ -1 +1 @@
-0.11.9
+0.11.10
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/prosody-0.11.9/prosodyctl 
new/prosody-0.11.10/prosodyctl
--- old/prosody-0.11.9/prosodyctl       2021-05-12 17:22:02.000000000 +0200
+++ new/prosody-0.11.10/prosodyctl      2021-08-03 11:53:04.326141067 +0200
@@ -841,7 +841,7 @@
                local known_global_options = set.new({
                        "pidfile", "log", "plugin_paths", "prosody_user", 
"prosody_group", "daemonize",
                        "umask", "prosodyctl_timeout", "use_ipv6", 
"use_libevent", "network_settings",
-                       "network_backend", "http_default_host", "gc",
+                       "network_backend", "http_default_host", "gc", "limits",
                        "statistics_interval", "statistics", 
"statistics_config",
                });
                local config = configmanager.getconfig();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/prosody-0.11.9/spec/scansion/muc_whois_anyone_member.scs 
new/prosody-0.11.10/spec/scansion/muc_whois_anyone_member.scs
--- old/prosody-0.11.9/spec/scansion/muc_whois_anyone_member.scs        
2021-05-12 17:22:02.000000000 +0200
+++ new/prosody-0.11.10/spec/scansion/muc_whois_anyone_member.scs       
2021-08-03 11:53:04.326141067 +0200
@@ -1,101 +1,127 @@
 # MUC: Allow members to fetch the affiliation lists in open non-anonymous rooms
 
 [Client] Romeo
-       jid: romeo@localhost/MsliYo9C
+       jid: 4e2pm7er@localhost
        password: password
 
 [Client] Juliet
-       jid: juliet@localhost/vJrUtY4Z
+       jid: qnjm5253@localhost
+       password: password
+
+[Client] Random
+       jid: iqizbcus@localhost
        password: password
 
 -----
 
 Romeo connects
 
+Juliet connects
+
+Random connects
+
+# Romeo joins and creates the MUC
 Romeo sends:
-       <presence to='[email protected]/romeo'>
-       <x xmlns='http://jabber.org/protocol/muc'/>
+       <presence to="[email protected]/Romeo">
+               <x xmlns="http://jabber.org/protocol/muc"/>
        </presence>
 
 Romeo receives:
-       <presence from='[email protected]/romeo'>
-       <x xmlns='http://jabber.org/protocol/muc#user'>
-       <status code='201'/>
-       <item jid="${Romeo's JID}" role='moderator' affiliation='owner'/>
-       <status code='110'/>
-       </x>
+       <presence from="[email protected]/Romeo">
+               <x xmlns="http://jabber.org/protocol/muc#user"; 
scansion:strict="false">
+                       <item affiliation="owner" jid="${Romeo's full JID}" 
role="moderator"/>
+                       <status code="110"/>
+                       <status code="201"/>
+               </x>
        </presence>
 
 Romeo receives:
-       <message from='[email protected]' type='groupchat'>
-       <subject/>
+       <message from="[email protected]" type="groupchat">
+               <subject/>
        </message>
 
+# and configures it for private chat
 Romeo sends:
-       <iq id='lx3' type='set' to='[email protected]'>
-       <query xmlns='http://jabber.org/protocol/muc#owner'>
-       <x type='submit' xmlns='jabber:x:data'>
-       <field var='FORM_TYPE'>
-       <value>http://jabber.org/protocol/muc#roomconfig</value>
-       </field>
-       <field var='muc#roomconfig_whois'>
-       <value>anyone</value>
-       </field>
-       </x>
-       </query>
+       <iq type="set" id="17fb8e7e-c75e-447c-b86f-3f1df8f507c4" 
to="[email protected]">
+               <query xmlns="http://jabber.org/protocol/muc#owner";>
+                       <x type="submit" xmlns="jabber:x:data">
+                               <field var="FORM_TYPE">
+                                       
<value>http://jabber.org/protocol/muc#roomconfig</value>
+                               </field>
+                               <field var="muc#roomconfig_membersonly">
+                                       <value>1</value>
+                               </field>
+                               <field var="muc#roomconfig_whois">
+                                       <value>anyone</value>
+                               </field>
+                       </x>
+               </query>
        </iq>
 
 Romeo receives:
-       <iq from='[email protected]' type='result' id='lx3'/>
+       <iq from="[email protected]" 
id="17fb8e7e-c75e-447c-b86f-3f1df8f507c4" type="result"/>
 
 Romeo receives:
-       <message from='[email protected]' type='groupchat'>
-       <x xmlns='http://jabber.org/protocol/muc#user'>
-       <status code='172'/>
-       </x>
+       <message from="[email protected]" type="groupchat">
+               <x xmlns="http://jabber.org/protocol/muc#user"; 
scansion:strict="false">
+                       <status code="104"/>
+                       <status code="172"/>
+               </x>
        </message>
 
-Juliet connects
+# Juliet is made a member
+Romeo sends:
+       <iq type="set" id="32d81574-e1dc-4221-b36d-4c44debb7c19" 
to="[email protected]">
+               <query xmlns="http://jabber.org/protocol/muc#admin";>
+                       <item affiliation="member" jid="${Juliet's JID}"/>
+               </query>
+       </iq>
 
+# Juliet can read affiliations
 Juliet sends:
-       <presence to='[email protected]/juliet'>
-       <x xmlns='http://jabber.org/protocol/muc'/>
-       </presence>
-
-Juliet receives:
-       <presence from='[email protected]/romeo'>
-       <x xmlns='http://jabber.org/protocol/muc#user'>
-       <item jid="${Romeo's JID}" role='moderator' affiliation='owner'/>
-       </x>
-       </presence>
-
-Juliet receives:
-       <presence from='[email protected]/juliet'>
-       <x xmlns='http://jabber.org/protocol/muc#user'>
-       <status code='100'/>
-       <item jid="${Juliet's JID}" role='participant' affiliation='none'/>
-       <status code='110'/>
-       </x>
-       </presence>
+       <iq type="get" id="32d81574-e1dc-4221-b36d-4c44debb7c19" 
to="[email protected]">
+               <query xmlns="http://jabber.org/protocol/muc#admin";>
+                       <item affiliation="owner"/>
+               </query>
+       </iq>
 
 Juliet receives:
-       <message from='[email protected]' type='groupchat'>
-       <subject/>
-       </message>
+       <iq from="[email protected]" 
id="32d81574-e1dc-4221-b36d-4c44debb7c19" type="result">
+               <query xmlns="http://jabber.org/protocol/muc#admin";>
+                       <item affiliation="owner" jid="${Romeo's JID}"/>
+               </query>
+       </iq>
 
 Juliet sends:
-       <iq id='lx2' type='get' to='[email protected]'>
-       <query xmlns='http://jabber.org/protocol/muc#admin'>
-       <item affiliation='member'/>
-       </query>
+       <iq type="get" id="05e3fe30-976f-4919-8221-ca1ac333eb9b" 
to="[email protected]">
+               <query xmlns="http://jabber.org/protocol/muc#admin";>
+                       <item affiliation="member"/>
+               </query>
        </iq>
 
 Juliet receives:
-       <iq from='[email protected]' type='result' id='lx2'>
-       <query xmlns='http://jabber.org/protocol/muc#admin'/>
+       <iq from="[email protected]" 
id="05e3fe30-976f-4919-8221-ca1ac333eb9b" type="result">
+               <query xmlns="http://jabber.org/protocol/muc#admin";>
+                       <item affiliation="member" jid="${Juliet's JID}"/>
+               </query>
        </iq>
 
+# Others can't read affiliations
+Random sends:
+       <iq type="get" id="df1195e1-7ec8-4102-8561-3e3a1d942adf" 
to="[email protected]">
+               <query xmlns="http://jabber.org/protocol/muc#admin";>
+                       <item affiliation="owner"/>
+               </query>
+       </iq>
+
+Random receives:
+       <iq from="[email protected]" 
id="df1195e1-7ec8-4102-8561-3e3a1d942adf" type="error"/>
+
+
 Juliet disconnects
 
 Romeo disconnects
 
+Random disconnects
+
+# recording ended on 2021-07-23T12:09:48Z
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/prosody-0.11.9/util/ip.lua 
new/prosody-0.11.10/util/ip.lua
--- old/prosody-0.11.9/util/ip.lua      2021-05-12 17:22:02.000000000 +0200
+++ new/prosody-0.11.10/util/ip.lua     2021-08-03 11:53:04.326141067 +0200
@@ -100,7 +100,7 @@
 local function v4scope(ip)
        if match(ip, loopback4, 8) then
                return 0x2;
-       elseif match(ip, linklocal4) then
+       elseif match(ip, linklocal4, 16) then
                return 0x2;
        else -- Global unicast
                return 0xE;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/prosody-0.11.9/util/pubsub.lua 
new/prosody-0.11.10/util/pubsub.lua
--- old/prosody-0.11.9/util/pubsub.lua  2021-05-12 17:22:02.000000000 +0200
+++ new/prosody-0.11.10/util/pubsub.lua 2021-08-03 11:53:04.326141067 +0200
@@ -555,6 +555,10 @@
                return nil, "invalid-item";
        end
        local node_data = self.data[node];
+       if not node_data then
+               -- FIXME how is this possible?  #1657
+               return nil, "internal-server-error";
+       end
        local ok = node_data:set(id, item);
        if not ok then
                return nil, "internal-server-error";

Reply via email to