It flaw was reported in the way Groupwise server messages were parsed. A malicious server or man-in-the-middle attacker could send a specially-crafted message that could cause Pidgin to attempt to allocate an excessive amount of memory, possibly leading to a crash.
Name: the Pidgin project
Upstream: Yves Younan (Cisco Talos), Richard Johnson (Cisco Talos)
Created attachment 948788 [details]
patch from upstream
Created pidgin tracking bugs for this issue:
Affects: fedora-all [bug 1155838]
pidgin-2.10.10-2.fc21 has been pushed to the Fedora 21 stable repository. If problems still persist, please make note of it in this bug report.
pidgin-2.10.10-1.fc20 has been pushed to the Fedora 20 stable repository. If problems still persist, please make note of it in this bug report.
In the function handle_receive_message(), variable named "size" is defined as "guint32 size= 0;",Values of this guint32 can range from 0 to G_MAXUINT32 (= 4,294,967,295). Then the stream is read from the connection and passed into "size" by the following code
rc = nm_read_uint32(conn, &size);
after that size validation happens , but here as it is compared with MAX_UINT32 because of which size variable can contain really large value.
if (size == MAX_UINT32) return NMERR_PROTOCOL;
after that the memory allocation happens which also depends on the variable "size"
g_new0(char, size +1);
which could lead to large amount of memory allocation further leading to DOS or crash while parsing server message.As this needs client to connect to malicious server, this requires some social engineering to convince user to connect to malicious server. Man-in-the-middle attacker could also use this attack vector which would cause pidgin to allocate an excessive amount of memory slowing down victims system, possibly leading to a crash of application.
This issue has been addressed in the following products:
Red Hat Enterprise Linux 7
Via RHSA-2017:1854 https://access.redhat.com/errata/RHSA-2017:1854