The SentinelOne Annual Threat Report - A Defenders Guide from the FrontlinesThe SentinelOne Annual Threat ReportGet the Report
Experiencing a Breach?Blog
Get StartedContact Us
SentinelOne
  • Platform
    Platform Overview
    • Singularity Platform
      Welcome to Integrated Enterprise Security
    • AI for Security
      Leading the Way in AI-Powered Security Solutions
    • Securing AI
      Accelerate AI Adoption with Secure AI Tools, Apps, and Agents.
    • How It Works
      The Singularity XDR Difference
    • Singularity Marketplace
      One-Click Integrations to Unlock the Power of XDR
    • Pricing & Packaging
      Comparisons and Guidance at a Glance
    Data & AI
    • Purple AI
      Accelerate SecOps with Generative AI
    • Singularity Hyperautomation
      Easily Automate Security Processes
    • AI-SIEM
      The AI SIEM for the Autonomous SOC
    • Singularity Data Lake
      AI-Powered, Unified Data Lake
    • Singularity Data Lake for Log Analytics
      Seamlessly Ingest Data from On-Prem, Cloud or Hybrid Environments
    Endpoint Security
    • Singularity Endpoint
      Autonomous Prevention, Detection, and Response
    • Singularity XDR
      Native & Open Protection, Detection, and Response
    • Singularity RemoteOps Forensics
      Orchestrate Forensics at Scale
    • Singularity Threat Intelligence
      Comprehensive Adversary Intelligence
    • Singularity Vulnerability Management
      Application & OS Vulnerability Management
    • Singularity Identity
      Identity Threat Detection and Response
    Cloud Security
    • Singularity Cloud Security
      Block Attacks with an AI-Powered CNAPP
    • Singularity Cloud Native Security
      Secure Cloud and Development Resources
    • Singularity Cloud Workload Security
      Real-Time Cloud Workload Protection Platform
    • Singularity Cloud Data Security
      AI-Powered Threat Detection for Cloud Storage
    • Singularity Cloud Security Posture Management
      Detect and Remediate Cloud Misconfigurations
    Securing AI
    • Prompt Security
      Secure AI Tools Across Your Enterprise
  • Why SentinelOne?
    Why SentinelOne?
    • Why SentinelOne?
      Cybersecurity Built for What’s Next
    • Our Customers
      Trusted by the World’s Leading Enterprises
    • Industry Recognition
      Tested and Proven by the Experts
    • About Us
      The Industry Leader in Autonomous Cybersecurity
    Compare SentinelOne
    • Arctic Wolf
    • Broadcom
    • CrowdStrike
    • Cybereason
    • Microsoft
    • Palo Alto Networks
    • Sophos
    • Splunk
    • Trellix
    • Trend Micro
    • Wiz
    Verticals
    • Energy
    • Federal Government
    • Finance
    • Healthcare
    • Higher Education
    • K-12 Education
    • Manufacturing
    • Retail
    • State and Local Government
  • Services
    Managed Services
    • Managed Services Overview
      Wayfinder Threat Detection & Response
    • Threat Hunting
      World-Class Expertise and Threat Intelligence
    • Managed Detection & Response
      24/7/365 Expert MDR Across Your Entire Environment
    • Incident Readiness & Response
      DFIR, Breach Readiness, & Compromise Assessments
    Support, Deployment, & Health
    • Technical Account Management
      Customer Success with Personalized Service
    • SentinelOne GO
      Guided Onboarding & Deployment Advisory
    • SentinelOne University
      Live and On-Demand Training
    • Services Overview
      Comprehensive Solutions for Seamless Security Operations
    • SentinelOne Community
      Community Login
  • Partners
    Our Network
    • MSSP Partners
      Succeed Faster with SentinelOne
    • Singularity Marketplace
      Extend the Power of S1 Technology
    • Cyber Risk Partners
      Enlist Pro Response and Advisory Teams
    • Technology Alliances
      Integrated, Enterprise-Scale Solutions
    • SentinelOne for AWS
      Hosted in AWS Regions Around the World
    • Channel Partners
      Deliver the Right Solutions, Together
    • SentinelOne for Google Cloud
      Unified, Autonomous Security Giving Defenders the Advantage at Global Scale
    • Partner Locator
      Your Go-to Source for Our Top Partners in Your Region
    Partner Portal→
  • Resources
    Resource Center
    • Case Studies
    • Data Sheets
    • eBooks
    • Reports
    • Videos
    • Webinars
    • Whitepapers
    • Events
    View All Resources→
    Blog
    • Feature Spotlight
    • For CISO/CIO
    • From the Front Lines
    • Identity
    • Cloud
    • macOS
    • SentinelOne Blog
    Blog→
    Tech Resources
    • SentinelLABS
    • Ransomware Anthology
    • Cybersecurity 101
  • About
    About SentinelOne
    • About SentinelOne
      The Industry Leader in Cybersecurity
    • Investor Relations
      Financial Information & Events
    • SentinelLABS
      Threat Research for the Modern Threat Hunter
    • Careers
      The Latest Job Opportunities
    • Press & News
      Company Announcements
    • Cybersecurity Blog
      The Latest Cybersecurity Threats, News, & More
    • FAQ
      Get Answers to Our Most Frequently Asked Questions
    • DataSet
      The Live Data Platform
    • S Foundation
      Securing a Safer Future for All
    • S Ventures
      Investing in the Next Generation of Security, Data and AI
  • Pricing
Get StartedContact Us
CVE Vulnerability Database
Vulnerability Database/CVE-2020-28458

CVE-2020-28458: Datatables.net Prototype Pollution Flaw

CVE-2020-28458 is a prototype pollution vulnerability in Datatables.net caused by an incomplete security patch. This flaw allows attackers to modify object prototypes. This article covers technical details, affected versions, impact, and mitigation strategies.

Published: March 4, 2026

CVE-2020-28458 Overview

CVE-2020-28458 is a Prototype Pollution vulnerability affecting all versions of the datatables.net package. This vulnerability exists due to an incomplete fix for a previously identified prototype pollution issue (SNYK-JS-DATATABLESNET-598806). The flaw allows attackers to inject properties into JavaScript object prototypes through specially crafted input, potentially leading to property injection, denial of service, or code execution in downstream applications.

Critical Impact

Attackers can pollute JavaScript object prototypes via the constructor property, bypassing the original fix that only blocked __proto__ traversal, enabling potential remote code execution or denial of service.

Affected Products

  • datatables.net (all versions prior to patch)
  • org.webjars.bower:datatables.net
  • org.webjars.npm:datatables.net

Discovery Timeline

  • 2020-12-16 - CVE-2020-28458 published to NVD
  • 2024-11-21 - Last updated in NVD database

Technical Details for CVE-2020-28458

Vulnerability Analysis

The vulnerability stems from an incomplete security fix for prototype pollution in the datatables.net library. The original patch addressed prototype pollution via the __proto__ property but failed to account for the constructor property, which provides an alternative pathway to modify object prototypes in JavaScript.

Prototype Pollution is a vulnerability class specific to JavaScript where an attacker can inject properties into existing JavaScript objects' prototype chain. When successful, this can lead to various attack scenarios including denial of service, property injection that modifies application behavior, or in certain contexts, remote code execution.

The datatables.net library processes user-controlled data properties that can traverse object structures. Without proper validation of property names like constructor, an attacker can reach and modify Object.prototype, affecting all objects in the JavaScript runtime.

Root Cause

The root cause is insufficient input validation in the data property traversal logic within core.data.js. The original fix blocked __proto__ as a dangerous property name but overlooked that constructor provides an equivalent attack vector. In JavaScript, obj.constructor.prototype points to the same object as obj.__proto__, allowing attackers to bypass the incomplete sanitization.

Attack Vector

This vulnerability can be exploited remotely over the network without authentication. An attacker would craft malicious input containing the constructor property in a data property path. When datatables.net processes this input, it traverses the object structure and allows modification of the prototype chain. The attack requires no user interaction and can be delivered through any application endpoint that passes user-controlled data to the vulnerable datatables.net functions.

javascript
// Security patch from js/core/core.data.js
// Source: https://github.com/DataTables/DataTablesSrc/commit/a51cbe99fd3d02aa5582f97d4af1615d11a1ea03

 			for ( var i=0, iLen=a.length-1 ; i<iLen ; i++ )
 			{
 				// Protect against prototype pollution
-				if (a[i] === '__proto__') {
+				if (a[i] === '__proto__' || a[i] === 'constructor') {
 					throw new Error('Cannot set prototype values');
 				}

Detection Methods for CVE-2020-28458

Indicators of Compromise

  • Unexpected modifications to Object.prototype or other built-in prototypes in JavaScript runtime
  • Application behavior anomalies caused by injected prototype properties
  • Error logs showing attempts to access constructor or __proto__ properties in data paths
  • Unusual input patterns containing nested property references with constructor in payloads

Detection Strategies

  • Implement Software Composition Analysis (SCA) scanning to identify vulnerable datatables.net versions in your codebase
  • Monitor application logs for errors related to prototype property access attempts
  • Use runtime application self-protection (RASP) tools to detect prototype pollution attempts
  • Audit npm dependencies with npm audit or similar tools to identify known vulnerable packages

Monitoring Recommendations

  • Enable verbose logging for datatables.net data processing operations
  • Configure Web Application Firewalls (WAF) to detect and block payloads containing constructor or __proto__ in JSON data
  • Implement client-side monitoring for unexpected prototype modifications using Object.freeze(Object.prototype)
  • Set up alerts for dependency vulnerability notifications from package registries

How to Mitigate CVE-2020-28458

Immediate Actions Required

  • Update datatables.net to the patched version that includes the fix from commit a51cbe99fd3d02aa5582f97d4af1615d11a1ea03
  • Audit all applications using datatables.net to identify vulnerable deployments
  • Implement input validation to reject data containing constructor or __proto__ properties
  • Review application code for other potential prototype pollution vectors

Patch Information

The vendor has released a security patch addressing this vulnerability. The fix adds constructor to the list of blocked property names alongside __proto__ during data property traversal. Apply the patch by updating to the latest datatables.net version. The specific commit addressing this issue is available on GitHub. Additional security advisories are available from NetApp and Snyk.

Workarounds

  • Freeze Object.prototype to prevent prototype pollution: Object.freeze(Object.prototype)
  • Implement server-side input validation to reject payloads containing dangerous property names
  • Use a Web Application Firewall with rules to detect and block prototype pollution attempts
  • Consider using Object.create(null) for objects processing untrusted data to avoid prototype chain issues
bash
# Update datatables.net to the latest patched version
npm update datatables.net

# Audit for vulnerable dependencies
npm audit

# Force update if needed
npm install datatables.net@latest

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

  • Vulnerability Details
  • TypeOther

  • Vendor/TechDatatables

  • SeverityHIGH

  • CVSS Score7.3

  • EPSS Probability0.72%

  • Known ExploitedNo
  • CVSS Vector
  • CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L
  • Impact Assessment
  • ConfidentialityLow
  • IntegrityNone
  • AvailabilityLow
  • CWE References
  • CWE-1321
  • Technical References
  • GitHub DataTables Source Code

  • NetApp Security Advisory

  • Snyk Vulnerability SNYK-JAVA-ORGWEBJARSBOWER-1051961

  • Snyk Vulnerability SNYK-JAVA-ORGWEBJARSNPM-1051962

  • Snyk Vulnerability SNYK-JS-DATATABLESNET-1016402

  • Snyk Vulnerability SNYK-JS-DATATABLESNET-598806
  • Vendor Resources
  • GitHub Commit Update
  • Latest CVEs
  • CVE-2025-70797: LimeSurvey XSS Vulnerability

  • CVE-2025-30650: Juniper Junos OS Auth Bypass Vulnerability

  • CVE-2026-35471: Goshs Path Traversal Vulnerability

  • CVE-2026-35393: Goshs Path Traversal Vulnerability
Default Legacy - Prefooter | Experience the World’s Most Advanced Cybersecurity Platform

Experience the World’s Most Advanced Cybersecurity Platform

See how our intelligent, autonomous cybersecurity platform can protect your organization now and into the future.

Try SentinelOne
  • Get Started
  • Get a Demo
  • Product Tour
  • Why SentinelOne
  • Pricing & Packaging
  • FAQ
  • Contact
  • Contact Us
  • Customer Support
  • SentinelOne Status
  • Language
  • Platform
  • Singularity Platform
  • Singularity Endpoint
  • Singularity Cloud
  • Singularity AI-SIEM
  • Singularity Identity
  • Singularity Marketplace
  • Purple AI
  • Services
  • Wayfinder TDR
  • SentinelOne GO
  • Technical Account Management
  • Support Services
  • Verticals
  • Energy
  • Federal Government
  • Finance
  • Healthcare
  • Higher Education
  • K-12 Education
  • Manufacturing
  • Retail
  • State and Local Government
  • Cybersecurity for SMB
  • Resources
  • Blog
  • Labs
  • Case Studies
  • Videos
  • Product Tours
  • Events
  • Cybersecurity 101
  • eBooks
  • Webinars
  • Whitepapers
  • Press
  • News
  • Ransomware Anthology
  • Company
  • About Us
  • Our Customers
  • Careers
  • Partners
  • Legal & Compliance
  • Security & Compliance
  • Investor Relations
  • S Foundation
  • S Ventures

©2026 SentinelOne, All Rights Reserved.

Privacy Notice Terms of Use

English