CHECK-fail in SparseCross due to type confusion
Package
Affected versions
< 2.1.4
      >= 2.2.0, < 2.2.3
      >= 2.3.0, < 2.3.3
      >= 2.4.0, < 2.4.2
  Patched versions
2.1.4
      2.2.3
      2.3.3
      2.4.2
  < 2.1.4
      >= 2.2.0, < 2.2.3
      >= 2.3.0, < 2.3.3
      >= 2.4.0, < 2.4.2
  2.1.4
      2.2.3
      2.3.3
      2.4.2
  < 2.1.4
      >= 2.2.0, < 2.2.3
      >= 2.3.0, < 2.3.3
      >= 2.4.0, < 2.4.2
  2.1.4
      2.2.3
      2.3.3
      2.4.2
  Description
        Published by the National Vulnerability Database
      May 14, 2021 
    
  
        Reviewed
      May 18, 2021 
    
  
        Published to the GitHub Advisory Database
      May 21, 2021 
    
  
        Last updated
      Oct 28, 2024 
    
  
Impact
The API of
tf.raw_ops.SparseCrossallows combinations which would result in aCHECK-failure and denial of service:The above code will result in a
CHECKfail intensor.cc:This is because the implementation is tricked to consider a tensor of type
tstringwhich in fact contains integral elements:Fixing the type confusion by preventing mixing
DT_STRINGandDT_INT64types solves this issue.Patches
We have patched the issue in GitHub commit b1cc5e5a50e7cee09f2c6eb48eb40ee9c4125025.
The fix will be included in TensorFlow 2.5.0. We will also cherrypick this commit on TensorFlow 2.4.2, TensorFlow 2.3.3, TensorFlow 2.2.3 and TensorFlow 2.1.4, as these are also affected and still in supported range.
For more information
Please consult our security guide for more information regarding the security model and how to contact us with issues and questions.
Attribution
This vulnerability has been reported by Yakun Zhang and Ying Wang of Baidu X-Team.
References