Vulnerabilities > CVE-2009-1255 - Information Exposure vulnerability in Memcachedb Memcached

047910
CVSS 5.0 - MEDIUM
Attack vector
NETWORK
Attack complexity
LOW
Privileges required
NONE
Confidentiality impact
PARTIAL
Integrity impact
NONE
Availability impact
NONE
network
low complexity
memcachedb
CWE-200
nessus

Summary

The process_stat function in (1) Memcached before 1.2.8 and (2) MemcacheDB 1.2.0 discloses (a) the contents of /proc/self/maps in response to a stats maps command and (b) memory-allocation statistics in response to a stats malloc command, which allows remote attackers to obtain sensitive information such as the locations of memory regions, and defeat ASLR protection, by sending a command to the daemon's TCP port.

Common Weakness Enumeration (CWE)

Common Attack Pattern Enumeration and Classification (CAPEC)

  • Subverting Environment Variable Values
    The attacker directly or indirectly modifies environment variables used by or controlling the target software. The attacker's goal is to cause the target software to deviate from its expected operation in a manner that benefits the attacker.
  • Footprinting
    An attacker engages in probing and exploration activity to identify constituents and properties of the target. Footprinting is a general term to describe a variety of information gathering techniques, often used by attackers in preparation for some attack. It consists of using tools to learn as much as possible about the composition, configuration, and security mechanisms of the targeted application, system or network. Information that might be collected during a footprinting effort could include open ports, applications and their versions, network topology, and similar information. While footprinting is not intended to be damaging (although certain activities, such as network scans, can sometimes cause disruptions to vulnerable applications inadvertently) it may often pave the way for more damaging attacks.
  • Exploiting Trust in Client (aka Make the Client Invisible)
    An attack of this type exploits a programs' vulnerabilities in client/server communication channel authentication and data integrity. It leverages the implicit trust a server places in the client, or more importantly, that which the server believes is the client. An attacker executes this type of attack by placing themselves in the communication channel between client and server such that communication directly to the server is possible where the server believes it is communicating only with a valid client. There are numerous variations of this type of attack.
  • Browser Fingerprinting
    An attacker carefully crafts small snippets of Java Script to efficiently detect the type of browser the potential victim is using. Many web-based attacks need prior knowledge of the web browser including the version of browser to ensure successful exploitation of a vulnerability. Having this knowledge allows an attacker to target the victim with attacks that specifically exploit known or zero day weaknesses in the type and version of the browser used by the victim. Automating this process via Java Script as a part of the same delivery system used to exploit the browser is considered more efficient as the attacker can supply a browser fingerprinting method and integrate it with exploit code, all contained in Java Script and in response to the same web page request by the browser.
  • Session Credential Falsification through Prediction
    This attack targets predictable session ID in order to gain privileges. The attacker can predict the session ID used during a transaction to perform spoofing and session hijacking.

Nessus

  • NASL familySuSE Local Security Checks
    NASL idSUSE_11_0_MEMCACHED-090806.NASL
    descriptionThis update of memcached fixes a signedness problem which may lead to a buffer too small to hold all data received from the network, this may allow arbitrary remote code execution. (CVE-2009-2415) Additionally an information leak was fixed (CVE-2009-1494, CVE-2009-1255 )
    last seen2020-06-01
    modified2020-06-02
    plugin id40545
    published2009-08-11
    reporterThis script is Copyright (C) 2009-2019 Tenable Network Security, Inc.
    sourcehttps://www.tenable.com/plugins/nessus/40545
    titleopenSUSE Security Update : memcached (memcached-1165)
    code
    #%NASL_MIN_LEVEL 80502
    #
    # (C) Tenable Network Security, Inc.
    #
    # The descriptive text and package checks in this plugin were
    # extracted from openSUSE Security Update memcached-1165.
    #
    # The text description of this plugin is (C) SUSE LLC.
    #
    
    include("compat.inc");
    
    if (description)
    {
      script_id(40545);
      script_version("1.11");
      script_cvs_date("Date: 2019/10/25 13:36:34");
    
      script_cve_id("CVE-2009-1255", "CVE-2009-1494", "CVE-2009-2415");
    
      script_name(english:"openSUSE Security Update : memcached (memcached-1165)");
      script_summary(english:"Check for the memcached-1165 patch");
    
      script_set_attribute(
        attribute:"synopsis", 
        value:"The remote openSUSE host is missing a security update."
      );
      script_set_attribute(
        attribute:"description", 
        value:
    "This update of memcached fixes a signedness problem which may lead to
    a buffer too small to hold all data received from the network, this
    may allow arbitrary remote code execution. (CVE-2009-2415)
    Additionally an information leak was fixed (CVE-2009-1494,
    CVE-2009-1255 )"
      );
      script_set_attribute(
        attribute:"see_also",
        value:"https://bugzilla.novell.com/show_bug.cgi?id=527875"
      );
      script_set_attribute(
        attribute:"solution", 
        value:"Update the affected memcached package."
      );
      script_set_cvss_base_vector("CVSS2#AV:N/AC:L/Au:N/C:C/I:C/A:C");
      script_cwe_id(189, 200);
    
      script_set_attribute(attribute:"plugin_type", value:"local");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:novell:opensuse:memcached");
      script_set_attribute(attribute:"cpe", value:"cpe:/o:novell:opensuse:11.0");
    
      script_set_attribute(attribute:"patch_publication_date", value:"2009/08/06");
      script_set_attribute(attribute:"plugin_publication_date", value:"2009/08/11");
      script_end_attributes();
    
      script_category(ACT_GATHER_INFO);
      script_copyright(english:"This script is Copyright (C) 2009-2019 Tenable Network Security, Inc.");
      script_family(english:"SuSE Local Security Checks");
    
      script_dependencies("ssh_get_info.nasl");
      script_require_keys("Host/local_checks_enabled", "Host/SuSE/release", "Host/SuSE/rpm-list", "Host/cpu");
    
      exit(0);
    }
    
    
    include("audit.inc");
    include("global_settings.inc");
    include("rpm.inc");
    
    if (!get_kb_item("Host/local_checks_enabled")) audit(AUDIT_LOCAL_CHECKS_NOT_ENABLED);
    release = get_kb_item("Host/SuSE/release");
    if (isnull(release) || release =~ "^(SLED|SLES)") audit(AUDIT_OS_NOT, "openSUSE");
    if (release !~ "^(SUSE11\.0)$") audit(AUDIT_OS_RELEASE_NOT, "openSUSE", "11.0", release);
    if (!get_kb_item("Host/SuSE/rpm-list")) audit(AUDIT_PACKAGE_LIST_MISSING);
    
    ourarch = get_kb_item("Host/cpu");
    if (!ourarch) audit(AUDIT_UNKNOWN_ARCH);
    if (ourarch !~ "^(i586|i686|x86_64)$") audit(AUDIT_ARCH_NOT, "i586 / i686 / x86_64", ourarch);
    
    flag = 0;
    
    if ( rpm_check(release:"SUSE11.0", reference:"memcached-1.2.2-49.2") ) flag++;
    
    if (flag)
    {
      if (report_verbosity > 0) security_hole(port:0, extra:rpm_report_get());
      else security_hole(0);
      exit(0);
    }
    else
    {
      tested = pkg_tests_get();
      if (tested) audit(AUDIT_PACKAGE_NOT_AFFECTED, tested);
      else audit(AUDIT_PACKAGE_NOT_INSTALLED, "memcached");
    }
    
  • NASL familyMisc.
    NASL idMEMCACHED_ASLR_BYPASS.NASL
    descriptionThe version of memcached / MemcacheDB running on the remote host reveals information about the stack, heap, and shared library memory locations it uses. An unauthenticated remote attacker may be able to leverage this weakness to defeat any address space layout randomization (ASLR) protection on the remote host, thereby making buffer overflows easier to exploit.
    last seen2020-06-01
    modified2020-06-02
    plugin id38207
    published2009-04-29
    reporterThis script is Copyright (C) 2009-2018 Tenable Network Security, Inc.
    sourcehttps://www.tenable.com/plugins/nessus/38207
    titleMemcached / MemcacheDB ASLR Bypass Weakness
    code
    #
    # (C) Tenable Network Security, Inc.
    #
    
    
    include("compat.inc");
    
    
    if (description)
    {
      script_id(38207);
      script_version("1.10");
    
      script_cve_id("CVE-2009-1255");
      script_bugtraq_id(34756);
      script_xref(name:"Secunia", value:"34915");
      script_xref(name:"Secunia", value:"34932");
    
      script_name(english:"Memcached / MemcacheDB ASLR Bypass Weakness");
      script_summary(english:"Sends a 'stats maps' command");
     
      script_set_attribute( attribute:"synopsis",  value:
    "The remote object store suffers from a weakness that may make buffer
    overflows easier to exploit."  );
      script_set_attribute( attribute:"description",  value:
    "The version of memcached / MemcacheDB running on the remote host
    reveals information about the stack, heap, and shared library memory
    locations it uses.  An unauthenticated remote attacker may be able to
    leverage this weakness to defeat any address space layout
    randomization (ASLR) protection on the remote host, thereby making
    buffer overflows easier to exploit."  );
      script_set_attribute(
        attribute:"see_also", 
        value:"https://www.positronsecurity.com/advisories/2009-001.html"
      );
      script_set_attribute(
        attribute:"see_also", 
        value:"https://seclists.org/fulldisclosure/2009/Apr/281"
      );
      script_set_attribute(
        attribute:"see_also", 
        value:"http://www.nessus.org/u?97546674"
      );
      script_set_attribute(
        attribute:"see_also", 
        value:"http://www.nessus.org/u?24b11223"
      );
      script_set_attribute( attribute:"solution",  value:
    "If using memcached, upgrade to version 1.2.8.
    
    If using MemcacheDB, upgrade to revision r98 or later from the code
    repository."  );
     script_set_cvss_base_vector("CVSS2#AV:N/AC:L/Au:N/C:P/I:N/A:N");
     script_set_cvss_temporal_vector("CVSS2#E:U/RL:OF/RC:C");
     script_set_attribute(attribute:"exploitability_ease", value:"No known exploits are available");
     script_set_attribute(attribute:"exploit_available", value:"false");
     script_cwe_id(200);
     script_set_attribute(attribute:"plugin_publication_date", value: "2009/04/29");
     script_cvs_date("Date: 2018/11/15 20:50:23");
      script_set_attribute(attribute:"plugin_type", value:"remote");
      script_end_attributes();
     
      script_category(ACT_GATHER_INFO);
      script_family(english:"Misc.");
    
      script_copyright(english:"This script is Copyright (C) 2009-2018 Tenable Network Security, Inc.");
    
      script_dependencies("memcached_detect.nasl");
      script_require_ports("Services/memcached", 11211, 21201);
    
      exit(0);
    }
    
    
    include("global_settings.inc");
    include("misc_func.inc");
    
    
    ports = add_port_in_list(list:get_kb_list("Services/memcached"), port:11211);
    ports = add_port_in_list(list:ports, port:21201);
    
    foreach port (ports)
    {
      if (!get_port_state(port)) continue;
    
      soc = open_sock_tcp(port);
      if (soc)
      {
        req = "stats maps";
        send(socket:soc, data:string(req, "\r\n"));
        res = recv(socket:soc, length:8192);
    
        # There's a problem if...
        if (
          # we get a response and...
          !isnull(res) && 
          (
            # either there's an error or...
            stridx(res, 'SERVER_ERROR ') == 0 ||
            # we see a map
            egrep(pattern:"^[0-9a-f]+-[0-9a-f]+[ 	][-r][-w][-x]p[ 	]", string:res)
          )
        )
        {
          if (report_verbosity > 0)
          {
            max_lines = 10;
            n = 0;
            output = "";
    
            foreach line (split(res, keep:TRUE))
            {
              output += line;
              if (n++ > max_lines) break;
            }
            report = string(
              "\n",
              "Here is the output of sending a '", req, "' command to the remote\n",
              "service :\n",
              "\n",
              crap(data:"-", length:30), " snip ", crap(data:"-", length:30), "\n",
              output,
              crap(data:"-", length:30), " snip ", crap(data:"-", length:30), "\n"
            );
            if (n < max_index(split(res)))
            {
              report = string(
                report,
                "\n",
                "Note that only the first ", max_lines, " lines of output are reported.\n"
              );
            }
            if (stridx(res, 'SERVER_ERROR ') == 0)
            {
              report = string(
                report,
                "\n",
                "Note that while the server responded with an error, the error itself\n",
                "indicates the weakness in the code is still present.\n"
              );
            }
    
            security_warning(port:port, extra:report);
          }
          else security_warning(port);
        }
    
        close(soc);
      }
    }
    
  • NASL familyFedora Local Security Checks
    NASL idFEDORA_2009-4199.NASL
    description - Wed Apr 29 2009 Paul Lindner <lindner at inuus.com> - 1.2.8-1 - Upgrade to memcached-1.2.8 - Addresses CVE-2009-1255 - Wed Feb 25 2009 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 1.2.6-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild - Tue Jul 29 2008 Paul Lindner <lindner at inuus.com> - 1.2.6-1 - Upgrade to memcached-1.2.6 Note that Tenable Network Security has extracted the preceding description block directly from the Fedora security advisory. Tenable has attempted to automatically clean and format it as much as possible without introducing additional issues.
    last seen2020-06-01
    modified2020-06-02
    plugin id38835
    published2009-05-20
    reporterThis script is Copyright (C) 2009-2019 Tenable Network Security, Inc.
    sourcehttps://www.tenable.com/plugins/nessus/38835
    titleFedora 10 : memcached-1.2.8-1.fc10 (2009-4199)
  • NASL familySuSE Local Security Checks
    NASL idSUSE_MEMCACHED-6397.NASL
    descriptionThis update of memcached fixes a signedness problem which may lead to a buffer too small to hold all data received from the network, this may allow arbitrary remote code execution. (CVE-2009-2415) Additionally an information leak was fixed (CVE-2009-1494, CVE-2009-1255 )
    last seen2020-06-01
    modified2020-06-02
    plugin id42022
    published2009-10-06
    reporterThis script is Copyright (C) 2009-2019 Tenable Network Security, Inc.
    sourcehttps://www.tenable.com/plugins/nessus/42022
    titleopenSUSE 10 Security Update : memcached (memcached-6397)
  • NASL familyFreeBSD Local Security Checks
    NASL idFREEBSD_PKG_86ADA6948B3011DEB9D0000C6E274733.NASL
    descriptionSecunia reports : A weakness has been reported in memcached, which can be exploited by malicious people to disclose system information. The weakness is caused due to the application disclosing the content of /proc/self/maps if a stats maps command is received. This can be exploited to disclose e.g. the addresses of allocated memory regions.
    last seen2020-06-01
    modified2020-06-02
    plugin id40660
    published2009-08-20
    reporterThis script is Copyright (C) 2009-2019 and is owned by Tenable, Inc. or an Affiliate thereof.
    sourcehttps://www.tenable.com/plugins/nessus/40660
    titleFreeBSD : memcached -- memcached stats maps Information Disclosure Weakness (86ada694-8b30-11de-b9d0-000c6e274733)
  • NASL familySuSE Local Security Checks
    NASL idSUSE_11_1_MEMCACHED-090806.NASL
    descriptionThis update of memcached fixes a signedness problem which may lead to a buffer too small to hold all data received from the network, this may allow arbitrary remote code execution. (CVE-2009-2415) Additionally an information leak was fixed (CVE-2009-1494, CVE-2009-1255 )
    last seen2020-06-01
    modified2020-06-02
    plugin id40546
    published2009-08-11
    reporterThis script is Copyright (C) 2009-2019 Tenable Network Security, Inc.
    sourcehttps://www.tenable.com/plugins/nessus/40546
    titleopenSUSE Security Update : memcached (memcached-1165)
  • NASL familyFedora Local Security Checks
    NASL idFEDORA_2009-4542.NASL
    description - Wed Apr 29 2009 Paul Lindner <lindner at inuus.com> - 1.2.8-1 - Upgrade to memcached-1.2.8 - Addresses CVE-2009-1255 Note that Tenable Network Security has extracted the preceding description block directly from the Fedora security advisory. Tenable has attempted to automatically clean and format it as much as possible without introducing additional issues.
    last seen2020-06-01
    modified2020-06-02
    plugin id38916
    published2009-05-27
    reporterThis script is Copyright (C) 2009-2019 Tenable Network Security, Inc.
    sourcehttps://www.tenable.com/plugins/nessus/38916
    titleFedora 11 : memcached-1.2.8-1.fc11 (2009-4542)
  • NASL familyMandriva Local Security Checks
    NASL idMANDRIVA_MDVSA-2009-105.NASL
    descriptionThe process_stat function in Memcached prior 1.2.8 discloses memory-allocation statistics in response to a stats malloc command, which allows remote attackers to obtain potentially sensitive information by sending this command to the daemon
    last seen2020-06-01
    modified2020-06-02
    plugin id38683
    published2009-05-05
    reporterThis script is Copyright (C) 2009-2019 Tenable Network Security, Inc.
    sourcehttps://www.tenable.com/plugins/nessus/38683
    titleMandriva Linux Security Advisory : memcached (MDVSA-2009:105)

Seebug

bulletinFamilyexploit
descriptionBUGTRAQ ID: 34756 CVE(CAN) ID: CVE-2009-1255 Memcached是一个开源的多平台数据库缓存软件。 如果远程攻击者连接到了memcached的TCP端口(默认11211)并发布了stats maps命令,Memcached就会直接将/proc/self/maps的输出管道传输给客户端。这可能导致泄漏所分配内存区域的地址。 Danga Interactive memcached 1.2.7 MemcacheDB MemcacheDB 1.2 Danga Interactive ----------------- 目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载: <a href=http://memcached.googlecode.com/files/memcached-1.2.8.tar.gz target=_blank rel=external nofollow>http://memcached.googlecode.com/files/memcached-1.2.8.tar.gz</a>
idSSV:11168
last seen2017-11-19
modified2009-05-01
published2009-05-01
reporterRoot
titleMemcached stats maps命令信息泄露漏洞