Bug 1154910 (CVE-2014-3696)

Summary: CVE-2014-3696 pidgin: denial of service parsing Groupwise server message
Product: [Other] Security Response Reporter: Murray McAllister <mmcallis>
Component: vulnerabilityAssignee: Red Hat Product Security <security-response-team>
Status: CLOSED ERRATA QA Contact:
Severity: medium Docs Contact:
Priority: medium    
Version: unspecifiedCC: cschalle, debarshir, jrusnack, mbarnes, security-response-team, sisharma, vdanen
Target Milestone: ---Keywords: Reopened, Security
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: pidgin 2.10.10 Doc Type: Bug Fix
Doc Text:
A denial of service flaw was found in the way Pidgin parsed Groupwise server messages. A malicious remote server or a man-in-the-middle attacker could potentially use this flaw to cause Pidgin to consume an excessive amount of memory, possibly leading to a crash, by sending a specially crafted message.
Story Points: ---
Clone Of: Environment:
Last Closed: 2019-06-08 02:35:20 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 1155838, 1340770, 1403136, 1446519    
Bug Blocks: 1154913, 1415638    
Attachments:
Description Flags
patch from upstream none

Description Murray McAllister 2014-10-21 03:21:44 UTC
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.

Acknowledgements:

Name: the Pidgin project
Upstream: Yves Younan (Cisco Talos), Richard Johnson (Cisco Talos)

Comment 1 Murray McAllister 2014-10-21 03:22:22 UTC
Created attachment 948788 [details]
patch from upstream

Comment 3 Murray McAllister 2014-10-23 01:20:21 UTC
Public now:

http://www.pidgin.im/news/security/?id=88

Comment 4 Murray McAllister 2014-10-23 01:27:12 UTC
Created pidgin tracking bugs for this issue:

Affects: fedora-all [bug 1155838]

Comment 5 Fedora Update System 2014-11-10 06:31:38 UTC
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.

Comment 6 Fedora Update System 2014-11-10 06:47:39 UTC
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.

Comment 7 Siddharth Sharma 2014-11-21 11:46:27 UTC
Analysis:

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.

Comment 14 errata-xmlrpc 2017-08-01 20:20:56 UTC
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