Find, fix and prevent vulnerabilities in your code.
critical severity
- Vulnerable module: pyarrow
- Introduced through: pyarrow@12.0.1
Detailed paths
-
Introduced through: packing-box/python-dsff@packing-box/python-dsff#800df3c53a2944e47c624b8d57ecf07e25822189 › pyarrow@12.0.1Remediation: Upgrade to pyarrow@14.0.1.
Overview
pyarrow is a Python API for functionality provided by the Arrow C++ libraries, along with tools for Arrow integration and interoperability with pandas, NumPy, and other software in the Python ecosystem.
Affected versions of this package are vulnerable to Deserialization of Untrusted Data via the IPC and Parquet readers. An attacker can execute arbitrary code by supplying malicious files in IPC, Feather or Parquet formats.
Workaround
If upgrading is not possible, the package pyarrow-hotfix has been released that disables the vulnerability on older versions. This package should be included alongside the pyarrow dependency.
After adding the pyarrow-hotfix package to the project directory dependencies, users can ignore this issue given that the hotfix has been applied and the vulnerable code is no longer used.
Details
Serialization is a process of converting an object into a sequence of bytes which can be persisted to a disk or database or can be sent through streams. The reverse process of creating object from sequence of bytes is called deserialization. Serialization is commonly used for communication (sharing objects between multiple hosts) and persistence (store the object state in a file or a database). It is an integral part of popular protocols like Remote Method Invocation (RMI), Java Management Extension (JMX), Java Messaging System (JMS), Action Message Format (AMF), Java Server Faces (JSF) ViewState, etc.
Deserialization of untrusted data (CWE-502) is when the application deserializes untrusted data without sufficiently verifying that the resulting data will be valid, thus allowing the attacker to control the state or the flow of the execution.
Remediation
Upgrade pyarrow to version 14.0.1 or higher.
References
low severity
- Vulnerable module: numpy
- Introduced through: pyarrow@12.0.1
Detailed paths
-
Introduced through: packing-box/python-dsff@packing-box/python-dsff#800df3c53a2944e47c624b8d57ecf07e25822189 › pyarrow@12.0.1 › numpy@1.21.3Remediation: Upgrade to pyarrow@13.0.0.
Overview
numpy is a fundamental package needed for scientific computing with Python.
Affected versions of this package are vulnerable to Buffer Overflow due to missing boundary checks in the array_from_pyobj function of fortranobject.c. This may allow an attacker to conduct Denial of Service by carefully constructing an array with negative values.
Remediation
Upgrade numpy to version 1.22.0 or higher.
References
low severity
- Vulnerable module: numpy
- Introduced through: pyarrow@12.0.1
Detailed paths
-
Introduced through: packing-box/python-dsff@packing-box/python-dsff#800df3c53a2944e47c624b8d57ecf07e25822189 › pyarrow@12.0.1 › numpy@1.21.3Remediation: Upgrade to pyarrow@13.0.0.
Overview
numpy is a fundamental package needed for scientific computing with Python.
Affected versions of this package are vulnerable to Denial of Service (DoS) due to an incomplete string comparison in the numpy.core component, which may allow attackers to fail the APIs via constructing specific string objects.
Details
Denial of Service (DoS) describes a family of attacks, all aimed at making a system inaccessible to its intended and legitimate users.
Unlike other vulnerabilities, DoS attacks usually do not aim at breaching security. Rather, they are focused on making websites and services unavailable to genuine users resulting in downtime.
One popular Denial of Service vulnerability is DDoS (a Distributed Denial of Service), an attack that attempts to clog network pipes to the system by generating a large volume of traffic from many machines.
When it comes to open source libraries, DoS vulnerabilities allow attackers to trigger such a crash or crippling of the service by using a flaw either in the application code or from the use of open source libraries.
Two common types of DoS vulnerabilities:
High CPU/Memory Consumption- An attacker sending crafted requests that could cause the system to take a disproportionate amount of time to process. For example, commons-fileupload:commons-fileupload.
Crash - An attacker sending crafted requests that could cause the system to crash. For Example, npm
wspackage
Remediation
Upgrade numpy to version 1.22.0rc1 or higher.
References
low severity
- Vulnerable module: numpy
- Introduced through: pyarrow@12.0.1
Detailed paths
-
Introduced through: packing-box/python-dsff@packing-box/python-dsff#800df3c53a2944e47c624b8d57ecf07e25822189 › pyarrow@12.0.1 › numpy@1.21.3Remediation: Upgrade to pyarrow@13.0.0.
Overview
numpy is a fundamental package needed for scientific computing with Python.
Affected versions of this package are vulnerable to NULL Pointer Dereference due to missing return-value validation in the PyArray_DescrNew function, which may allow attackers to conduct Denial of Service attacks by repetitively creating and sort arrays.
Note: This may likely only happen if application memory is already exhausted, as it requires the newdescr object of the PyArray_DescrNew to evaluate to NULL.
Remediation
Upgrade numpy to version 1.22.2 or higher.