A Leader in the 2026 Gartner® Magic Quadrant™ for Endpoint Protection. Six years running.Six years. Gartner® Magic Quadrant™ Leader.Find Out Why
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
    • AI Data Pipelines
      Security Data Pipeline for AI SIEM and Data Optimization
    • 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-2025-13837

CVE-2025-13837: Python plistlib Module DoS Vulnerability

CVE-2025-13837 is a denial of service flaw in Python's plistlib module that allows malicious plist files to cause memory exhaustion and system crashes. This article covers the technical details, affected versions, and mitigation.

Updated: May 14, 2026

CVE-2025-13837 Overview

CVE-2025-13837 is a denial-of-service vulnerability in the CPython plistlib module. When parsing a Property List (plist) file, the module reads data using a size value declared inside the file itself. A malicious plist crafted with oversized length fields causes the parser to allocate arbitrary amounts of memory. The condition can lead to MemoryError exceptions, host swapping, out-of-memory (OOM) process or container termination, or system instability. The vulnerability is tracked under [CWE-400: Uncontrolled Resource Consumption] and affects Python applications that deserialize plist data from untrusted sources.

Critical Impact

A crafted plist file passed to plistlib.load() or plistlib.loads() can trigger unbounded memory allocation, resulting in process termination or denial of service on the host or container.

Affected Products

  • Python CPython 3.15.0 alpha1
  • Python CPython 3.15.0 alpha2
  • Python branches receiving the gh-119342 backport (3.10, 3.12, and main)

Discovery Timeline

  • 2025-12-01 - CVE-2025-13837 published to NVD
  • 2026-03-03 - Last updated in NVD database

Technical Details for CVE-2025-13837

Vulnerability Analysis

The plistlib module supports both XML and binary plist formats used primarily on Apple platforms. During parsing, the module trusts length and size fields embedded within the input file and uses them to pre-allocate buffers. There is no upper bound check against the actual file size or available memory before the allocation occurs. An attacker who can supply or influence a plist file processed by a Python application can declare an extremely large object length, forcing the interpreter to attempt allocation of gigabytes of memory.

The practical impact is process-level denial of service. In containerized environments with memory limits, the OOM killer terminates the affected workload. On unconstrained hosts, swapping and degraded performance affect co-located services. Because plist parsing is commonly used in macOS automation, iOS development tooling, and CI/CD pipelines, server-side processing of attacker-controlled plist files presents a realistic exposure path.

Root Cause

The root cause is the absence of incremental, chunked reads in the binary plist reader. The parser allocates a single buffer matching the size declared in the file header, with no sanity check against the file's actual length on disk. This pattern matches CWE-400 (Uncontrolled Resource Consumption).

Attack Vector

Exploitation requires local access to deliver a crafted plist file to a target Python process. Any tool or service that calls plistlib.load, plistlib.loads, or plistlib.readPlist on untrusted input is vulnerable. No authentication or user interaction is required beyond delivering the file to the parser.

python
# Patch excerpt from Lib/plistlib.py (CPython gh-119343)
PlistFormat = enum.Enum('PlistFormat', 'FMT_XML FMT_BINARY', module=__name__)
globals().update(PlistFormat.__members__)

# Data larger than this will be read in chunks, to prevent extreme
# overallocation.
_MIN_READ_BUF_SIZE = 1 << 20

class UID:
    def __init__(self, data):
        ...
# Source: https://github.com/python/cpython/commit/694922cf40aa3a28f898b5f5ee08b71b4922df70

The fix introduces a _MIN_READ_BUF_SIZE constant (1 MiB) so that large declared sizes are satisfied by chunked reads rather than a single large allocation.

Detection Methods for CVE-2025-13837

Indicators of Compromise

  • Python processes terminating with MemoryError tracebacks referencing plistlib functions in logs.
  • Linux OOM killer events (oom-kill in dmesg or journald) targeting Python interpreters processing plist input.
  • Sudden memory consumption spikes on services that ingest plist files from upload endpoints, mail attachments, or shared storage.

Detection Strategies

  • Inspect application logs for stack traces containing plistlib._BinaryPlistParser or plistlib.load followed by memory exceptions.
  • Audit codebases for calls to plistlib.load(), plistlib.loads(), and the deprecated plistlib.readPlist() operating on network or user-supplied data.
  • Flag plist files where the declared object table size is disproportionate to the on-disk file size during pre-processing.

Monitoring Recommendations

  • Establish memory utilization baselines for Python services that parse plist content and alert on anomalous growth.
  • Monitor container restart counts and OOMKilled status codes in Kubernetes (kubectl get pods with lastState.terminated.reason=OOMKilled).
  • Log file sizes and parser outcomes for any service exposed to externally sourced plist data.

How to Mitigate CVE-2025-13837

Immediate Actions Required

  • Upgrade to the patched CPython release for your branch once available; pull the fix from commits 694922cf, 5a8b1967, 71fa8eb8, or b64441e4.
  • Inventory all services that deserialize plist data and validate file sizes before passing input to plistlib.
  • Enforce memory limits (cgroups, container resources.limits.memory, ulimit -v) on processes that handle untrusted plist files.

Patch Information

The upstream fix is tracked as gh-119342 with pull request GH-119343. The patch adds a _MIN_READ_BUF_SIZE of 1 MiB to chunk large reads inside Lib/plistlib.py. See the Python Security Announcement for distribution details.

Workarounds

  • Reject plist inputs that exceed a maximum size threshold (for example, 10 MiB) before invoking the parser.
  • Run plist parsing in a sandboxed subprocess with strict memory limits so allocation failures do not affect the parent service.
  • Authenticate and validate the origin of plist files; treat any file from external users, email, or third-party APIs as untrusted.
bash
# Configuration example: cap memory for a plist-processing worker
systemd-run --scope -p MemoryMax=512M -p MemorySwapMax=0 \
    /usr/bin/python3 -m my_plist_worker /path/to/input.plist

# Kubernetes: enforce a memory limit on the parsing container
# resources:
#   limits:
#     memory: "512Mi"
#   requests:
#     memory: "128Mi"

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

  • Vulnerability Details
  • TypeDOS

  • Vendor/TechPython

  • SeverityLOW

  • CVSS Score2.1

  • EPSS Probability0.03%

  • Known ExploitedNo
  • CVSS Vector
  • CVSS:4.0/AV:L/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:L/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
  • Impact Assessment
  • ConfidentialityLow
  • IntegrityNone
  • AvailabilityLow
  • CWE References
  • CWE-400
  • Technical References
  • GitHub Commit Update

  • GitHub Commit Update
  • Vendor Resources
  • GitHub Commit Update

  • GitHub Commit Update

  • GitHub Commit Update

  • GitHub Commit Update

  • GitHub Issue Report

  • GitHub Pull Request

  • Python Security Announcement
  • Related CVEs
  • CVE-2025-5302: LlamaIndex JSONReader DoS Vulnerability

  • CVE-2025-13836: Python Python DOS Vulnerability

  • CVE-2025-12084: Python xml.dom.minidom DoS Vulnerability

  • CVE-2026-0994: Google Protobuf Python DoS Vulnerability
Default Legacy - Prefooter | Experience the World’s Most Advanced Cybersecurity Platform

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today 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