CVE-2026-3884

Cross‑Site Scripting Vulnerability in spin.js via Prototype Pollution and Duplicate Alert Creation

Published Mar 11, 2026 CVSS 4.0 · 5.1 Medium EPSS < 1% KEV · Not listed
Description
Versions of the package spin.js before 3.0.0 are vulnerable to Cross-site Scripting (XSS) via the spin() function that allows a creation of more than 1 alert for each 'target' element. An attacker would need to set an arbitrary key-value pair on Object.prototype through a crafted URL achieving a prototype pollution first, before being able to execute arbitrary JavaScript in the context of the user's browser.

Analysis

AI-generated

Technical impact

This vulnerability allows the creation of multiple alert() calls per target element when using spin() in spin.js. An attacker can inject arbitrary JavaScript into the user's browser context. The weakness is a classic Cross‑Site Scripting flaw (CWE‑79). To trigger the flaw, the attacker must first manipulate Object.prototype by setting an arbitrary key‑value pair, a form of prototype pollution, through a crafted URL. Once prototype pollution is achieved, the spin() function’s misuse permits execution of malicious scripts.

Affected Systems

Any project that includes the outdated spin.js package, specifically all releases prior to 3.0.0. No precise version list is supplied by the CNA data, but all versions before 3.0.0 are affected according to the description.

Risk and Exploitability

The CVSS score of 5.1 indicates a moderate severity. EPSS is less than 1 %, suggesting that exploitation likelihood is low, and the vulnerability has not been cataloged as a known exploited vulnerability (not in KEV). The exploitation route requires both prototype pollution and the use of spin(), meaning an attacker must craft a URL to manipulate Object.prototype before triggering the XSS. Given these prerequisites, the risk to a typical deployment is moderate but not negligible. Monitoring for related exploit activity and ensuring mitigation is recommended.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade spin.js to version 3.0.0 or later

Generated by OpenCVE AI on March 17, 2026 at 16:38 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories available
History
Type Values Removed Values Added
First Time appeared Spin.js
Spin.js spin.js
CPEs cpe:2.3:a:spin.js:spin.js:*:*:*:*:*:node.js:*:*
Vendors & Products Spin.js
Spin.js spin.js
Type Values Removed Values Added
Title Cross‑Site Scripting Vulnerability in spin.js via Prototype Pollution and Duplicate Alert Creation
Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}

Type Values Removed Values Added
First Time appeared Fgnass
Fgnass spin.js
Vendors & Products Fgnass
Fgnass spin.js
Type Values Removed Values Added
Description Versions of the package spin.js before 3.0.0 are vulnerable to Cross-site Scripting (XSS) via the spin() function that allows a creation of more than 1 alert for each 'target' element. An attacker would need to set an arbitrary key-value pair on Object.prototype through a crafted URL achieving a prototype pollution first, before being able to execute arbitrary JavaScript in the context of the user's browser.
Weaknesses CWE-79
References
Metrics cvssV3_1

{'score': 6.1, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N/E:P'}

cvssV4_0

{'score': 5.1, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:A/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N/E:P'}

Weaknesses
  • CWE-79

    Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')

Sources

Status
PUBLISHED
Assigner
snyk
Published
Updated
Mar 11, 2026, 3:45 PM
Reserved
Mar 10, 2026, 3:23 PM
Status
Analyzed
Published
Mar 11, 2026, 6:17 AM
Modified
Jun 17, 2026, 10:44 AM