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-10878

CVE-2020-10878: Perl Integer Overflow RCE Vulnerability

CVE-2020-10878 is an integer overflow vulnerability in Perl that enables remote code execution through crafted regular expressions. This article covers the technical details, affected versions, impact, and mitigation.

Published: March 4, 2026

CVE-2020-10878 Overview

CVE-2020-10878 is an integer overflow vulnerability in Perl versions before 5.30.3 that occurs during the handling of regular expression compilation. Specifically, the vulnerability is related to mishandling of a PL_regkind[OP(n)] == NOTHING situation in the regex compiler. A crafted regular expression can trigger integer overflow conditions that lead to malformed bytecode generation, potentially allowing instruction injection attacks.

Critical Impact

Attackers exploiting this vulnerability can inject malicious instructions through crafted regular expressions, potentially leading to arbitrary code execution, information disclosure, or denial of service on affected systems.

Affected Products

  • Perl versions before 5.30.3
  • Fedora 31
  • openSUSE Leap 15.1
  • NetApp OnCommand Workflow Automation
  • NetApp Snap Creator Framework
  • Oracle Communications Billing and Revenue Management (versions 12.0.0.2.0, 12.0.0.3.0)
  • Oracle Communications Diameter Signaling Router
  • Oracle Communications Eagle Application Processor
  • Oracle Communications Eagle LNP Application Processor (versions 10.1, 10.2, 46.7, 46.8, 46.9)
  • Oracle Communications LSMS
  • Oracle Communications Offline Mediation Controller (version 12.0.0.3.0)
  • Oracle Communications Performance Intelligence Center
  • Oracle Communications Pricing Design Center (version 12.0.0.3.0)
  • Oracle Configuration Manager (version 12.1.2.0.8)
  • Oracle Enterprise Manager Base Platform (version 13.4.0.0)
  • Oracle SD-WAN Aware (versions 8.2, 9.0, 9.1)
  • Oracle Tekelec Platform Distribution

Discovery Timeline

  • June 5, 2020 - CVE-2020-10878 published to NVD
  • November 21, 2024 - Last updated in NVD database

Technical Details for CVE-2020-10878

Vulnerability Analysis

This vulnerability is classified as CWE-190 (Integer Overflow or Wraparound). The flaw exists in Perl's regular expression compiler (regcomp.c) where large regex patterns can cause integer overflow conditions. When the compiled regex size exceeds U16_MAX, the system fails to properly handle branch jump calculations, leading to malformed bytecode generation.

The vulnerability is network-exploitable because Perl scripts are commonly used for web applications, CGI processing, and network service parsing where untrusted regex patterns may be processed. An attacker can craft a malicious regular expression that, when compiled, triggers the integer overflow and produces corrupted bytecode with injected instructions.

Root Cause

The root cause is the failure to use long jumps (BRANCHJ) when the compiled regular expression size has any possibility of exceeding U16_MAX. Without this safeguard, the regex compiler generates incorrect branch offsets when dealing with large patterns, specifically when PL_regkind[OP(n)] == NOTHING situations arise. This leads to integer overflow during offset calculations, corrupting the generated bytecode.

Attack Vector

This vulnerability can be exploited remotely over the network when Perl processes untrusted regular expression input. Attack scenarios include:

  1. Web applications accepting user-supplied regex patterns for search or validation
  2. CGI scripts processing regex from HTTP requests
  3. Email servers using Perl-based spam filters with regex matching
  4. Log analysis tools parsing untrusted data with regex patterns

The attacker constructs a specially crafted regular expression designed to trigger the integer overflow condition during compilation, causing instruction injection in the resulting bytecode.

c
// Security patch in regcomp.c - regcomp: use long jumps if there is any possibility of overflow

         /* We have that number in RExC_npar */
         RExC_total_parens = RExC_npar;
+
+        /* XXX For backporting, use long jumps if there is any possibility of
+         * overflow */
+        if (RExC_size > U16_MAX && ! RExC_use_BRANCHJ) {
+            RExC_use_BRANCHJ = TRUE;
+            flags |= RESTART_PARSE;
+        }
     }
     else if (! MUST_RESTART(flags)) {
 	ReREFCNT_dec(Rx);

Source: Perl Commit Log Entry 3295b48

c
// Security patch in embed.h - study_chunk: extract rck_elide_nothing

 #define parse_lparen_question_flags(a)	S_parse_lparen_question_flags(aTHX_ a)
 #define parse_uniprop_string(a,b,c,d,e,f,g,h,i)	Perl_parse_uniprop_string(aTHX_ a,b,c,d,e,f,g,h,i)
 #define populate_ANYOF_from_invlist(a,b)	S_populate_ANYOF_from_invlist(aTHX_ a,b)
+#define rck_elide_nothing(a)	S_rck_elide_nothing(aTHX_ a)
 #define reg(a,b,c,d)		S_reg(aTHX_ a,b,c,d)
 #define reg2Lanode(a,b,c,d)	S_reg2Lanode(aTHX_ a,b,c,d)
 #define reg_node(a,b)		S_reg_node(aTHX_ a,b)

Source: Perl Commit Log Entry 0a320d7

Detection Methods for CVE-2020-10878

Indicators of Compromise

  • Unusually large or complex regular expression patterns in application logs
  • Perl process crashes or unexpected termination during regex compilation
  • Memory corruption indicators in Perl application error logs
  • Anomalous bytecode execution patterns in Perl debugging output

Detection Strategies

  • Monitor for exceptionally long regex pattern inputs exceeding normal application boundaries
  • Implement application-level logging for regex compilation operations
  • Deploy runtime application self-protection (RASP) to detect integer overflow attempts
  • Use SentinelOne Singularity platform to monitor for suspicious Perl process behavior and memory anomalies

Monitoring Recommendations

  • Enable verbose logging in Perl applications processing user-supplied regex patterns
  • Configure alerting for Perl process crashes or segmentation faults
  • Monitor system calls from Perl interpreters for anomalous patterns
  • Track resource consumption metrics for Perl processes handling regex operations

How to Mitigate CVE-2020-10878

Immediate Actions Required

  • Upgrade Perl to version 5.30.3 or later immediately
  • Audit applications for user-supplied regex input processing
  • Implement input validation to restrict regex pattern size and complexity
  • Consider sandboxing Perl applications that process untrusted input

Patch Information

The vulnerability has been addressed in Perl version 5.30.3 and later. The fix introduces the rck_elide_nothing function and enforces the use of long jumps (BRANCHJ) when regex size has any possibility of overflowing U16_MAX. Security patches are available through official Perl repositories and distribution package managers.

Key patch commits:

  • Perl Commit 0a320d7 - Extract rck_elide_nothing function
  • Perl Commit 3295b48 - Use long jumps if there is any possibility of overflow

For additional vendor-specific patches, consult:

  • Oracle Security Alerts
  • NetApp Security Advisory NTAP-20200611-0001
  • Gentoo GLSA 202006-03

Workarounds

  • Implement strict input validation to limit regex pattern length and complexity before processing
  • Use application-level allowlists for acceptable regex patterns where possible
  • Deploy Web Application Firewalls (WAF) with rules to filter suspicious regex inputs
  • Consider using alternative regex libraries with better overflow protections for untrusted input
bash
# Configuration example - Check and upgrade Perl version
perl -v | grep version
# Upgrade to patched version via package manager
# Debian/Ubuntu:
sudo apt-get update && sudo apt-get install perl
# RHEL/CentOS:
sudo yum update perl
# Fedora:
sudo dnf update perl

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

  • Vulnerability Details
  • TypeRCE

  • Vendor/TechPerl

  • SeverityHIGH

  • CVSS Score8.6

  • EPSS Probability0.11%

  • Known ExploitedNo
  • CVSS Vector
  • CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:H
  • Impact Assessment
  • ConfidentialityLow
  • IntegrityNone
  • AvailabilityHigh
  • CWE References
  • CWE-190
  • Technical References
  • openSUSE Security Announcement

  • Perl 5.30.3 Delta Changes

  • Fedora Package Announcement

  • Gentoo GLSA 202006-03

  • NetApp Security Advisory NTAP-20200611-0001
  • Vendor Resources
  • Perl 5.30.2 to 5.30.3 Comparison

  • Perl Commit Log Entry 0a320d7

  • Perl Commit Log Entry 3295b48

  • Oracle July 2021 CPU Security Alerts

  • Oracle April 2021 CPU Security Alerts

  • Oracle April 2022 CPU Security Alerts

  • Oracle January 2021 CPU Security Alerts

  • Oracle January 2022 CPU Security Alerts

  • Oracle October 2020 CPU Security Alerts

  • Oracle October 2021 CPU Security Alerts
  • Related CVEs
  • CVE-2018-25160: HTTP::Session2 Perl RCE Vulnerability

  • CVE-2022-48522: Perl 5.34.0 RCE Vulnerability

  • CVE-2026-4176: Perl Compress::Raw::Zlib Vulnerability

  • CVE-2024-57854: Net::NSCA::Client Weak RNG 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