CVE-2021-41184
Medium · 6.5CVSS
6.5
EPSS
40.8%
Published
Oct 26, 2021
CISA due date
—
Cloudanix analysis
A problem in web page handling tools could let attackers secretly run code inside users' browsers and steal information or take over accounts.
- Exploitation
- Requires User Interaction
- Attacker needs
- None
- Complexity
- Low
- Impact
- Data Exposure
- Component
- Library
- Class
- XSS
- Remediation
- Upgrade
- Effort
- Low
- Patch risk
- Low
What it actually does
The vulnerability permits injection and execution of arbitrary JavaScript in a user's browser context due to flawed regex-based HTML sanitization in the affected jQuery component.
Why it matters to the business
Attackers may hijack user sessions, exfiltrate data, or perform unauthorized actions, resulting in data breaches and reputational damage. The flaw impacts nginx packages on Alpine v3.16 with a high EPSS score but no active KEV or ransomware usage after more than 1800 days.
How an attack unfolds
An attacker locates an application leveraging the vulnerable jQuery version bundled in nginx, crafts a malicious HTML payload that evades the sanitization logic, and delivers it through user-controlled input so that victim browsers execute the script on page render.
How to fix it
Upgrade nginx on Alpine v3.16 to version 1.20.2-r2 or later.
How to confirm the fix worked
Confirm the nginx package version is at least 1.20.2-r2 and validate that previously exploitable HTML inputs no longer execute scripts.
Typical attack path
- Locate web application using the vulnerable nginx package containing jQuery
- Craft HTML string bypassing the flawed regex
- Inject payload via input fields or stored data
- Trigger page render for targeted users
- Execute scripts to steal cookies or perform actions
How to detect it
Inspect web access and error logs for suspicious script tags, encoded HTML payloads, or anomalous JavaScript execution patterns; correlate with application request histories for signs of successful injection.
What your security team should do
- Upgrade all affected nginx Alpine v3.16 installations to 1.20.2-r2 immediately
- Audit web applications for residual jQuery XSS exposure
- Deploy Content-Security-Policy headers as a compensating control
- Review historical web logs for signs of prior exploitation attempts
The record
jQuery-UI is the official jQuery user interface library. Prior to version 1.13.0, accepting the value of the `of` option of the `.position()` util from untrusted sources may execute untrusted code. The issue is fixed in jQuery UI 1.13.0. Any string value passed to the `of` option is now treated as a CSS selector. A workaround is to not accept the value of the `of` option from untrusted sources.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Maven | org.webjars.npm:jquery-ui | 0 | 1.13.0 |
| NuGet | jQuery.UI.Combined | 0 | 1.13.0 |
| RubyGems | jquery-ui-rails | 0 | 7.0.0 |
| npm | jquery-ui | 0 | 1.13.0 |
| Bitnami | drupal | 7.0.0 | 7.86.0 |
| Debian:10 | jqueryui | 0 | 1.12.1+dfsg-5+deb10u1 |
| Debian:10 | otrs2 | 0 | 6.0.16-2+deb10u1 |
| Debian:11 | jqueryui | 0 | 1.12.1+dfsg-8+deb11u1 |
| Debian:11 | otrs2 | 0 | No fix |
| Debian:12 | jqueryui | 0 | 1.13.0+dfsg-1 |
| Debian:13 | jqueryui | 0 | 1.13.0+dfsg-1 |
| Debian:14 | jqueryui | 0 | 1.13.0+dfsg-1 |
| Red Hat:rhev_manager:4.4:el8 | ovirt-engine | 0 | 0:4.5.0.7-0.9.el8ev |
| Red Hat:rhev_manager:4.4:el8 | ovirt-engine-backend | 0 | 0:4.5.0.7-0.9.el8ev |
| Red Hat:rhev_manager:4.4:el8 | ovirt-engine-dbscripts | 0 | 0:4.5.0.7-0.9.el8ev |
| Red Hat:rhev_manager:4.4:el8 | ovirt-engine-health-check-bundler | 0 | 0:4.5.0.7-0.9.el8ev |
| Red Hat:rhev_manager:4.4:el8 | ovirt-engine-restapi | 0 | 0:4.5.0.7-0.9.el8ev |
| Red Hat:rhev_manager:4.4:el8 | ovirt-engine-setup | 0 | 0:4.5.0.7-0.9.el8ev |
| Red Hat:rhev_manager:4.4:el8 | ovirt-engine-setup-base | 0 | 0:4.5.0.7-0.9.el8ev |
| Red Hat:rhev_manager:4.4:el8 | ovirt-engine-setup-plugin-cinderlib | 0 | 0:4.5.0.7-0.9.el8ev |
| Red Hat:rhev_manager:4.4:el8 | ovirt-engine-setup-plugin-imageio | 0 | 0:4.5.0.7-0.9.el8ev |
| Red Hat:rhev_manager:4.4:el8 | ovirt-engine-setup-plugin-ovirt-engine | 0 | 0:4.5.0.7-0.9.el8ev |
| Red Hat:rhev_manager:4.4:el8 | ovirt-engine-setup-plugin-ovirt-engine-common | 0 | 0:4.5.0.7-0.9.el8ev |
| Red Hat:rhev_manager:4.4:el8 | ovirt-engine-setup-plugin-vmconsole-proxy-helper | 0 | 0:4.5.0.7-0.9.el8ev |
| Red Hat:rhev_manager:4.4:el8 | ovirt-engine-setup-plugin-websocket-proxy | 0 | 0:4.5.0.7-0.9.el8ev |
| Red Hat:rhev_manager:4.4:el8 | ovirt-engine-tools | 0 | 0:4.5.0.7-0.9.el8ev |
| Red Hat:rhev_manager:4.4:el8 | ovirt-engine-tools-backup | 0 | 0:4.5.0.7-0.9.el8ev |
| Red Hat:rhev_manager:4.4:el8 | ovirt-engine-ui-extensions | 0 | 0:1.3.3-1.el8ev |
| Red Hat:rhev_manager:4.4:el8 | ovirt-engine-vmconsole-proxy-helper | 0 | 0:4.5.0.7-0.9.el8ev |
| Red Hat:rhev_manager:4.4:el8 | ovirt-engine-webadmin-portal | 0 | 0:4.5.0.7-0.9.el8ev |
| Red Hat:rhev_manager:4.4:el8 | ovirt-engine-websocket-proxy | 0 | 0:4.5.0.7-0.9.el8ev |
| Red Hat:rhev_manager:4.4:el8 | ovirt-web-ui | 0 | 0:1.8.1-2.el8ev |
| Red Hat:rhev_manager:4.4:el8 | python3-ovirt-engine-lib | 0 | 0:4.5.0.7-0.9.el8ev |
| Red Hat:rhev_manager:4.4:el8 | rhvm | 0 | 0:4.5.0.7-0.9.el8ev |
| SUSE:OpenStack Cloud 9 | ardana-barbican | 0 | 9.0+git.1644879908.8a641c1-3.13.1 |
| SUSE:OpenStack Cloud 9 | grafana | 0 | 6.7.4-3.26.1 |
| SUSE:OpenStack Cloud 9 | openstack-barbican | 0 | 7.0.1~dev24-3.14.1 |
| SUSE:OpenStack Cloud 9 | openstack-cinder | 0 | 13.0.10~dev24-3.34.2 |
| SUSE:OpenStack Cloud 9 | openstack-heat-gbp | 0 | 14.0.1~dev4-3.9.1 |
| SUSE:OpenStack Cloud 9 | openstack-horizon-plugin-gbp-ui | 0 | 14.0.1~dev3-3.9.1 |
| SUSE:OpenStack Cloud 9 | openstack-ironic | 0 | 11.1.5~dev18-3.28.2 |
| SUSE:OpenStack Cloud 9 | openstack-keystone | 0 | 14.2.1~dev9-3.28.2 |
| SUSE:OpenStack Cloud 9 | openstack-neutron | 0 | 13.0.8~dev206-3.40.1 |
| SUSE:OpenStack Cloud 9 | openstack-neutron-gbp | 0 | 14.0.1~dev33-3.31.1 |
| SUSE:OpenStack Cloud 9 | python-Pillow | 0 | 5.2.0-3.17.1 |
| SUSE:OpenStack Cloud 9 | python-XStatic-jquery-ui | 0 | 1.13.0.1-4.3.1 |
| SUSE:OpenStack Cloud 9 | python-lxml | 0 | 4.2.4-3.3.1 |
| SUSE:OpenStack Cloud 9 | release-notes-suse-openstack-cloud | 0 | 9.20220413-3.30.1 |
| SUSE:OpenStack Cloud 9 | venv-openstack-barbican | 0 | 7.0.1~dev24-3.35.2 |
| SUSE:OpenStack Cloud 9 | venv-openstack-cinder | 0 | 13.0.10~dev24-3.38.1 |
| SUSE:OpenStack Cloud 9 | venv-openstack-designate | 0 | 7.0.2~dev2-3.35.1 |
| SUSE:OpenStack Cloud 9 | venv-openstack-glance | 0 | 17.0.1~dev30-3.33.1 |
| SUSE:OpenStack Cloud 9 | venv-openstack-heat | 0 | 11.0.4~dev4-3.35.1 |
| SUSE:OpenStack Cloud 9 | venv-openstack-horizon | 0 | 14.1.1~dev11-4.39.1 |
| SUSE:OpenStack Cloud 9 | venv-openstack-ironic | 0 | 11.1.5~dev18-4.33.1 |
| SUSE:OpenStack Cloud 9 | venv-openstack-keystone | 0 | 14.2.1~dev9-3.36.1 |
| SUSE:OpenStack Cloud 9 | venv-openstack-magnum | 0 | 7.2.1~dev1-4.35.1 |
| SUSE:OpenStack Cloud 9 | venv-openstack-manila | 0 | 7.4.2~dev60-3.41.1 |
| SUSE:OpenStack Cloud 9 | venv-openstack-monasca | 0 | 2.7.1~dev10-3.37.1 |
| SUSE:OpenStack Cloud 9 | venv-openstack-monasca-ceilometer | 0 | 1.8.2~dev3-3.35.1 |
| SUSE:OpenStack Cloud 9 | venv-openstack-neutron | 0 | 13.0.8~dev206-6.39.1 |
| SUSE:OpenStack Cloud 9 | venv-openstack-nova | 0 | 18.3.1~dev91-3.39.1 |
| SUSE:OpenStack Cloud 9 | venv-openstack-octavia | 0 | 3.2.3~dev7-4.35.1 |
| SUSE:OpenStack Cloud 9 | venv-openstack-sahara | 0 | 9.0.2~dev15-3.35.1 |
| SUSE:OpenStack Cloud 9 | venv-openstack-swift | 0 | 2.19.2~dev48-2.30.1 |
| SUSE:OpenStack Cloud Crowbar 9 | grafana | 0 | 6.7.4-3.26.1 |
| SUSE:OpenStack Cloud Crowbar 9 | openstack-barbican | 0 | 7.0.1~dev24-3.14.1 |
| SUSE:OpenStack Cloud Crowbar 9 | openstack-cinder | 0 | 13.0.10~dev24-3.34.2 |
| SUSE:OpenStack Cloud Crowbar 9 | openstack-heat-gbp | 0 | 14.0.1~dev4-3.9.1 |
| SUSE:OpenStack Cloud Crowbar 9 | openstack-horizon-plugin-gbp-ui | 0 | 14.0.1~dev3-3.9.1 |
| SUSE:OpenStack Cloud Crowbar 9 | openstack-ironic | 0 | 11.1.5~dev18-3.28.2 |
| SUSE:OpenStack Cloud Crowbar 9 | openstack-keystone | 0 | 14.2.1~dev9-3.28.2 |
| SUSE:OpenStack Cloud Crowbar 9 | openstack-neutron | 0 | 13.0.8~dev206-3.40.1 |
| SUSE:OpenStack Cloud Crowbar 9 | openstack-neutron-gbp | 0 | 14.0.1~dev33-3.31.1 |
| SUSE:OpenStack Cloud Crowbar 9 | python-Pillow | 0 | 5.2.0-3.17.1 |
| SUSE:OpenStack Cloud Crowbar 9 | python-XStatic-jquery-ui | 0 | 1.13.0.1-4.3.1 |
| SUSE:OpenStack Cloud Crowbar 9 | python-lxml | 0 | 4.2.4-3.3.1 |
| SUSE:OpenStack Cloud Crowbar 9 | release-notes-suse-openstack-cloud | 0 | 9.20220413-3.30.1 |
| SUSE:OpenStack Cloud Crowbar 9 | rubygem-sinatra | 0 | 1.4.6-4.3.1 |
| Ubuntu:20.04:LTS | jqueryui | 0 | 1.12.1+dfsg-5ubuntu0.20.04.1 |
| Ubuntu:Pro:14.04:LTS | jqueryui | 0 | 1.10.1+dfsg-1ubuntu0.14.04.1~esm1 |
| Ubuntu:Pro:16.04:LTS | jqueryui | 0 | 1.10.1+dfsg-1ubuntu0.16.04.1~esm1 |
| Ubuntu:Pro:18.04:LTS | jqueryui | 0 | 1.12.1+dfsg-5ubuntu0.18.04.1~esm2 |
| Ubuntu:Pro:18.04:LTS | jqueryui | 0 | 1.12.1+dfsg-5ubuntu0.18.04.1~esm3 |
| Ubuntu:Pro:20.04:LTS | jqueryui | 0 | 1.12.1+dfsg-5ubuntu0.20.04.1 |
| Ubuntu:Pro:20.04:LTS | jqueryui | 0 | 1.12.1+dfsg-5ubuntu0.20.04.1~esm3 |
| Ubuntu:Pro:22.04:LTS | jqueryui | 0 | 1.13.1+dfsg-1ubuntu0.1~esm1 |
| packagist | drupal/drupal | 7.0 | No fix |
| packagist | drupal/drupal | 9.2.0 | No fix |
| packagist | drupal/drupal | 9.3.0 | No fix |
Related vulnerabilities
- CVE-2021-41182 jQuery-UI is the official jQuery user interface library. Also affects org.webjars.npm:jquery-ui
- CVE-2021-41183 jQuery-UI is the official jQuery user interface library. Also affects org.webjars.npm:jquery-ui
- CVE-2016-7103 Cross-site scripting (XSS) vulnerability in jQuery UI before 1.12.0 might allow remote… Also affects org.webjars.npm:jquery-ui
- CVE-2010-5312 Cross-site scripting (XSS) vulnerability in jquery.ui.dialog.js in the Dialog widget in… Also affects org.webjars.npm:jquery-ui
- GHSA-83v7-c2cf-p9c2 Drupal core allows Forceful Browsing Also affects drupal
- GHSA-h89p-5896-f4q8 Drupal core allows Content Spoofing Also affects drupal
- GHSA-mhpg-hpj5-73r2 Drupal core allows Exploiting Incorrectly Configured Access Control Security Levels Also affects drupal
- GHSA-m6vv-vcj8-w8m7 Drupal core allows Object Injection Also affects drupal