Bug 1410824 (CVE-2017-5194) - CVE-2017-5194 irssi: Use after free when receiving invalid nick message
Summary: CVE-2017-5194 irssi: Use after free when receiving invalid nick message
Keywords:
Status: CLOSED WONTFIX
Alias: CVE-2017-5194
Product: Security Response
Classification: Other
Component: vulnerability
Version: unspecified
Hardware: All
OS: Linux
low
low
Target Milestone: ---
Assignee: Red Hat Product Security
QA Contact:
URL:
Whiteboard:
Depends On: 1410829 1410830
Blocks: 1410833
TreeView+ depends on / blocked
 
Reported: 2017-01-06 15:14 UTC by Andrej Nemec
Modified: 2021-02-17 02:48 UTC (History)
4 users (show)

Fixed In Version: irssi 0.8.21, irssi 1.0.0
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2017-02-23 17:19:45 UTC


Attachments (Terms of Use)

Description Andrej Nemec 2017-01-06 15:14:17 UTC
A use after free when receiving invalid nick message was found in irssi.

External References:

https://irssi.org/security/irssi_sa_2017_01.txt

Upstream patch:

https://github.com/irssi/irssi/commit/6c6c42e3d1b49d90aacc0b67f8540471cae02a1d

CVE assignment:

http://seclists.org/oss-sec/2017/q1/26

Comment 1 Andrej Nemec 2017-01-06 15:20:05 UTC
Created irssi tracking bugs for this issue:

Affects: fedora-all [bug 1410829]
Affects: epel-5 [bug 1410830]

Comment 2 Cedric Buissart 2017-02-23 16:35:47 UTC
-> The flaw could be triggered either by client itself, or by a specially crafted IRC server.

-> The particular part of the part referring to this issue is the following :
----8<----
diff --git a/src/irc/core/irc-nicklist.c b/src/irc/core/irc-nicklist.c
index bcb9d1f..f049fe7 100644
--- a/src/irc/core/irc-nicklist.c
+++ b/src/irc/core/irc-nicklist.c
@@ -314,7 +314,11 @@ static void event_whois_ircop(SERVER_REC *server, const char *data)
 static void event_nick_invalid(IRC_SERVER_REC *server, const char *data)
 {
        if (!server->connected)
-               server_disconnect((SERVER_REC *) server);
+               /* we used to call server_disconnect but that crashes
+                  irssi because of undefined memory access. instead,
+                  indicate that the connection should be dropped and
+                  let the irc method to the clean-up. */
+               server->connection_lost = server->no_reconnect = TRUE;
 }
 
 static void event_nick_in_use(IRC_SERVER_REC *server, const char *data)
---->8----

Comment 4 Cedric Buissart 2017-02-23 17:19:54 UTC
Statement:

Red Hat Product Security has rated this issue as having Low security impact. This issue is not currently planned to be addressed in future updates. For additional information, refer to the Issue Severity Classification: https://access.redhat.com/security/updates/classification/.


Note You need to log in before you can comment on or make changes to this bug.