CVE-2022-42969 Overview
CVE-2022-42969 is a Regular expression Denial of Service (ReDoS) vulnerability affecting the py library through version 1.11.0 for Python. The vulnerability allows remote attackers to conduct a ReDoS attack via a Subversion repository with crafted info data, because the InfoSvnCommand argument is mishandled.
Important Note: This vulnerability has been disputed by multiple third parties as not being reproducible, and they argue this is not a valid vulnerability. Organizations should evaluate this CVE in the context of their specific usage of the py library.
Critical Impact
Potential denial of service through CPU exhaustion when processing maliciously crafted Subversion repository information, though reproducibility has been disputed.
Affected Products
- pytest py library through version 1.11.0
Discovery Timeline
- 2022-10-16 - CVE CVE-2022-42969 published to NVD
- 2025-05-14 - Last updated in NVD database
Technical Details for CVE-2022-42969
Vulnerability Analysis
This vulnerability falls under CWE-1333 (Inefficient Regular Expression Complexity), commonly known as a ReDoS (Regular expression Denial of Service) vulnerability. The issue exists within the Subversion URL path handling functionality of the py library.
When the py library processes information from a Subversion repository, the InfoSvnCommand argument handling involves regular expression operations that can exhibit catastrophic backtracking behavior when given specially crafted input. This could allow an attacker to cause excessive CPU consumption, leading to a denial of service condition.
The vulnerable code is located in the svnurl.py file within the py/_path/ directory, specifically in the SVN information processing logic. However, it should be noted that multiple security researchers and third parties have disputed whether this vulnerability is actually reproducible in practice.
Root Cause
The root cause of this vulnerability stems from the use of an inefficient regular expression pattern in the SVN URL processing code. When processing Subversion repository information, the regex pattern used can enter a state of catastrophic backtracking when supplied with maliciously crafted input strings.
Catastrophic backtracking occurs when a regex engine attempts to match a pattern against an input string and must explore an exponentially growing number of possible paths, consuming significant CPU resources in the process.
Attack Vector
The attack vector is network-based and does not require authentication. An attacker could exploit this vulnerability by:
- Creating or controlling a malicious Subversion repository
- Crafting the repository's info data with specially designed strings that trigger catastrophic regex backtracking
- Inducing a victim application using the py library to process this malicious repository information
This could be achieved if an application uses the py library to interact with untrusted or attacker-controlled Subversion repositories. The attack does not require user interaction and could potentially be triggered automatically depending on how the vulnerable library is used.
The vulnerability is documented in the GitHub Issue #287 and the relevant code can be examined in the GitHub Code Repository.
Detection Methods for CVE-2022-42969
Indicators of Compromise
- Unusual CPU spikes when processing Subversion repository operations
- Application hangs or timeouts during SVN-related operations
- Process resource exhaustion in applications using the py library
- Repeated slow responses from services that interact with Subversion repositories
Detection Strategies
- Monitor for abnormal CPU utilization patterns in Python processes using the py library
- Implement application performance monitoring (APM) to detect regex-related CPU exhaustion
- Use software composition analysis (SCA) tools to identify installations of py library version 1.11.0 or earlier
- Review application logs for timeout errors related to Subversion operations
Monitoring Recommendations
- Deploy runtime application monitoring to detect extended regex processing times
- Configure alerting thresholds for CPU usage anomalies in applications utilizing SVN functionality
- Implement dependency scanning in CI/CD pipelines to identify vulnerable py library versions
- Monitor network traffic patterns for unusual interactions with Subversion repositories
How to Mitigate CVE-2022-42969
Immediate Actions Required
- Audit your Python applications to determine if they use the py library for Subversion operations
- Evaluate whether your applications process untrusted Subversion repository data
- If the py library is only used as a transitive dependency and SVN functionality is not utilized, the risk may be minimal
- Consider implementing input validation and timeout controls for SVN operations
Patch Information
As of the last modification date, the py library maintainers have not released a specific patch addressing this vulnerability. The PyPI Package Listing should be monitored for any future updates. Given the disputed nature of this vulnerability, organizations should evaluate the actual risk based on their specific use case.
Additional context about the validity of this vulnerability can be found in the Hacker News Discussion.
Workarounds
- Implement timeout mechanisms for any regex operations involving external SVN data
- Avoid processing Subversion repository information from untrusted sources
- Consider using alternative libraries for SVN operations if available
- Apply network-level controls to restrict access to untrusted Subversion repositories
- Implement resource limits (CPU/memory) for processes that handle SVN data
# Example: Check if py library is installed and its version
pip show py
# If vulnerable, consider pinning or monitoring for updates
pip list | grep -i "^py "
# Review dependencies that may include py as a transitive dependency
pip show py | grep "Required-by"
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.


