Your message dated Sat, 26 Mar 2022 12:02:22 +0000
with message-id 
<540de30a27d37c3ff416b94b1adf7ff2a2cab257.ca...@adam-barratt.org.uk>
and subject line Closing requests for updates in 10.12
has caused the Debian Bug report #1004249,
regarding buster-pu: package weechat/2.3-1+deb10u1
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact ow...@bugs.debian.org
immediately.)


-- 
1004249: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1004249
Debian Bug Tracking System
Contact ow...@bugs.debian.org with problems
--- Begin Message ---
Package: release.debian.org
Severity: normal
Tags: buster
User: release.debian....@packages.debian.org
Usertags: pu
X-Debbugs-Cc: Emmanuel Bouthenot <kol...@debian.org>, t...@security.debian.org

  * CVE-2020-8955: A crafted irc message 324 (channel mode) could
    result in a crash. (Closes: #951289)
  * CVE-2020-9759: A crafted irc message 352 (who) could result
    in a crash.
  * CVE-2020-9760: A crafted irc message 005 (setting a new mode
    for a nick) could result in a crash.
  * CVE-2021-40516: A crafted WebSocket frame could result in a crash
    in the Relay plugin. (Closes: #993803)
diff -Nru weechat-2.3/debian/changelog weechat-2.3/debian/changelog
--- weechat-2.3/debian/changelog        2019-01-04 18:06:44.000000000 +0200
+++ weechat-2.3/debian/changelog        2022-01-23 16:02:29.000000000 +0200
@@ -1,3 +1,17 @@
+weechat (2.3-1+deb10u1) buster; urgency=medium
+
+  * Non-maintainer upload.
+  * CVE-2020-8955: A crafted irc message 324 (channel mode) could
+    result in a crash. (Closes: #951289)
+  * CVE-2020-9759: A crafted irc message 352 (who) could result
+    in a crash.
+  * CVE-2020-9760: A crafted irc message 005 (setting a new mode
+    for a nick) could result in a crash.
+  * CVE-2021-40516: A crafted WebSocket frame could result in a crash
+    in the Relay plugin. (Closes: #993803)
+
+ -- Adrian Bunk <b...@debian.org>  Sun, 23 Jan 2022 16:02:29 +0200
+
 weechat (2.3-1) unstable; urgency=medium
 
   * New upstream release
diff -Nru 
weechat-2.3/debian/patches/0001-irc-fix-crash-when-receiving-a-malformed-message-324.patch
 
weechat-2.3/debian/patches/0001-irc-fix-crash-when-receiving-a-malformed-message-324.patch
--- 
weechat-2.3/debian/patches/0001-irc-fix-crash-when-receiving-a-malformed-message-324.patch
  1970-01-01 02:00:00.000000000 +0200
+++ 
weechat-2.3/debian/patches/0001-irc-fix-crash-when-receiving-a-malformed-message-324.patch
  2022-01-23 16:00:54.000000000 +0200
@@ -0,0 +1,47 @@
+From db4ffe7ccf4b0654cca6993ecaecd5b86070c658 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?S=C3=A9bastien=20Helleu?= <flashc...@flashtux.org>
+Date: Sat, 8 Feb 2020 20:24:50 +0100
+Subject: irc: fix crash when receiving a malformed message 324 (channel mode)
+
+Thanks to Stuart Nevans Locke for reporting the issue.
+---
+ src/plugins/irc/irc-mode.c | 21 ++++++++++++---------
+ 1 file changed, 12 insertions(+), 9 deletions(-)
+
+diff --git a/src/plugins/irc/irc-mode.c b/src/plugins/irc/irc-mode.c
+index b5d525c6c..5381bfda6 100644
+--- a/src/plugins/irc/irc-mode.c
++++ b/src/plugins/irc/irc-mode.c
+@@ -177,17 +177,20 @@ irc_mode_channel_update (struct t_irc_server *server,
+                     current_arg++;
+                 if (pos[0] == chanmode)
+                 {
+-                    chanmode_found = 1;
+-                    if (set_flag == '+')
++                    if (!chanmode_found)
+                     {
+-                        str_mode[0] = pos[0];
+-                        str_mode[1] = '\0';
+-                        strcat (new_modes, str_mode);
+-                        if (argument)
++                        chanmode_found = 1;
++                        if (set_flag == '+')
+                         {
+-                            if (new_args[0])
+-                                strcat (new_args, " ");
+-                            strcat (new_args, argument);
++                            str_mode[0] = pos[0];
++                            str_mode[1] = '\0';
++                            strcat (new_modes, str_mode);
++                            if (argument)
++                            {
++                                if (new_args[0])
++                                    strcat (new_args, " ");
++                                strcat (new_args, argument);
++                            }
+                         }
+                     }
+                 }
+-- 
+2.20.1
+
diff -Nru 
weechat-2.3/debian/patches/0002-irc-fix-crash-when-receiving-a-malformed-message-352.patch
 
weechat-2.3/debian/patches/0002-irc-fix-crash-when-receiving-a-malformed-message-352.patch
--- 
weechat-2.3/debian/patches/0002-irc-fix-crash-when-receiving-a-malformed-message-352.patch
  1970-01-01 02:00:00.000000000 +0200
+++ 
weechat-2.3/debian/patches/0002-irc-fix-crash-when-receiving-a-malformed-message-352.patch
  2022-01-23 16:00:54.000000000 +0200
@@ -0,0 +1,26 @@
+From 43a8cb9a3b9d8202465fc2b91ff36e7fe51f0a74 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?S=C3=A9bastien=20Helleu?= <flashc...@flashtux.org>
+Date: Fri, 14 Feb 2020 08:14:31 +0100
+Subject: irc: fix crash when receiving a malformed message 352 (who)
+
+Thanks to Stuart Nevans Locke for reporting the issue.
+---
+ src/plugins/irc/irc-protocol.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/plugins/irc/irc-protocol.c b/src/plugins/irc/irc-protocol.c
+index fb7ba870a..6bfbd5240 100644
+--- a/src/plugins/irc/irc-protocol.c
++++ b/src/plugins/irc/irc-protocol.c
+@@ -4521,7 +4521,7 @@ IRC_PROTOCOL_CALLBACK(352)
+ 
+     if (argc > 8)
+     {
+-        arg_start = (strcmp (argv[8], "*") == 0) ? 9 : 8;
++        arg_start = ((argc > 9) && (strcmp (argv[8], "*") == 0)) ? 9 : 8;
+         if (argv[arg_start][0] == ':')
+         {
+             pos_attr = NULL;
+-- 
+2.20.1
+
diff -Nru 
weechat-2.3/debian/patches/0003-irc-fix-crash-when-a-new-message-005-is-received-wit.patch
 
weechat-2.3/debian/patches/0003-irc-fix-crash-when-a-new-message-005-is-received-wit.patch
--- 
weechat-2.3/debian/patches/0003-irc-fix-crash-when-a-new-message-005-is-received-wit.patch
  1970-01-01 02:00:00.000000000 +0200
+++ 
weechat-2.3/debian/patches/0003-irc-fix-crash-when-a-new-message-005-is-received-wit.patch
  2022-01-23 16:00:54.000000000 +0200
@@ -0,0 +1,122 @@
+From 3eec48f74201e5489b5cf612651781e03b284211 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?S=C3=A9bastien=20Helleu?= <flashc...@flashtux.org>
+Date: Fri, 14 Feb 2020 08:11:02 +0100
+Subject: irc: fix crash when a new message 005 is received with longer nick
+ prefixes
+
+Thanks to Stuart Nevans Locke for reporting the issue.
+---
+ src/plugins/irc/irc-nick.c   | 47 ++++++++++++++++++++++++++++++++++++
+ src/plugins/irc/irc-nick.h   |  2 ++
+ src/plugins/irc/irc-server.c | 13 +++++++++-
+ 3 files changed, 61 insertions(+), 1 deletion(-)
+
+diff --git a/src/plugins/irc/irc-nick.c b/src/plugins/irc/irc-nick.c
+index 22e89da26..21846f5cc 100644
+--- a/src/plugins/irc/irc-nick.c
++++ b/src/plugins/irc/irc-nick.c
+@@ -601,6 +601,53 @@ irc_nick_set_mode (struct t_irc_server *server, struct 
t_irc_channel *channel,
+         weechat_bar_item_update ("input_prompt");
+ }
+ 
++/*
++ * Reallocates the "prefixes" string in all nicks of all channels on the 
server
++ * (after 005 has been received).
++ */
++
++void
++irc_nick_realloc_prefixes (struct t_irc_server *server,
++                           int old_length, int new_length)
++{
++    struct t_irc_channel *ptr_channel;
++    struct t_irc_nick *ptr_nick;
++    char *new_prefixes;
++
++    for (ptr_channel = server->channels; ptr_channel;
++         ptr_channel = ptr_channel->next_channel)
++    {
++        for (ptr_nick = ptr_channel->nicks; ptr_nick;
++             ptr_nick = ptr_nick->next_nick)
++        {
++            if (ptr_nick->prefixes)
++            {
++                new_prefixes = realloc (ptr_nick->prefixes, new_length + 1);
++                if (new_prefixes)
++                {
++                    ptr_nick->prefixes = new_prefixes;
++                    if (new_length > old_length)
++                    {
++                        memset (ptr_nick->prefixes + old_length,
++                                ' ',
++                                new_length - old_length);
++                    }
++                    ptr_nick->prefixes[new_length] = '\0';
++                }
++            }
++            else
++            {
++                ptr_nick->prefixes = malloc (new_length + 1);
++                if (ptr_nick->prefixes)
++                {
++                    memset (ptr_nick->prefixes, ' ', new_length);
++                    ptr_nick->prefixes[new_length] = '\0';
++                }
++            }
++        }
++    }
++}
++
+ /*
+  * Removes a nick from a channel.
+  */
+diff --git a/src/plugins/irc/irc-nick.h b/src/plugins/irc/irc-nick.h
+index 92ef6f199..b4885c6e1 100644
+--- a/src/plugins/irc/irc-nick.h
++++ b/src/plugins/irc/irc-nick.h
+@@ -73,6 +73,8 @@ extern void irc_nick_change (struct t_irc_server *server,
+ extern void irc_nick_set_mode (struct t_irc_server *server,
+                                struct t_irc_channel *channel,
+                                struct t_irc_nick *nick, int set, char mode);
++extern void irc_nick_realloc_prefixes (struct t_irc_server *server,
++                                       int old_length, int new_length);
+ extern void irc_nick_free (struct t_irc_server *server,
+                            struct t_irc_channel *channel,
+                            struct t_irc_nick *nick);
+diff --git a/src/plugins/irc/irc-server.c b/src/plugins/irc/irc-server.c
+index 813d802dc..2b540e33f 100644
+--- a/src/plugins/irc/irc-server.c
++++ b/src/plugins/irc/irc-server.c
+@@ -922,11 +922,15 @@ irc_server_set_prefix_modes_chars (struct t_irc_server 
*server,
+                                    const char *prefix)
+ {
+     char *pos;
+-    int i, length_modes, length_chars;
++    int i, old_length_chars, length_modes, length_chars;
+ 
+     if (!server || !prefix)
+         return;
+ 
++    old_length_chars = (server->prefix_chars) ?
++        strlen (server->prefix_chars) :
++        strlen (irc_server_prefix_chars_default);
++
+     /* free previous values */
+     if (server->prefix_modes)
+     {
+@@ -966,6 +970,13 @@ irc_server_set_prefix_modes_chars (struct t_irc_server 
*server,
+             }
+         }
+     }
++
++    length_chars = (server->prefix_chars) ?
++        strlen (server->prefix_chars) :
++        strlen (irc_server_prefix_chars_default);
++
++    if (length_chars != old_length_chars)
++        irc_nick_realloc_prefixes (server, old_length_chars, length_chars);
+ }
+ 
+ /*
+-- 
+2.20.1
+
diff -Nru 
weechat-2.3/debian/patches/0004-relay-fix-crash-when-decoding-a-malformed-websocket-.patch
 
weechat-2.3/debian/patches/0004-relay-fix-crash-when-decoding-a-malformed-websocket-.patch
--- 
weechat-2.3/debian/patches/0004-relay-fix-crash-when-decoding-a-malformed-websocket-.patch
  1970-01-01 02:00:00.000000000 +0200
+++ 
weechat-2.3/debian/patches/0004-relay-fix-crash-when-decoding-a-malformed-websocket-.patch
  2022-01-23 16:00:54.000000000 +0200
@@ -0,0 +1,65 @@
+From 48b6fffbf9ec277fbdea251b6542682f4f46b13b Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?S=C3=A9bastien=20Helleu?= <flashc...@flashtux.org>
+Date: Tue, 7 Sep 2021 19:05:06 +0200
+Subject: relay: fix crash when decoding a malformed websocket frame
+ (CVE-2021-40516)
+
+---
+ src/plugins/relay/relay-websocket.c | 16 +++++++++++-----
+ 1 file changed, 11 insertions(+), 5 deletions(-)
+
+diff --git a/src/plugins/relay/relay-websocket.c 
b/src/plugins/relay/relay-websocket.c
+index bbac751dc..7cbe60826 100644
+--- a/src/plugins/relay/relay-websocket.c
++++ b/src/plugins/relay/relay-websocket.c
+@@ -278,7 +278,7 @@ relay_websocket_decode_frame (const unsigned char *buffer,
+     index_buffer = 0;
+ 
+     /* loop to decode all frames in message */
+-    while (index_buffer + 2 <= buffer_length)
++    while (index_buffer + 1 < buffer_length)
+     {
+         opcode = buffer[index_buffer] & 15;
+ 
+@@ -293,10 +293,12 @@ relay_websocket_decode_frame (const unsigned char 
*buffer,
+         length_frame_size = 1;
+         length_frame = buffer[index_buffer + 1] & 127;
+         index_buffer += 2;
++        if (index_buffer >= buffer_length)
++            return 0;
+         if ((length_frame == 126) || (length_frame == 127))
+         {
+             length_frame_size = (length_frame == 126) ? 2 : 8;
+-            if (buffer_length < 1 + length_frame_size)
++            if (index_buffer + length_frame_size > buffer_length)
+                 return 0;
+             length_frame = 0;
+             for (i = 0; i < length_frame_size; i++)
+@@ -306,10 +308,9 @@ relay_websocket_decode_frame (const unsigned char *buffer,
+             index_buffer += length_frame_size;
+         }
+ 
+-        if (buffer_length < 1 + length_frame_size + 4 + length_frame)
+-            return 0;
+-
+         /* read masks (4 bytes) */
++        if (index_buffer + 4 > buffer_length)
++            return 0;
+         int masks[4];
+         for (i = 0; i < 4; i++)
+         {
+@@ -323,6 +324,11 @@ relay_websocket_decode_frame (const unsigned char *buffer,
+         *decoded_length += 1;
+ 
+         /* decode data using masks */
++        if ((length_frame > buffer_length)
++            || (index_buffer + length_frame > buffer_length))
++        {
++            return 0;
++        }
+         for (i = 0; i < length_frame; i++)
+         {
+             decoded[*decoded_length + i] = (int)((unsigned 
char)buffer[index_buffer + i]) ^ masks[i % 4];
+-- 
+2.20.1
+
diff -Nru weechat-2.3/debian/patches/series weechat-2.3/debian/patches/series
--- weechat-2.3/debian/patches/series   2018-09-28 00:23:52.000000000 +0300
+++ weechat-2.3/debian/patches/series   2022-01-23 16:02:27.000000000 +0200
@@ -1 +1,5 @@
 01_fix_asciidoctor_options.patch
+0001-irc-fix-crash-when-receiving-a-malformed-message-324.patch
+0002-irc-fix-crash-when-receiving-a-malformed-message-352.patch
+0003-irc-fix-crash-when-a-new-message-005-is-received-wit.patch
+0004-relay-fix-crash-when-decoding-a-malformed-websocket-.patch

--- End Message ---
--- Begin Message ---
Package: release.debian.org
Version: 10.12

Hi,

The updates referenced in these requests were included in oldstable as
part of today's 10.12 point release.

Regards,

Adam

--- End Message ---

Reply via email to