Lucene search
K

Xerox WorkCentre Command Injection (XRX11-001)

🗓️ 08 Feb 2011 00:00:00Reported by TenableType 
nessus
 nessus
🔗 www.tenable.com👁 16 Views

The remote Xerox WorkCentre device allows an attacker to execute arbitrary code via crafted HTTP requests

Refs
Code
#
# (C) Tenable Network Security, Inc.
#

include("compat.inc");

if (description)
{
  script_id(51901);
  script_version("1.8");
  script_cvs_date("Date: 2018/11/15 20:50:24");

  script_bugtraq_id(46160);

  script_name(english:"Xerox WorkCentre Command Injection (XRX11-001)");
  script_summary(english:"Checks Net Controller Software version of Xerox WorkCentre devices");

  script_set_attribute(attribute:"synopsis", value:
"The remote multi-function device may allow arbitrary code execution.");
  script_set_attribute(
    attribute:"description",
    value:
"According to its model number and software version, the remote host
is a Xerox WorkCentre device that reportedly allows an unauthenticated
attacker to execute arbitrary code via specially crafted HTTP requests."
  );
  script_set_attribute(attribute:"see_also", value:"https://www.xerox.com/downloads/usa/en/c/cert_XRX11-001_v1.0.pdf");
  script_set_attribute(attribute:"solution", value:
"Apply the P45 patch as described in the Xerox security bulletin.");
  script_set_cvss_base_vector("CVSS2#AV:N/AC:L/Au:N/C:C/I:C/A:C");
  script_set_cvss_temporal_vector("CVSS2#E:F/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:"vuln_publication_date", value:"2011/02/04");
  script_set_attribute(attribute:"patch_publication_date", value:"2011/02/04");
  script_set_attribute(attribute:"plugin_publication_date", value:"2011/02/08");

  script_set_attribute(attribute:"plugin_type", value:"remote");
  script_set_attribute(attribute:"cpe", value:"cpe:/h:xerox:workcentre");
  script_end_attributes();

  script_category(ACT_GATHER_INFO);
  script_family(english:"Misc.");

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

  script_dependencies("xerox_workcentre_detect.nasl");
  script_require_keys("www/xerox_workcentre", "www/xerox_workcentre/model", "www/xerox_workcentre/ess");

  exit(0);
}

include("audit.inc");
include("global_settings.inc");
include("misc_func.inc");

get_kb_item_or_exit("www/xerox_workcentre");
model = get_kb_item_or_exit("www/xerox_workcentre/model");
ess = get_kb_item_or_exit("www/xerox_workcentre/ess");


# This function returns TRUE if the version string ver lies in
# the range [low, high].
function ver_inrange(ver, low, high)
{
  local_var ver_parts, low_parts, high_parts, i, p, low_p, high_p;

  if (isnull(ver) || isnull(low) || isnull(high)) return FALSE;

  # Split levels into parts.
  ver_parts = split(ver, sep:".", keep:0);
  low_parts = split(low, sep:".", keep:0);
  high_parts = split(high, sep:".", keep:0);

  # Compare each part.
  i = 0;
  while (ver_parts[i] != NULL)
  {
    p = int(ver_parts[i]);
    low_p = int(low_parts[i]);
    if (low_p == NULL) low_p = 0;
    high_p = int(high_parts[i]);
    if (high_p == NULL) high_p = 0;

    if (p > low_p && p < high_p) return TRUE;
    if (p < low_p || p > high_p) return FALSE;
    ++i;
  }
  return TRUE;
}


# No need to check if ESS has ".P45v2" since that
# indicates the patch has already been applied.
if (".P45v2" >< ess) audit(AUDIT_HOST_NOT, "affected");


# Test model number and software version against those in Xerox's security bulletin.
if (
  (
    # nb: models 7655/7665/7675 with ESS in the following ranges:
    #    [040.032, 040.032]
    #    [040.033.50500, 040.033.53040]
    #    [040.033.53050, 040.033.53210]
    model =~ "^76[567]5($|[^0-9])" &&
    (
      ver_inrange(ver:ess, low:"040.032.0",     high:"040.032.99999") ||
      ver_inrange(ver:ess, low:"040.033.50500", high:"040.033.53040") ||
      ver_inrange(ver:ess, low:"040.033.53050", high:"040.033.53210")
    )
  )
)
{
  if (report_verbosity > 0)
  {
    report =
      '\n  Model : ' + model +
      '\n  ESS Controller version : ' + ess + '\n';
    security_hole(port:0, extra:report);
  }
  else security_hole(0);
  exit(0);
}
audit(AUDIT_HOST_NOT, "affected");

Data

Build on a solid foundation with Vulners data

We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data

Api

Power your application with Vulners API

The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access

App

Assess and manage vulnerabilities with Vulners tools

Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation