Vulnerabilities > CVE-2009-4244 - Improper Restriction of Operations Within the Bounds of A Memory Buffer vulnerability in Realnetworks products

047910
CVSS 9.3 - CRITICAL
Attack vector
NETWORK
Attack complexity
MEDIUM
Privileges required
NONE
Confidentiality impact
COMPLETE
Integrity impact
COMPLETE
Availability impact
COMPLETE
network
realnetworks
microsoft
apple
CWE-119
critical
nessus

Summary

Heap-based buffer overflow in RealNetworks RealPlayer 10; RealPlayer 10.5 6.0.12.1040 through 6.0.12.1741; RealPlayer 11 11.0.0 through 11.0.4; RealPlayer Enterprise; Mac RealPlayer 10, 10.1, and 11.0; Linux RealPlayer 10; and Helix Player 10.x allows remote attackers to execute arbitrary code via an SIPR codec field with a small length value that triggers incorrect memory allocation. Specific affected release information can be found from RealNetworks at: http://service.real.com/realplayer/security/01192010_player/en/

Common Attack Pattern Enumeration and Classification (CAPEC)

  • Buffer Overflow via Environment Variables
    This attack pattern involves causing a buffer overflow through manipulation of environment variables. Once the attacker finds that they can modify an environment variable, they may try to overflow associated buffers. This attack leverages implicit trust often placed in environment variables.
  • Overflow Buffers
    Buffer Overflow attacks target improper or missing bounds checking on buffer operations, typically triggered by input injected by an attacker. As a consequence, an attacker is able to write past the boundaries of allocated buffer regions in memory, causing a program crash or potentially redirection of execution as per the attackers' choice.
  • Client-side Injection-induced Buffer Overflow
    This type of attack exploits a buffer overflow vulnerability in targeted client software through injection of malicious content from a custom-built hostile service.
  • Filter Failure through Buffer Overflow
    In this attack, the idea is to cause an active filter to fail by causing an oversized transaction. An attacker may try to feed overly long input strings to the program in an attempt to overwhelm the filter (by causing a buffer overflow) and hoping that the filter does not fail securely (i.e. the user input is let into the system unfiltered).
  • MIME Conversion
    An attacker exploits a weakness in the MIME conversion routine to cause a buffer overflow and gain control over the mail server machine. The MIME system is designed to allow various different information formats to be interpreted and sent via e-mail. Attack points exist when data are converted to MIME compatible format and back.

Nessus

NASL familyWindows
NASL idREALPLAYER_12_0_0_319.NASL
descriptionAccording to its build number, the installed version of RealPlayer on the remote Windows host has multiple buffer overflow vulnerabilities : - A RealPlayer
last seen2020-06-01
modified2020-06-02
plugin id44119
published2010-01-22
reporterThis script is Copyright (C) 2010-2018 Tenable Network Security, Inc.
sourcehttps://www.tenable.com/plugins/nessus/44119
titleRealPlayer for Windows < Build 12.0.0.319 Multiple Buffer Overflows
code
#
# (C) Tenable Network Security, Inc.
#

include("compat.inc");

if (description)
{
  script_id(44119);
  script_version("1.17");

  script_cve_id("CVE-2009-0375", "CVE-2009-0376", "CVE-2009-4241", "CVE-2009-4242",
                "CVE-2009-4243", "CVE-2009-4244", "CVE-2009-4245", "CVE-2009-4246",
                "CVE-2009-4247", "CVE-2009-4248", "CVE-2009-4257");
  script_bugtraq_id(33652, 37880);
  script_xref(name:"Secunia", value:"38218");
  script_xref(name:"IAVA", value:"2010-A-0022");

  script_name(english:"RealPlayer for Windows < Build 12.0.0.319 Multiple Buffer Overflows");
  script_summary(english:"Checks RealPlayer build number.");

  script_set_attribute(attribute:"synopsis",value:
"The remote Windows application is affected by multiple buffer
overflow vulnerabilities."
  );
  script_set_attribute(attribute:"description",value:
"According to its build number, the installed version of RealPlayer on
the remote Windows host has multiple buffer overflow vulnerabilities :

  - A RealPlayer 'ASM' Rulebook heap-based overflow. 
    (CVE-2009-4241)

  - A RealPlayer 'GIF' file heap overflow. (CVE-2009-4242)

  - A RealPlayer media overflow ('http' chunk encoding).
    (CVE-2009-4243)

  - A RealPlayer 'IVR' file processing buffer overflow.
    (CVE-2009-0375)

  - A RealPlayer 'IVR' file heap overflow. (CVE-2009-0376)

  - A RealPlayer 'SIPR' codec heap overflow. (CVE-2009-4244)

  - A RealPlayer compressed 'GIF' heap overflow. 
    (CVE-2009-4245)

  - A RealPlayer 'SMIL' parsing heap overflow. 
    (CVE-2009-4257)

  - A RealPlayer skin parsing stack overflow. 
    (CVE-2009-4246)

  - A RealPlayer 'ASM' RuleBook Array Overflow. 
    (CVE-2009-4247)

  - A RealPlayer 'rtsp' set_parameter buffer overflow.
    (CVE-2009-4248)"
  );
  script_set_attribute(attribute:"see_also", value:"https://www.securityfocus.com/archive/1/509100/30/0/threaded");
  script_set_attribute(attribute:"see_also", value:"https://www.securityfocus.com/archive/1/509096/30/0/threaded");
  script_set_attribute(attribute:"see_also", value:"https://www.securityfocus.com/archive/1/509105/30/0/threaded");
  script_set_attribute(attribute:"see_also", value:"https://www.securityfocus.com/archive/1/509098/30/0/threaded");
  script_set_attribute(attribute:"see_also", value:"https://www.securityfocus.com/archive/1/509104/30/0/threaded");
  script_set_attribute(attribute:"see_also", value:"https://www.securityfocus.com/archive/1/509286/30/0/threaded");
  script_set_attribute(attribute:"see_also", value:"https://www.securityfocus.com/archive/1/509288/30/0/threaded");
  script_set_attribute(attribute:"see_also", value:"https://www.securityfocus.com/archive/1/509293/30/0/threaded");
  script_set_attribute(attribute:"see_also", value:"http://service.real.com/realplayer/security/01192010_player/en/");

  script_set_attribute(attribute:"solution", value:"Upgrade to RealPlayer SP 1.0.2 or later.");
  script_set_cvss_base_vector("CVSS2#AV:N/AC:M/Au:N/C:C/I:C/A:C");
  script_set_cvss_temporal_vector("CVSS2#E:H/RL:OF/RC:C");
  script_set_attribute(attribute:"exploitability_ease", value:"Exploits are available");
  script_set_attribute(attribute:"exploit_available", value:"true");
  script_set_attribute(attribute:"exploited_by_malware", value:"true");
  script_cwe_id(94, 119);

  script_set_attribute(attribute:"vuln_publication_date",value:"2010/01/19");
  script_set_attribute(attribute:"patch_publication_date",value:"2010/01/19");
  script_set_attribute(attribute:"plugin_publication_date",value:"2010/01/22");
 script_cvs_date("Date: 2018/11/15 20:50:28");
  script_set_attribute(attribute:"plugin_type", value:"local");
  script_set_attribute(attribute:"cpe", value:"cpe:/a:realnetworks:realplayer");
  script_set_attribute(attribute:"stig_severity", value:"II");
  script_end_attributes();

  script_category(ACT_GATHER_INFO);
  script_family(english:"Windows");

  script_copyright(english:"This script is Copyright (C) 2010-2018 Tenable Network Security, Inc.");

  script_dependencies("realplayer_detect.nasl");
  script_require_keys("SMB/RealPlayer/Product", "SMB/RealPlayer/Build");

  exit(0);
}

include("global_settings.inc");

prod = get_kb_item("SMB/RealPlayer/Product");
if (!prod) exit(1, "The 'SMB/RealPlayer/Product' KB item is missing.");

build = get_kb_item("SMB/RealPlayer/Build");
if (!build) exit(1, "The 'SMB/RealPlayer/Build' KB item is missing.");

ver = split(build, sep:'.', keep:FALSE);
for (i=0; i<max_index(ver); i++)
  ver[i] = int(ver[i]);

vuln = FALSE;
if ("RealPlayer" == prod)
{
  # nb: build numbers ARE NOT NECESSARILY SEQUENTIAL!
  if 
  (
    ver[0] < 6 ||
    (
      ver[0] == 6 && ver[1] == 0 &&
      (
        ver[2] < 12 ||
        (
          (
            ver[2] == 12 &&
            (
              (ver[3] >= 1040 && ver[3] <= 1663) ||
              ver[3] == 1675 ||
              ver[3] == 1698 ||
              ver[3] == 1741
            )
          ) ||
          ver[2] == 14
        ) 
      )
    )
  ) vuln=TRUE;
}
else if ("RealPlayer SP" == prod)
{
  if (ver[0] == 12 && ver[1] == 0 && ver[2] == 0 && ver[3] < 319) vuln=TRUE;
}
if ("RealPlayer" == prod || "RealPlayer SP" == prod)
{
  if (vuln)
  {
    if (report_verbosity > 0)
    {
      report = 
        '\n' +
        prod + ' build ' + build + ' is installed on the remote host.\n'+
        '\n';
      security_hole(port:get_kb_item("SMB/transport"), extra:report);
    }
    else security_hole(get_kb_item("SMB/transport"));
    exit(0);
  }
  else exit(0, 'The host is not affected because '+prod+' build '+build+' was detected.');
}

Seebug

bulletinFamilyexploit
descriptionBUGTRAQ ID: 37880 CVE ID: CVE-2009-4241,CVE-2009-4242,CVE-2009-4243,CVE-2009-4244,CVE-2009-4245,CVE-2009-4257,CVE-2009-4248,CVE-2009-4247,CVE-2009-4246 RealPlayer是一款流行的多媒体播放器。 RealPlayer解析畸形的皮肤或媒体文件时存在多个缓冲区溢出漏洞,用户受骗打开了恶意的文件就可以触发这些漏洞,导致执行任意指令。 1) 在解析包含有畸形ASMRuleBook结构的文件时可能将被破坏堆上的受控数据用作了对象指针,这可能导致堆溢出。 2) 在解析SIPR codec字段时解析了过小的长度值就可能会分配不充分的堆,之后溢出这个缓冲区。 3) 在解析带有伪造块大小的GIF文件时播放器错误的使用了来自文件的值用于在堆上分配缓冲区,可能导致堆溢出。 4) 负责解析SMIL文件的smlrender.dll库缺少正确的字符串长度检查,可能导致溢出静态的堆缓冲区。 5) 在解析.RJS皮肤文件时播放器将从web.xmb文件中所获得的某些变量长度字段拷贝到了静态大小的缓冲区中,这可能导致栈溢出。 6) RealPlayer ASM RuleBook中的错误可能导致数组溢出。 7) RealPlayer RTSP set_parameter中的错误可能导致缓冲区溢出。 Real Networks RealPlayer SP 1.0.1 Real Networks RealPlayer SP 1.0 Real Networks RealPlayer 11 Real Networks RealPlayer 10.x 厂商补丁: Real Networks ------------- 目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载: http://service.real.com/realplayer/security/01192010_player/en/
idSSV:18984
last seen2017-11-19
modified2010-01-22
published2010-01-22
reporterRoot
titleRealPlayer皮肤和媒体文件解析多个缓冲区溢出漏洞