Malicious code in vite-plugin-bug-tracker (npm)
--- _-= Per source details. Do not edit below this line.=-_ ## Source: amazon-inspector (127a50da55320d2b9e8e99e06d4cccf3d005cc997f3845bcae0738339cd5b882) The package presents itself as a Vite bug-tracker plugin. Its transformIndexHtml hook injects an inline script into every built HTML page produced by the developer's Vite build. At runtime in the end user's browser, that injected script reads personally identifiable information from sessionStorage (account/username, phone number, real name via fields such as i.phone and i.realName) and transmits it via fetch (mode: 'no-cors'), sendBeacon, or an Image request. The destination URL is not written in cleartext: it is assembled at runtime by base64-decoding a bundled string and XOR-ing each byte with 42 (atob(_c).split('').map(c => String.fromCharCode(c.charCodeAt(0) ^ 42)).join('')). The exfiltration query string is likewise XOR+base64 encoded before being appended. The plugin also monkey-patches sessionStorage.setItem so that any write matching the configured scope triggers immediate exfiltration. As a result, applications built with this plugin ship a PII harvester to their production users whose reporting endpoint cannot be identified by inspecting the built bundle or a browser network trace at a glance.
Malicious code in vite-plugin-bug-tracker (npm)
Description
--- _-= Per source details. Do not edit below this line.=-_ ## Source: amazon-inspector (127a50da55320d2b9e8e99e06d4cccf3d005cc997f3845bcae0738339cd5b882) The package presents itself as a Vite bug-tracker plugin. Its transformIndexHtml hook injects an inline script into every built HTML page produced by the developer's Vite build. At runtime in the end user's browser, that injected script reads personally identifiable information from sessionStorage (account/username, phone number, real name via fields such as i.phone and i.realName) and transmits it via fetch (mode: 'no-cors'), sendBeacon, or an Image request. The destination URL is not written in cleartext: it is assembled at runtime by base64-decoding a bundled string and XOR-ing each byte with 42 (atob(_c).split('').map(c => String.fromCharCode(c.charCodeAt(0) ^ 42)).join('')). The exfiltration query string is likewise XOR+base64 encoded before being appended. The plugin also monkey-patches sessionStorage.setItem so that any write matching the configured scope triggers immediate exfiltration. As a result, applications built with this plugin ship a PII harvester to their production users whose reporting endpoint cannot be identified by inspecting the built bundle or a browser network trace at a glance.
Affected software
Run on your own infrastructure? Check whether these packages are installed with threat-finder — our free open-source scanner.
Technical Details
- Gcve Source
- db.gcve.eu
- Osv Id
- MAL-2026-14479
- Osv Schema Version
- 1.7.4
- Aliases
- []
- Ecosystems
- ["npm"]
- Database Specific Severity
- null
- Cvss Version
- null
Threat ID: 6a8d9ae7acd9273b493e1749
Added to database: 08/25/2026, 13:38:47 UTC
Last updated: 08/25/2026, 14:52:57 UTC
Views: 3
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
External Links
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.