Cloudanix VulnDB

CVE-2016-10516

Medium · 6.1

CVSS

6.1

EPSS

2.0%

Published

Oct 23, 2017

CISA due date

—

Cloudanix analysis

Schedule a fix SSVC: Track

A flaw in a popular web framework's error display tool could let an attacker run code inside a developer's browser simply by causing a specific kind of error message to appear.

Exploitation
Requires User Interaction
Attacker needs
User Interaction
Complexity
Low
Impact
Data Exposure
Component
Library
Class
XSS
Remediation
Upgrade
Effort
Medium
Patch risk
Low

What it actually does

The render_full function in the Werkzeug debugger fails to sanitize exception messages before rendering them as HTML, permitting arbitrary script or HTML injection when an exception field contains attacker-controlled content.

Why it matters to the business

Developers or administrators who trigger the debugger may have malicious code executed in their browsers, potentially leading to session hijacking, credential theft, or further internal network access during debugging sessions.

How an attack unfolds

An attacker supplies input designed to raise an exception whose message contains a script tag or other HTML payload; when the application runs under the debugger and the exception is rendered, the browser executes the injected code in the context of the debug console page.

How to fix it

Upgrade Pallets Werkzeug to version 0.11.11 or later (commit 938a331ddb0c7009f4286e962f8a9c1ebad62be2 or equivalent packaged releases such as 0.16.6-r1). Disable the debugger in production environments. If immediate upgrade is impossible, avoid exposing debug endpoints to untrusted traffic.

How to confirm the fix worked

Verify the installed Werkzeug version is at least 0.11.11; confirm the render_full function no longer renders raw exception content without escaping; test by triggering a controlled exception containing a benign script tag and confirming it is not executed.

Typical attack path

  1. Identify an application endpoint that uses Werkzeug in debug mode
  2. Craft and submit input that forces an exception containing a script or HTML payload in a message field
  3. Trigger the exception so the debugger renders the full traceback
  4. Browser executes the injected payload when the developer views the error page

How to detect it

Review web server and application logs for requests that reach debug or console endpoints while containing unusual characters or script fragments in parameters that later appear in exception messages; examine browser histories or proxy logs for unexpected script execution originating from debugger-rendered pages.

What your security team should do

  • Upgrade all Werkzeug instances to a fixed release immediately
  • Ensure the debugger is never enabled in production or internet-facing deployments
  • Scan dependency manifests for any pinned vulnerable Werkzeug versions and replace them
  • Add automated dependency update checks to prevent future regressions

The record

Cross-site scripting (XSS) vulnerability in the render_full function in debug/tbtools.py in the debugger in Pallets Werkzeug before 0.11.11 (as used in Pallets Flask and other products) allows remote attackers to inject arbitrary web script or HTML via a field that contains an exception message.

Affected packages

Ecosystem Package Introduced Fixed
PyPI werkzeug 0 0.11.11
Debian:11 python-werkzeug 0 0.11.11+dfsg1-1
Debian:12 python-werkzeug 0 0.11.11+dfsg1-1
Debian:13 python-werkzeug 0 0.11.11+dfsg1-1
Debian:7 python-werkzeug 0 0.8.3+dfsg-1+deb7u1
Red Hat:satellite:6.6::el7 ansible-runner 0 0:1.3.4-2.el7ar
Red Hat:satellite:6.6::el7 ansiblerole-foreman_scap_client 0 0:0.0.3-1.el7sat
Red Hat:satellite:6.6::el7 ansiblerole-insights-client 0 0:1.6-2.el7sat
Red Hat:satellite:6.6::el7 candlepin 0 0:2.6.9-1.el7sat
Red Hat:satellite:6.6::el7 candlepin-selinux 0 0:2.6.9-1.el7sat
Red Hat:satellite:6.6::el7 createrepo_c 0 0:0.7.4-1.el7sat
Red Hat:satellite:6.6::el7 createrepo_c-debuginfo 0 0:0.7.4-1.el7sat
Red Hat:satellite:6.6::el7 createrepo_c-libs 0 0:0.7.4-1.el7sat
Red Hat:satellite:6.6::el7 foreman 0 0:1.22.0.32-1.el7sat
Red Hat:satellite:6.6::el7 foreman-bootloaders-redhat 0 0:201901011200-1.el7sat
Red Hat:satellite:6.6::el7 foreman-bootloaders-redhat-tftpboot 0 0:201901011200-1.el7sat
Red Hat:satellite:6.6::el7 foreman-cli 0 0:1.22.0.32-1.el7sat
Red Hat:satellite:6.6::el7 foreman-debug 0 0:1.22.0.32-1.el7sat
Red Hat:satellite:6.6::el7 foreman-discovery-image 0 1:3.5.4-6.el7sat
Red Hat:satellite:6.6::el7 foreman-ec2 0 0:1.22.0.32-1.el7sat
Red Hat:satellite:6.6::el7 foreman-gce 0 0:1.22.0.32-1.el7sat
Red Hat:satellite:6.6::el7 foreman-installer 0 1:1.22.0.16-1.el7sat
Red Hat:satellite:6.6::el7 foreman-installer-katello 0 1:1.22.0.16-1.el7sat
Red Hat:satellite:6.6::el7 foreman-journald 0 0:1.22.0.32-1.el7sat
Red Hat:satellite:6.6::el7 foreman-libvirt 0 0:1.22.0.32-1.el7sat
Red Hat:satellite:6.6::el7 foreman-openstack 0 0:1.22.0.32-1.el7sat
Red Hat:satellite:6.6::el7 foreman-ovirt 0 0:1.22.0.32-1.el7sat
Red Hat:satellite:6.6::el7 foreman-postgresql 0 0:1.22.0.32-1.el7sat
Red Hat:satellite:6.6::el7 foreman-proxy 0 0:1.22.0.2-1.el7sat
Red Hat:satellite:6.6::el7 foreman-proxy-content 0 0:3.12.0-2.el7sat
Red Hat:satellite:6.6::el7 foreman-proxy-journald 0 0:1.22.0.2-1.el7sat
Red Hat:satellite:6.6::el7 foreman-rackspace 0 0:1.22.0.32-1.el7sat
Red Hat:satellite:6.6::el7 foreman-selinux 0 0:1.22.0-1.el7sat
Red Hat:satellite:6.6::el7 foreman-telemetry 0 0:1.22.0.32-1.el7sat
Red Hat:satellite:6.6::el7 foreman-vmware 0 0:1.22.0.32-1.el7sat
Red Hat:satellite:6.6::el7 future 0 0:0.16.0-11.el7sat
Red Hat:satellite:6.6::el7 gofer 0 0:2.12.5-5.el7sat
Red Hat:satellite:6.6::el7 hfsplus-tools 0 0:332.14-12.el7
Red Hat:satellite:6.6::el7 hfsplus-tools-debuginfo 0 0:332.14-12.el7
Red Hat:satellite:6.6::el7 katello 0 0:3.12.0-2.el7sat
Red Hat:satellite:6.6::el7 katello-certs-tools 0 0:2.6.0-1.el7sat
Red Hat:satellite:6.6::el7 katello-client-bootstrap 0 0:1.7.3-1.el7sat
Red Hat:satellite:6.6::el7 katello-common 0 0:3.12.0-2.el7sat
Red Hat:satellite:6.6::el7 katello-debug 0 0:3.12.0-2.el7sat
Red Hat:satellite:6.6::el7 katello-selinux 0 0:3.1.1-2.el7sat
Red Hat:satellite:6.6::el7 katello-service 0 0:3.12.0-2.el7sat
Red Hat:satellite:6.6::el7 kobo 0 0:0.5.1-1.el7sat
Red Hat:satellite:6.6::el7 libmodulemd 0 0:1.7.0-1.pulp.el7sat
Red Hat:satellite:6.6::el7 libmodulemd-debuginfo 0 0:1.7.0-1.pulp.el7sat
Red Hat:satellite:6.6::el7 libsolv 0 0:0.7.4-3.pulp.el7sat
Red Hat:satellite:6.6::el7 libsolv-debuginfo 0 0:0.7.4-3.pulp.el7sat
Red Hat:satellite:6.6::el7 libwebsockets 0 0:2.4.2-2.el7
Red Hat:satellite:6.6::el7 libwebsockets-debuginfo 0 0:2.4.2-2.el7
Red Hat:satellite:6.6::el7 livecd-tools 0 1:20.4-1.6.el7sat
Red Hat:satellite:6.6::el7 mod_passenger 0 0:4.0.18-24.el7sat
Red Hat:satellite:6.6::el7 mod_xsendfile 0 0:0.12-11.el7sat
Red Hat:satellite:6.6::el7 mod_xsendfile-debuginfo 0 0:0.12-11.el7sat
Red Hat:satellite:6.6::el7 ostree 0 0:2017.1-2.atomic.el7
Red Hat:satellite:6.6::el7 ostree-debuginfo 0 0:2017.1-2.atomic.el7
Red Hat:satellite:6.6::el7 pcp-mmvstatsd 0 0:0.4-2.el7sat
Red Hat:satellite:6.6::el7 pulp 0 0:2.19.1.1-1.el7sat
Red Hat:satellite:6.6::el7 pulp-admin-client 0 0:2.19.1.1-1.el7sat
Red Hat:satellite:6.6::el7 pulp-docker 0 0:3.2.3.1-2.el7sat
Red Hat:satellite:6.6::el7 pulp-docker-admin-extensions 0 0:3.2.3.1-2.el7sat
Red Hat:satellite:6.6::el7 pulp-docker-plugins 0 0:3.2.3.1-2.el7sat
Red Hat:satellite:6.6::el7 pulp-katello 0 0:1.0.3-1.el7sat
Red Hat:satellite:6.6::el7 pulp-maintenance 0 0:2.19.1.1-1.el7sat
Red Hat:satellite:6.6::el7 pulp-nodes-child 0 0:2.19.1.1-1.el7sat
Red Hat:satellite:6.6::el7 pulp-nodes-common 0 0:2.19.1.1-1.el7sat
Red Hat:satellite:6.6::el7 pulp-nodes-parent 0 0:2.19.1.1-1.el7sat
Red Hat:satellite:6.6::el7 pulp-ostree 0 0:1.3.1-2.el7sat
Red Hat:satellite:6.6::el7 pulp-ostree-admin-extensions 0 0:1.3.1-2.el7sat
Red Hat:satellite:6.6::el7 pulp-ostree-plugins 0 0:1.3.1-2.el7sat
Red Hat:satellite:6.6::el7 pulp-puppet 0 0:2.19.1-2.el7sat
Red Hat:satellite:6.6::el7 pulp-puppet-admin-extensions 0 0:2.19.1-2.el7sat
Red Hat:satellite:6.6::el7 pulp-puppet-plugins 0 0:2.19.1-2.el7sat
Red Hat:satellite:6.6::el7 pulp-puppet-tools 0 0:2.19.1-2.el7sat
Red Hat:satellite:6.6::el7 pulp-rpm 0 0:2.19.1.1-2.el7sat
Red Hat:satellite:6.6::el7 pulp-rpm-admin-extensions 0 0:2.19.1.1-2.el7sat
Red Hat:satellite:6.6::el7 pulp-rpm-plugins 0 0:2.19.1.1-2.el7sat
Red Hat:satellite:6.6::el7 pulp-selinux 0 0:2.19.1.1-1.el7sat
Red Hat:satellite:6.6::el7 pulp-server 0 0:2.19.1.1-1.el7sat
Red Hat:satellite:6.6::el7 puppet-agent 0 0:5.5.12-1.el7sat
Red Hat:satellite:6.6::el7 puppet-agent-oauth 0 0:0.5.1-3.el7sat
Red Hat:satellite:6.6::el7 puppet-foreman_scap_client 0 0:0.3.19-2.el7sat
Red Hat:satellite:6.6::el7 puppetlabs-stdlib 0 0:4.25.1-2.el7sat
Red Hat:satellite:6.6::el7 puppetserver 0 0:5.3.8-1.el7sat
Red Hat:satellite:6.6::el7 pycairo 0 0:1.16.3-9.el7sat
Red Hat:satellite:6.6::el7 pycairo-debuginfo 0 0:1.16.3-9.el7sat
Red Hat:satellite:6.6::el7 pygobject3 0 0:3.28.3-2.el7sat
Red Hat:satellite:6.6::el7 pygobject3-debuginfo 0 0:3.28.3-2.el7sat
Red Hat:satellite:6.6::el7 python-amqp 0 0:2.2.2-5.el7sat
Red Hat:satellite:6.6::el7 python-anyjson 0 0:0.3.3-11.el7sat
Red Hat:satellite:6.6::el7 python-billiard 0 1:3.5.0.3-3.el7sat
Red Hat:satellite:6.6::el7 python-billiard-debuginfo 0 1:3.5.0.3-3.el7sat
Red Hat:satellite:6.6::el7 python-blinker 0 0:1.3-2.el7sat
Red Hat:satellite:6.6::el7 python-bson 0 0:3.2-2.el7sat
Red Hat:satellite:6.6::el7 python-celery 0 0:4.0.2-9.el7sat
Red Hat:satellite:6.6::el7 python-click 0 0:6.7-9.el7sat
Red Hat:satellite:6.6::el7 python-crane 0 0:3.3.1-9.el7sat
Red Hat:satellite:6.6::el7 python-daemon 0 0:2.1.2-7.el7at
Red Hat:satellite:6.6::el7 python-django 0 0:1.11.13-1.el7sat
Red Hat:satellite:6.6::el7 python-flask 0 1:0.12.2-4.el7sat
Red Hat:satellite:6.6::el7 python-gnupg 0 0:0.3.7-1.el7ui
Red Hat:satellite:6.6::el7 python-gofer 0 0:2.12.5-5.el7sat
Red Hat:satellite:6.6::el7 python-gofer-qpid 0 0:2.12.5-5.el7sat
Red Hat:satellite:6.6::el7 python-imgcreate 0 1:20.4-1.6.el7sat
Red Hat:satellite:6.6::el7 python-isodate 0 0:0.5.4-12.el7sat
Red Hat:satellite:6.6::el7 python-itsdangerous 0 0:0.24-15.el7sat
Red Hat:satellite:6.6::el7 python-jinja2 0 0:2.10-10.el7sat
Red Hat:satellite:6.6::el7 python-kid 0 0:0.9.6-11.el7sat
Red Hat:satellite:6.6::el7 python-kombu 0 10:4.0.2-13.el7sat
Red Hat:satellite:6.6::el7 python-lockfile 0 1:0.11.0-10.el7ar
Red Hat:satellite:6.6::el7 python-markupsafe 0 0:0.23-21.el7sat
Red Hat:satellite:6.6::el7 python-markupsafe-debuginfo 0 0:0.23-21.el7sat
Red Hat:satellite:6.6::el7 python-mongoengine 0 0:0.10.5-2.el7sat
Red Hat:satellite:6.6::el7 python-nectar 0 0:1.6.0-1.el7sat
Red Hat:satellite:6.6::el7 python-oauth2 0 0:1.5.211-8.el7sat
Red Hat:satellite:6.6::el7 python-okaara 0 0:1.0.37-2.el7sat
Red Hat:satellite:6.6::el7 python-pexpect 0 0:4.6-1.el7at
Red Hat:satellite:6.6::el7 python-psutil 0 0:5.0.1-3.el7sat
Red Hat:satellite:6.6::el7 python-psutil-debuginfo 0 0:5.0.1-3.el7sat
Red Hat:satellite:6.6::el7 python-ptyprocess 0 0:0.5.2-3.el7at
Red Hat:satellite:6.6::el7 python-pulp-agent-lib 0 0:2.19.1.1-1.el7sat
Red Hat:satellite:6.6::el7 python-pulp-bindings 0 0:2.19.1.1-1.el7sat
Red Hat:satellite:6.6::el7 python-pulp-client-lib 0 0:2.19.1.1-1.el7sat
Red Hat:satellite:6.6::el7 python-pulp-common 0 0:2.19.1.1-1.el7sat
Red Hat:satellite:6.6::el7 python-pulp-docker-common 0 0:3.2.3.1-2.el7sat
Red Hat:satellite:6.6::el7 python-pulp-integrity 0 0:2.19.1.1-2.el7sat
Red Hat:satellite:6.6::el7 python-pulp-oid_validation 0 0:2.19.1.1-1.el7sat
Red Hat:satellite:6.6::el7 python-pulp-ostree-common 0 0:1.3.1-2.el7sat
Red Hat:satellite:6.6::el7 python-pulp-puppet-common 0 0:2.19.1-2.el7sat
Red Hat:satellite:6.6::el7 python-pulp-repoauth 0 0:2.19.1.1-1.el7sat
Red Hat:satellite:6.6::el7 python-pulp-rpm-common 0 0:2.19.1.1-2.el7sat
Red Hat:satellite:6.6::el7 python-pulp-streamer 0 0:2.19.1.1-1.el7sat
Red Hat:satellite:6.6::el7 python-pycurl 0 0:7.43.0.2-4.el7sat
Red Hat:satellite:6.6::el7 python-pycurl-debuginfo 0 0:7.43.0.2-4.el7sat
Red Hat:satellite:6.6::el7 python-pymongo 0 0:3.2-2.el7sat
Red Hat:satellite:6.6::el7 python-pymongo-debuginfo 0 0:3.2-2.el7sat
Red Hat:satellite:6.6::el7 python-pymongo-gridfs 0 0:3.2-2.el7sat
Red Hat:satellite:6.6::el7 python-qpid 0 0:1.35.0-5.el7
Red Hat:satellite:6.6::el7 python-qpid-proton 0 0:0.28.0-1.el7
Red Hat:satellite:6.6::el7 python-qpid-qmf 0 0:1.36.0-28.el7amq
Red Hat:satellite:6.6::el7 python-saslwrapper 0 0:0.22-5.el7sat
Red Hat:satellite:6.6::el7 python-semantic_version 0 0:2.2.0-6.el7sat
Red Hat:satellite:6.6::el7 python-simplejson 0 0:3.2.0-1.el7sat
Red Hat:satellite:6.6::el7 python-simplejson-debuginfo 0 0:3.2.0-1.el7sat
Red Hat:satellite:6.6::el7 python-twisted 0 0:16.4.1-12.el7sat
Red Hat:satellite:6.6::el7 python-twisted-debuginfo 0 0:16.4.1-12.el7sat
Red Hat:satellite:6.6::el7 python-vine 0 10:1.1.3-6.el7sat
Red Hat:satellite:6.6::el7 python-werkzeug 0 0:0.12.2-5.el7sat
Red Hat:satellite:6.6::el7 python-zope-interface 0 0:4.0.5-4.el7
Red Hat:satellite:6.6::el7 python-zope-interface-debuginfo 0 0:4.0.5-4.el7
Red Hat:satellite:6.6::el7 python2-amqp 0 0:2.2.2-5.el7sat
Red Hat:satellite:6.6::el7 python2-ansible-runner 0 0:1.3.4-2.el7ar
Red Hat:satellite:6.6::el7 python2-anyjson 0 0:0.3.3-11.el7sat
Red Hat:satellite:6.6::el7 python2-billiard 0 1:3.5.0.3-3.el7sat
Red Hat:satellite:6.6::el7 python2-celery 0 0:4.0.2-9.el7sat
Red Hat:satellite:6.6::el7 python2-click 0 0:6.7-9.el7sat
Red Hat:satellite:6.6::el7 python2-crane 0 0:3.3.1-9.el7sat
Red Hat:satellite:6.6::el7 python2-daemon 0 0:2.1.2-7.el7at
Red Hat:satellite:6.6::el7 python2-django 0 0:1.11.13-1.el7sat
Red Hat:satellite:6.6::el7 python2-flask 0 1:0.12.2-4.el7sat
Red Hat:satellite:6.6::el7 python2-future 0 0:0.16.0-11.el7sat
Red Hat:satellite:6.6::el7 python2-gobject 0 0:3.28.3-2.el7sat
Red Hat:satellite:6.6::el7 python2-gobject-base 0 0:3.28.3-2.el7sat
Red Hat:satellite:6.6::el7 python2-isodate 0 0:0.5.4-12.el7sat
Red Hat:satellite:6.6::el7 python2-itsdangerous 0 0:0.24-15.el7sat
Red Hat:satellite:6.6::el7 python2-jinja2 0 0:2.10-10.el7sat
Red Hat:satellite:6.6::el7 python2-kombu 0 10:4.0.2-13.el7sat
Red Hat:satellite:6.6::el7 python2-lockfile 0 1:0.11.0-10.el7ar
Red Hat:satellite:6.6::el7 python2-markupsafe 0 0:0.23-21.el7sat
Red Hat:satellite:6.6::el7 python2-nectar 0 0:1.6.0-1.el7sat
Red Hat:satellite:6.6::el7 python2-okaara 0 0:1.0.37-2.el7sat
Red Hat:satellite:6.6::el7 python2-pexpect 0 0:4.6-1.el7at
Red Hat:satellite:6.6::el7 python2-ptyprocess 0 0:0.5.2-3.el7at
Red Hat:satellite:6.6::el7 python2-pycurl 0 0:7.43.0.2-4.el7sat
Red Hat:satellite:6.6::el7 python2-solv 0 0:0.7.4-3.pulp.el7sat
Red Hat:satellite:6.6::el7 python2-twisted 0 0:16.4.1-12.el7sat
Red Hat:satellite:6.6::el7 python2-vine 0 10:1.1.3-6.el7sat
Red Hat:satellite:6.6::el7 python2-werkzeug 0 0:0.12.2-5.el7sat
Red Hat:satellite:6.6::el7 qpid-cpp 0 0:1.36.0-28.el7amq
Red Hat:satellite:6.6::el7 qpid-cpp-client 0 0:1.36.0-28.el7amq
Red Hat:satellite:6.6::el7 qpid-cpp-client-devel 0 0:1.36.0-28.el7amq
Red Hat:satellite:6.6::el7 qpid-cpp-debuginfo 0 0:1.36.0-28.el7amq
Red Hat:satellite:6.6::el7 qpid-cpp-server 0 0:1.36.0-28.el7amq
Red Hat:satellite:6.6::el7 qpid-cpp-server-linearstore 0 0:1.36.0-28.el7amq
Red Hat:satellite:6.6::el7 qpid-dispatch 0 0:1.5.0-4.el7
Red Hat:satellite:6.6::el7 qpid-dispatch-debuginfo 0 0:1.5.0-4.el7
Red Hat:satellite:6.6::el7 qpid-dispatch-router 0 0:1.5.0-4.el7
Red Hat:satellite:6.6::el7 qpid-dispatch-tools 0 0:1.5.0-4.el7
Red Hat:satellite:6.6::el7 qpid-proton 0 0:0.28.0-1.el7
Red Hat:satellite:6.6::el7 qpid-proton-c 0 0:0.28.0-1.el7
Red Hat:satellite:6.6::el7 qpid-proton-debuginfo 0 0:0.28.0-1.el7
Red Hat:satellite:6.6::el7 qpid-qmf 0 0:1.36.0-28.el7amq
Red Hat:satellite:6.6::el7 qpid-tools 0 0:1.36.0-28.el7amq
Red Hat:satellite:6.6::el7 redhat-access-insights-puppet 0 0:1.0.0-1.el7sat
Red Hat:satellite:6.6::el7 repoview 0 0:0.6.6-11.el7sat
Red Hat:satellite:6.6::el7 rhel8-kickstart-setup 0 0:0.0.2-1.el7sat
Red Hat:satellite:6.6::el7 rubygem-ansi 0 0:1.4.3-3.el7sat

Related vulnerabilities