CVE-2009-2694 Security vulnerability in pidgin < 2.5.9

Bug #416306 reported by aus
278
This bug affects 3 people
Affects Status Importance Assigned to Milestone
Pidgin
Fix Released
Undecided
Unassigned
pidgin (Debian)
Fix Released
Unknown
pidgin (Fedora)
Fix Released
Critical
pidgin (Gentoo Linux)
Fix Released
Medium
pidgin (Ubuntu)
Fix Released
Undecided
Unassigned

Bug Description

Binary package hint: pidgin

Pidgin <= 2.5.8 is vulnerable to a remote MSN bug. Specially crafted SLP messages can cause a buffer overflow and allow a remote attacker to execute code on the system running pidgin. This does not require the attacker to be on the list of the pidgin user. This is caused by a problem in libpurple <= 2.5.8.

More information can be found on:

http://www.pidgin.im/news/security/?id=34
http://www.coresecurity.com/content/libpurple-arbitrary-write
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-2694

CVE References

Revision history for this message
In , Tomas (tomas-redhat-bugs) wrote :

Core Security Technologies reported that previous upstream fixes addressing insufficient input validation flaw in pidgin / libpurple in function msn_slplink_process_msg() are inefficient and can be bypassed. This flaw allows an attacker to overwrite pidgin's memory and possibly execute arbitrary code with the privileges of the user running application using libpurple.

This issue was previously tracked as CVE-2008-2927 (bug #453764) and CVE-2009-1376 (bug #500493, incomplete fix).

Revision history for this message
In , Tomas (tomas-redhat-bugs) wrote :

Mitigation:

Users can lower the impact of this flaw by making sure their privacy settings only allow Pidgin to accept messages from the users on their buddy list. This will prevent exploitation of this flaw by other random MSN users.

Revision history for this message
In , Tomas (tomas-redhat-bugs) wrote :

Technically, this is not really an incomplete fix of the previous integer overflow issues, rather a new issue affecting same code part as previous issues.

In the new attack, attacker aims to exploit a NULL pointer dereference flaw. This is achieved by sending message with non-0 offset. When such message is processed in msn_slplink_process_msg(), msn_slplink_message_find() is called to find previous parts of the message sent within the same session. With specially crafted previous messages, msn_slplink_message_find() may return a structure for ACK message, rather than request message, that later triggers NULL pointer dereference in:

  memcpy(slpmsg->buffer + offset, data, len);

In ACK message, slpmsg->buffer is NULL and attacker supplied offset can be used to control what memory area will be overwritten.

Revision history for this message
In , Josh (josh-redhat-bugs) wrote :
Revision history for this message
In , errata-xmlrpc (errata-xmlrpc-redhat-bugs) wrote :

This issue has been addressed in following products:

  Red Hat Enterprise Linux 3
  Red Hat Enterprise Linux 4
  Red Hat Enterprise Linux 5

Via RHSA-2009:1218 https://rhn.redhat.com/errata/RHSA-2009-1218.html

Changed in pidgin (Gentoo Linux):
status: Unknown → Confirmed
Revision history for this message
aus (aus.) wrote :
Changed in pidgin (Debian):
status: Unknown → Fix Released
Revision history for this message
aus (aus.) wrote :
aus (aus.)
visibility: private → public
aus (aus.)
Changed in pidgin:
status: New → Fix Released
Revision history for this message
Kees Cook (kees) wrote :

This bug was fixed in the package pidgin - 1:2.5.5-1ubuntu8.4

---------------
pidgin (1:2.5.5-1ubuntu8.4) jaunty-security; urgency=low

  * SECURITY UPDATE: arbitrary code execution via crafted MSNSLP packet
    (LP: #415863)
    - debian/patches/78_security_CVE-2009-2694.patch: properly destroy
      slpmsg in libpurple/protocols/{msn,msnp9}/slplink.c.
    - CVE-2009-2694

 -- Marc Deslauriers <email address hidden> Wed, 19 Aug 2009 12:49:11 -0400

Changed in pidgin (Ubuntu):
status: New → Fix Released
Revision history for this message
In , Jan (jan-redhat-bugs) wrote :

MITRE's CVE-2009-2694 record:
-----------------------------

The msn_slplink_process_msg function in
libpurple/protocols/msn/slplink.c in libpurple, as used in Pidgin
(formerly Gaim) before 2.5.9 and Adium 1.3.5 and earlier, allows
remote attackers to execute arbitrary code or cause a denial of
service (memory corruption and application crash) by sending multiple
crafted SLP (aka MSNSLP) messages to trigger an overwrite of an
arbitrary memory location. NOTE: this issue reportedly exists because
of an incomplete fix for CVE-2009-1376.

References:
-----------
http://www.coresecurity.com/content/libpurple-arbitrary-write
http://developer.pidgin.im/viewmtn/revision/info/6f7343166c673bf0496ecb1afec9b633c1d54a0e
http://developer.pidgin.im/wiki/ChangeLog
http://www.pidgin.im/news/security/?id=34
http://secunia.com/advisories/36384
http://secunia.com/advisories/36392
http://secunia.com/advisories/36401
http://www.vupen.com/english/advisories/2009/2303

Revision history for this message
In , Tomas (tomas-redhat-bugs) wrote :

All current Fedora versions are now updated to 2.6.0+ too.

Changed in pidgin (Fedora):
status: Unknown → Fix Released
Changed in pidgin (Gentoo Linux):
status: Confirmed → In Progress
Changed in pidgin (Gentoo Linux):
status: In Progress → Fix Released
Changed in pidgin (Gentoo Linux):
importance: Unknown → Medium
Changed in pidgin (Fedora):
importance: Unknown → Critical
To post a comment you must log in.
This report contains Public Security information  
Everyone can see this security related information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.