Vulnerability Details CVE-2026-27212
Swiper is a free and mobile touch slider with hardware accelerated transitions and native behavior. Versions 6.5.1 through 12.1.1 have a Prototype pollution vulnerability. The vulnerability resides in line 94 of shared/utils.mjs, where the indexOf() function is used to check whether user provided input contain forbidden strings. Despite a previous fix that attempted to mitigate prototype pollution by checking whether user input contained a forbidden key, it is still possible to pollute Object.prototype via a crafted input using Array.prototype. The exploit works across Windows and Linux and on Node and Bun runtimes. Any application that processes attacker-controlled input using this package may be affected by the following: Authentication Bypass, Denial of Service and RCE. This issue is fixed in version 12.1.2.
Exploit prediction scoring system (EPSS) score
EPSS Score 0.0
EPSS Ranking 9.1%
CVSS Severity
CVSS v3 Score 7.8
Products affected by CVE-2026-27212
-
cpe:2.3:a:swiperjs:swiper:10.0.0
-
cpe:2.3:a:swiperjs:swiper:10.0.1
-
cpe:2.3:a:swiperjs:swiper:10.0.2
-
cpe:2.3:a:swiperjs:swiper:10.0.3
-
cpe:2.3:a:swiperjs:swiper:10.0.4
-
cpe:2.3:a:swiperjs:swiper:10.1.0
-
cpe:2.3:a:swiperjs:swiper:10.2.0
-
cpe:2.3:a:swiperjs:swiper:10.3.0
-
cpe:2.3:a:swiperjs:swiper:10.3.1
-
cpe:2.3:a:swiperjs:swiper:11.0.0
-
cpe:2.3:a:swiperjs:swiper:11.0.1
-
cpe:2.3:a:swiperjs:swiper:11.0.2
-
cpe:2.3:a:swiperjs:swiper:11.0.3
-
cpe:2.3:a:swiperjs:swiper:11.0.4
-
cpe:2.3:a:swiperjs:swiper:11.0.5
-
cpe:2.3:a:swiperjs:swiper:11.0.6
-
cpe:2.3:a:swiperjs:swiper:11.0.7
-
cpe:2.3:a:swiperjs:swiper:11.1.0
-
cpe:2.3:a:swiperjs:swiper:11.1.1
-
cpe:2.3:a:swiperjs:swiper:11.1.10
-
cpe:2.3:a:swiperjs:swiper:11.1.11
-
cpe:2.3:a:swiperjs:swiper:11.1.12
-
cpe:2.3:a:swiperjs:swiper:11.1.14
-
cpe:2.3:a:swiperjs:swiper:11.1.15
-
cpe:2.3:a:swiperjs:swiper:11.1.2
-
cpe:2.3:a:swiperjs:swiper:11.1.3
-
cpe:2.3:a:swiperjs:swiper:11.1.4
-
cpe:2.3:a:swiperjs:swiper:11.1.5
-
cpe:2.3:a:swiperjs:swiper:11.1.6
-
cpe:2.3:a:swiperjs:swiper:11.1.7
-
cpe:2.3:a:swiperjs:swiper:11.1.8
-
cpe:2.3:a:swiperjs:swiper:11.1.9
-
cpe:2.3:a:swiperjs:swiper:11.2.0
-
cpe:2.3:a:swiperjs:swiper:11.2.1
-
cpe:2.3:a:swiperjs:swiper:11.2.10
-
cpe:2.3:a:swiperjs:swiper:11.2.2
-
cpe:2.3:a:swiperjs:swiper:11.2.3
-
cpe:2.3:a:swiperjs:swiper:11.2.4
-
cpe:2.3:a:swiperjs:swiper:11.2.5
-
cpe:2.3:a:swiperjs:swiper:11.2.6
-
cpe:2.3:a:swiperjs:swiper:11.2.7
-
cpe:2.3:a:swiperjs:swiper:11.2.8
-
cpe:2.3:a:swiperjs:swiper:11.2.9
-
cpe:2.3:a:swiperjs:swiper:12.0.0
-
cpe:2.3:a:swiperjs:swiper:12.0.1
-
cpe:2.3:a:swiperjs:swiper:12.0.2
-
cpe:2.3:a:swiperjs:swiper:12.0.3
-
cpe:2.3:a:swiperjs:swiper:12.1.0
-
cpe:2.3:a:swiperjs:swiper:12.1.1
-
cpe:2.3:a:swiperjs:swiper:6.5.1
-
cpe:2.3:a:swiperjs:swiper:6.5.2
-
cpe:2.3:a:swiperjs:swiper:6.5.3
-
cpe:2.3:a:swiperjs:swiper:6.5.4
-
cpe:2.3:a:swiperjs:swiper:6.5.5
-
cpe:2.3:a:swiperjs:swiper:6.5.6
-
cpe:2.3:a:swiperjs:swiper:6.5.7
-
cpe:2.3:a:swiperjs:swiper:6.5.8
-
cpe:2.3:a:swiperjs:swiper:6.5.9
-
cpe:2.3:a:swiperjs:swiper:6.6.0
-
cpe:2.3:a:swiperjs:swiper:6.6.1
-
cpe:2.3:a:swiperjs:swiper:6.6.2
-
cpe:2.3:a:swiperjs:swiper:6.7.0
-
cpe:2.3:a:swiperjs:swiper:6.7.1
-
cpe:2.3:a:swiperjs:swiper:6.7.5
-
cpe:2.3:a:swiperjs:swiper:6.8.0
-
cpe:2.3:a:swiperjs:swiper:6.8.1
-
cpe:2.3:a:swiperjs:swiper:6.8.2
-
cpe:2.3:a:swiperjs:swiper:6.8.3
-
cpe:2.3:a:swiperjs:swiper:6.8.4
-
cpe:2.3:a:swiperjs:swiper:7.0.0
-
cpe:2.3:a:swiperjs:swiper:7.0.1
-
cpe:2.3:a:swiperjs:swiper:7.0.2
-
cpe:2.3:a:swiperjs:swiper:7.0.3
-
cpe:2.3:a:swiperjs:swiper:7.0.4
-
cpe:2.3:a:swiperjs:swiper:7.0.5
-
cpe:2.3:a:swiperjs:swiper:7.0.6
-
cpe:2.3:a:swiperjs:swiper:7.0.7
-
cpe:2.3:a:swiperjs:swiper:7.0.8
-
cpe:2.3:a:swiperjs:swiper:7.0.9
-
cpe:2.3:a:swiperjs:swiper:7.1.0
-
cpe:2.3:a:swiperjs:swiper:7.2.0
-
cpe:2.3:a:swiperjs:swiper:7.3.0
-
cpe:2.3:a:swiperjs:swiper:7.3.1
-
cpe:2.3:a:swiperjs:swiper:7.3.2
-
cpe:2.3:a:swiperjs:swiper:7.3.3
-
cpe:2.3:a:swiperjs:swiper:7.3.4
-
cpe:2.3:a:swiperjs:swiper:7.4.0
-
cpe:2.3:a:swiperjs:swiper:7.4.1
-
cpe:2.3:a:swiperjs:swiper:8.0.0
-
cpe:2.3:a:swiperjs:swiper:8.0.1
-
cpe:2.3:a:swiperjs:swiper:8.0.2
-
cpe:2.3:a:swiperjs:swiper:8.0.3
-
cpe:2.3:a:swiperjs:swiper:8.0.4
-
cpe:2.3:a:swiperjs:swiper:8.0.5
-
cpe:2.3:a:swiperjs:swiper:8.0.6
-
cpe:2.3:a:swiperjs:swiper:8.0.7
-
cpe:2.3:a:swiperjs:swiper:8.1.0
-
cpe:2.3:a:swiperjs:swiper:8.1.1
-
cpe:2.3:a:swiperjs:swiper:8.1.2
-
cpe:2.3:a:swiperjs:swiper:8.1.3
-
cpe:2.3:a:swiperjs:swiper:8.1.4
-
cpe:2.3:a:swiperjs:swiper:8.1.5
-
cpe:2.3:a:swiperjs:swiper:8.1.6
-
cpe:2.3:a:swiperjs:swiper:8.2.0
-
cpe:2.3:a:swiperjs:swiper:8.2.1
-
cpe:2.3:a:swiperjs:swiper:8.2.2
-
cpe:2.3:a:swiperjs:swiper:8.2.3
-
cpe:2.3:a:swiperjs:swiper:8.2.4
-
cpe:2.3:a:swiperjs:swiper:8.2.5
-
cpe:2.3:a:swiperjs:swiper:8.2.6
-
cpe:2.3:a:swiperjs:swiper:8.3.0
-
cpe:2.3:a:swiperjs:swiper:8.3.1
-
cpe:2.3:a:swiperjs:swiper:8.3.2
-
cpe:2.3:a:swiperjs:swiper:8.4.0
-
cpe:2.3:a:swiperjs:swiper:8.4.1
-
cpe:2.3:a:swiperjs:swiper:8.4.2
-
cpe:2.3:a:swiperjs:swiper:8.4.3
-
cpe:2.3:a:swiperjs:swiper:8.4.4
-
cpe:2.3:a:swiperjs:swiper:8.4.5
-
cpe:2.3:a:swiperjs:swiper:8.4.6
-
cpe:2.3:a:swiperjs:swiper:8.4.7
-
cpe:2.3:a:swiperjs:swiper:9.0.0
-
cpe:2.3:a:swiperjs:swiper:9.0.1
-
cpe:2.3:a:swiperjs:swiper:9.0.2
-
cpe:2.3:a:swiperjs:swiper:9.0.3
-
cpe:2.3:a:swiperjs:swiper:9.0.4
-
cpe:2.3:a:swiperjs:swiper:9.0.5
-
cpe:2.3:a:swiperjs:swiper:9.1.0
-
cpe:2.3:a:swiperjs:swiper:9.1.1
-
cpe:2.3:a:swiperjs:swiper:9.2.0
-
cpe:2.3:a:swiperjs:swiper:9.2.1
-
cpe:2.3:a:swiperjs:swiper:9.2.2
-
cpe:2.3:a:swiperjs:swiper:9.2.3
-
cpe:2.3:a:swiperjs:swiper:9.2.4
-
cpe:2.3:a:swiperjs:swiper:9.3.0
-
cpe:2.3:a:swiperjs:swiper:9.3.1
-
cpe:2.3:a:swiperjs:swiper:9.3.2
-
cpe:2.3:a:swiperjs:swiper:9.4.0
-
cpe:2.3:a:swiperjs:swiper:9.4.1