Headline
CVE-2023-25668: Fix asan issue with QuantizeAndDequantizeV2/V3/V4/V4Grad shape infere… · tensorflow/tensorflow@7b174a0
TensorFlow is an open source platform for machine learning. Attackers using Tensorflow prior to 2.12.0 or 2.11.1 can access heap memory which is not in the control of user, leading to a crash or remote code execution. The fix will be included in TensorFlow version 2.12.0 and will also cherrypick this commit on TensorFlow version 2.11.1.
@@ -1856,6 +1856,72 @@ def testOutOfBoundAxis(self):
max_range=input_max,
axis=2**31 - 1))
@test_util.run_v2_only
def testInvalidAxis(self):
@def_function.function
def test_quantize_and_dequantize_v2():
gen_array_ops.quantize_and_dequantize_v2(
input=[2.5],
input_min=[1.0],
input_max=[10.0],
signed_input=True,
num_bits=1,
range_given=True,
round_mode="HALF_TO_EVEN",
narrow_range=True,
axis=0x7fffffff)
@def_function.function
def test_quantize_and_dequantize_v3():
gen_array_ops.quantize_and_dequantize_v3(
input=[2.5],
input_min=[1.0],
input_max=[10.0],
num_bits=1,
signed_input=True,
range_given=True,
narrow_range=True,
axis=0x7fffffff)
@def_function.function
def test_quantize_and_dequantize_v4():
gen_array_ops.quantize_and_dequantize_v4(
input=[2.5],
input_min=[1.0],
input_max=[10.0],
signed_input=True,
num_bits=1,
range_given=True,
round_mode="HALF_TO_EVEN",
narrow_range=True,
axis=0x7fffffff)
@def_function.function
def test_quantize_and_dequantize_v4_grad():
gen_array_ops.quantize_and_dequantize_v4_grad(
gradients=[2.5],
input=[2.5],
input_min=[1.0],
input_max=[10.0],
axis=0x7fffffff)
with self.assertRaisesRegex(
ValueError, “Axis cannot be >= kint32max value, got 2147483647”):
test_quantize_and_dequantize_v2()
with self.assertRaisesRegex(
ValueError, “Axis cannot be >= kint32max value, got 2147483647”):
test_quantize_and_dequantize_v3()
with self.assertRaisesRegex(
ValueError, “Axis cannot be >= kint32max value, got 2147483647”):
test_quantize_and_dequantize_v4()
with self.assertRaisesRegex(
ValueError, “Axis cannot be >= kint32max value, got 2147483647”):
test_quantize_and_dequantize_v4_grad()
@test_util.run_all_in_graph_and_eager_modes
class SortedSearchTest(test_util.TensorFlowTestCase):
Related news
Vulnerability in the Oracle Hyperion Financial Reporting product of Oracle Hyperion (component: Repository). The supported version that is affected is 11.2.13.0.000. Easily exploitable vulnerability allows low privileged attacker with network access via HTTP to compromise Oracle Hyperion Financial Reporting. While the vulnerability is in Oracle Hyperion Financial Reporting, attacks may significantly impact additional products (scope change). Successful attacks of this vulnerability can result in unauthorized access to critical data or complete access to all Oracle Hyperion Financial Reporting accessible data and unauthorized ability to cause a partial denial of service (partial DOS) of Oracle Hyperion Financial Reporting. CVSS 3.1 Base Score 8.5 (Confidentiality and Availability impacts). CVSS Vector: (CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:L).
### Impact Attackers using Tensorflow can exploit the vulnerability. They can access heap memory which is not in the control of user, leading to a crash or RCE. When axis is larger than the dim of input, c->Dim(input,axis) goes out of bound. Same problem occurs in the QuantizeAndDequantizeV2/V3/V4/V4Grad operations too. ```python import tensorflow as tf @tf.function def test(): tf.raw_ops.QuantizeAndDequantizeV2(input=[2.5], input_min=[1.0], input_max=[10.0], signed_input=True, num_bits=1, range_given=True, round_mode='HALF_TO_EVEN', narrow_range=True, axis=0x7fffffff) test() ``` ### Patches We have patched the issue in GitHub commit [7b174a0f2e40ff3f3aa957aecddfd5aaae35eccb](https://github.com/tensorflow/tensorflow/commit/7b174a0f2e40ff3f3aa957aecddfd5aaae35eccb). The fix will be included in TensorFlow 2.12.0. We will also cherrypick this commit on TensorFlow...