This is a hotfix for the PyArrow security vulnerability CVE-2023-47248.
We generally recommend upgrading to PyArrow 14.0.1 or later, but if you cannot upgrade, this package disables the vulnerability on older versions.
Use pip to install:
pip install pyarrow_hotfixNote
Both pyarrow-hotfix and pyarrow_hotfix are accepted and point to
the same package.
pyarrow_hotfix must be imported in your application or library code for
it to take effect:
import pyarrow_hotfixpyarrow_hotfix supports all Python versions starting from Python 3.5,
and all PyArrow versions starting from 0.14.0.
pyarrow_hotfix is a pure Python package that does not have any explicit
dependencies, and assumes you have installed pyarrow through other means
(such as pip or conda).
>>> import pyarrow as pa
>>> import pyarrow_hotfix
>>>
>>> pa.ipc.open_file('data.arrow')
Traceback (most recent call last):
[ ... ]
RuntimeError: forbidden deserialization of 'arrow.py_extension_type': storage_type = null, serialized = b"\x80\x03cbuiltins\neval\nq\x00X\x15\x00\x00\x00print('hello world!')q\x01\x85q\x02Rq\x03.", pickle disassembly:
0: \x80 PROTO 3
2: c GLOBAL 'builtins eval'
17: q BINPUT 0
19: X BINUNICODE "print('hello world!')"
45: q BINPUT 1
47: \x85 TUPLE1
48: q BINPUT 2
50: R REDUCE
51: q BINPUT 3
53: . STOP
highest protocol among opcodes = 2Like pyarrow, pyarrow_hotfix is distributed under the terms of the
Apache License, version 2.0.