The JavaScript ecosystem faced critical vulnerabilities in 2025-2026, from the React2Shell RCE to the Shai-Hulud npm attack. Learn about major CVEs, OWASP Top 10 2025, and why ongoing security maintenance isn't optional.
The Reality of JavaScript Security
If you're running a JavaScript application—React, Next.js, Node.js, or any modern web stack—you're operating in one of the most targeted ecosystems in software. The npm registry alone sees over 2 billion package downloads per week, making it a prime target for attackers.
2025 was a wake-up call. From maximum-severity remote code execution vulnerabilities in React Server Components to the largest supply chain attack in npm history, the message is clear: security isn't a one-time checkbox—it's an ongoing process.
This post covers the critical vulnerabilities that defined 2025-2026, the updated OWASP Top 10, and what developers and businesses must do to protect their applications.
JavaScript CVE Growth Trend
The trend is clear: JavaScript vulnerabilities are accelerating. 2025 saw a 40% increase in critical CVEs compared to 2024.
2025 Security Incident Timeline
Critical CVEs That Shook the JavaScript Ecosystem
CVE-2025-55182: React2Shell (Maximum Severity)
Severity: Critical (10.0 CVSS)
Affected: React Server Components, Next.js applications using RSC
Impact: Unauthenticated Remote Code Execution
In December 2025, security researcher Lachlan Davidson disclosed CVE-2025-55182, a maximum-severity vulnerability in React Server Components that allows attackers to achieve unauthenticated remote code execution on the server.
How it works:
Resolution:
- Upgrade React and Next.js to patched versions immediately
- Review server logs for suspicious RSC payloads
- Implement WAF rules to filter malformed RSC requests
Source: Help Net Security - React, Node.js vulnerability patched
CVE-2025-64756: The Glob Package Crisis
Severity: High
Affected: glob npm package (used by virtually every Node.js project)
Impact: Widespread SAST failures, deployment blocks
On November 17, 2025, CVE-2025-64756 started affecting Node.js images broadly. The glob package is a transitive dependency in almost every Node.js project, meaning you probably have it even if you never installed it directly.
The chaos:
- SAST tools immediately flagged vulnerable glob versions
- CI/CD pipelines blocked deployments across thousands of projects
- Teams scrambled to update dependencies they didn't know they had
Resolution:
1npm audit2npm update glob3npm audit fix --force # Use with cautionNode.js Security Releases (2025)
The Node.js project released multiple security updates throughout 2025:
| Release | Date | Vulnerabilities Fixed |
|---|---|---|
| January 2025 | Jan 21 | HTTP/2 memory leak, GOAWAY handling |
| May 2025 | May 14 | HTTP request smuggling, Windows memory leak |
| July 2025 | Jul 15 | Path traversal (Windows), HashDoS reintroduction |
| December 2025 | Dec 15 | 3 high severity, 1 medium, 1 low |
Source: Node.js Vulnerability Announcements
Key vulnerabilities:
- CVE-2025-23084: Windows device name path traversal bypass
- CVE-2025-23165: Memory leak in ReadFileUtf8 (Windows)
- HTTP Request Smuggling: Parser allowing improper header termination
Resolution:
1# Check your Node.js version2node --version34# Update to latest LTS5nvm install 22 # or download from nodejs.org| Current LTS | Status | Recommended |
|---|---|---|
| Node.js 22.x | Active LTS | Yes |
| Node.js 20.x | Maintenance LTS | Yes |
| Node.js 18.x | End of Life April 2025 | Upgrade now |
The Shai-Hulud Attack: npm's Worst Day
What Happened
On September 8, 2025, the JavaScript ecosystem experienced one of the most significant supply chain attacks in its history. A self-replicating worm dubbed "Shai-Hulud" compromised over 500 npm packages, including widely-used libraries like debug, chalk, and ansi-styles.
The numbers:
- 18 initial packages compromised
- 2.6+ billion weekly downloads affected
- Malicious versions live for ~2 hours
- 500+ packages ultimately infected via worm propagation
The Attack Chain
The Payload
The malicious code served two purposes:
- Crypto-stealer: Executed in browsers to drain cryptocurrency wallets
- Credential harvester: Targeted GitHub PATs and cloud provider API keys
Self-Propagation
What made Shai-Hulud unprecedented was its self-replicating nature:
Sources:
Required Actions
- Rotate all developer credentials (npm, GitHub, cloud providers)
- Enable phishing-resistant MFA on all accounts
- Audit
package-lock.jsonfor affected package versions - Review CI/CD pipeline for compromised dependencies
- Implement Trusted Publishing for your packages
Prototype Pollution: The Hidden Killer
Prototype pollution remains one of the most insidious JavaScript vulnerabilities, and 2025 saw continued exploitation.
How It Works
JavaScript allows modification of object prototypes. Attackers exploit this to inject malicious properties:
1// Vulnerable code2function merge(target, source) {3 for (let key in source) {4 target[key] = source[key];5 }6 return target;7}89// Malicious payload10const payload = JSON.parse('{"__proto__": {"isAdmin": true}}');11merge({}, payload);1213// Now ALL objects have isAdmin: true14console.log({}.isAdmin); // true - privilege escalation!Notable 2025 Prototype Pollution CVEs
| CVE | Package | Impact |
|---|---|---|
| CVE-2025-57820 | devalue | Parse function pollution |
| CVE-2025-64718 | js-yaml | YAML parsing exploitation |
| SNYK-JS-LODASH-6139239 | lodash | zipObjectDeep vulnerability |
Lodash, with 25+ million weekly downloads, has been a repeated target. The zipObjectDeep vulnerability in older versions allows prototype pollution through improper input sanitisation.
Resolution:
1# Check for vulnerable lodash versions2npm ls lodash34# Update to secure version5npm update lodash@^4.17.21Sources:
OWASP Top 10 2025: What Changed
The OWASP Top 10 2025 was released on November 6, 2025, with significant changes reflecting the evolving threat landscape.
The 2025 List
| Rank | Category | Change from 2021 |
|---|---|---|
| A01 | Broken Access Control | — (Still #1) |
| A02 | Security Misconfiguration | ↑ from #5 |
| A03 | Software Supply Chain Failures | NEW |
| A04 | Cryptographic Failures | ↓ from #2 |
| A05 | Injection | ↓ from #3 |
| A06 | Insecure Design | ↓ from #4 |
| A07 | Authentication Failures | — |
| A08 | Software and Data Integrity Failures | — |
| A09 | Security Logging and Alerting Failures | — |
| A10 | Mishandling of Exceptional Conditions | NEW |
Key Changes
A03: Software Supply Chain Failures (NEW)
This new category directly addresses attacks like Shai-Hulud. It expands on 2021's "Vulnerable and Outdated Components" to include:
- Dependency management
- Build system security
- Distribution infrastructure
- Package integrity verification
A02: Security Misconfiguration (UP from #5)
The rise reflects growing configuration complexity in modern applications. Default credentials, unnecessary features enabled, and improper cloud configurations remain rampant.
A10: Mishandling of Exceptional Conditions (NEW)
Covers improper error handling, logical errors, failing open, and other scenarios stemming from abnormal conditions.
Source: OWASP Top 10:2025 Official
Vulnerability Distribution by Category
Why Ongoing Security Maintenance Is Non-Negotiable
The Zero-Day Reality
A zero-day vulnerability is a security flaw that:
- Is unknown to the software vendor
- Has no available patch
- May already be exploited in the wild
The timeline problem:
- Average time from vulnerability discovery to patch: 30-60 days
- Average time from patch release to enterprise deployment: 60-90 days
- Attacker exploitation window: 24-48 hours after public disclosure
The Cost of Neglect
| Scenario | Average Cost (AUD) |
|---|---|
| Website defacement | $15,000 - $50,000 |
| Data breach (SMB) | $50,000 - $200,000 |
| Ransomware attack | $100,000 - $500,000+ |
| Regulatory fine (Privacy Act) | $50,000 - $500,000+ |
| Reputational damage | Incalculable |
What "Maintained" Actually Means
Your Security Checklist
Immediate Actions
- Run
npm auditon all projects - Update Node.js to current LTS (22.x or 20.x)
- Review React/Next.js versions for CVE-2025-55182
- Enable 2FA on npm and GitHub (phishing-resistant preferred)
- Review
package-lock.jsonfor Shai-Hulud affected packages
Ongoing Security Process
- Weekly dependency audits (
npm audit, Snyk, Dependabot) - Subscribe to security mailing lists (Node.js, npm, framework-specific)
- Implement lockfile integrity verification in CI/CD
- Use
npm ciinstead ofnpm installin production builds - Pin dependencies or use strict semver ranges
- Regular penetration testing (at least annually)
Tools We Recommend
| Tool | Purpose | Cost |
|---|---|---|
| npm audit | Built-in dependency scanning | Free |
| Snyk | Comprehensive vulnerability scanning | Free tier available |
| Dependabot | Automated dependency updates | Free for GitHub |
| Socket.dev | Supply chain attack detection | Free tier available |
| OWASP ZAP | Penetration testing | Free |
How Buun Group Approaches Security
We don't treat security as an afterthought—it's built into every project we deliver.
Our Security Process
What We Do for Every Client
During Development:
- Strict dependency vetting (no unnecessary packages)
- Automated
npm auditin CI pipeline - OWASP-aligned security code review
- Secure authentication patterns (no JWT in localStorage)
At Deployment:
- Lockfile integrity verification
- Security headers (CSP, HSTS, X-Frame-Options)
- Environment-based secrets management
- HTTPS everywhere (no exceptions)
Ongoing Maintenance:
- Weekly dependency vulnerability monitoring
- Rapid response to critical CVEs (same-day assessment)
- Monthly security status reports
- Documented incident response procedures
Security Maintenance Packages
| Package | What's Included | Investment |
|---|---|---|
| Essential | Weekly audits, critical patches, monthly report | $200/month |
| Professional | + Penetration testing, priority response | $500/month |
| Enterprise | + Dedicated security review, compliance support | Custom |
The Bottom Line
The JavaScript ecosystem powers the modern web, but with that power comes constant security responsibility. The vulnerabilities of 2025—CVE-2025-55182, Shai-Hulud, the glob crisis—weren't edge cases. They affected millions of applications, including probably some of yours.
Security isn't a feature you add once. It's an ongoing process that requires:
- Vigilance: Monitoring for new vulnerabilities
- Speed: Rapid response to disclosures
- Process: Systematic approach to updates and patches
- Expertise: Understanding what matters and what doesn't
If you're running a business-critical application, the question isn't whether you can afford ongoing security maintenance—it's whether you can afford not to.
Further Reading:
- OWASP Top 10:2025
- Node.js Security Best Practices
- npm Security Best Practices
- CISA - npm Supply Chain Alert
Concerned about your application's security?
Topics
Comments
Sign in to join the conversation
LoginNo comments yet. Be the first to share your thoughts!
Found an issue with this article?
