CVE-2023-25666

7.5 HIGH

📋 TL;DR

This CVE describes a floating point exception vulnerability in TensorFlow's AudioSpectrogram function. Attackers can cause denial of service by triggering division by zero or invalid floating point operations. Users of TensorFlow versions before 2.12.0 and 2.11.1 are affected.

💻 Affected Systems

Products:
  • TensorFlow
Versions: All versions before 2.12.0 and 2.11.1
Operating Systems: All platforms running TensorFlow
Default Config Vulnerable: ⚠️ Yes
Notes: Only affects systems using TensorFlow's AudioSpectrogram functionality. The vulnerability is present in default configurations when this feature is used.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete service disruption through denial of service, potentially crashing TensorFlow processes and disrupting machine learning workflows.

🟠

Likely Case

Application crashes or hangs when processing malicious audio input through AudioSpectrogram, causing temporary service disruption.

🟢

If Mitigated

Minimal impact with proper input validation and error handling in place, though the vulnerable function remains exploitable.

🌐 Internet-Facing: MEDIUM - Exploitable if TensorFlow services process untrusted audio input from external sources, but requires specific input conditions.
🏢 Internal Only: LOW - Lower risk in controlled environments where audio input sources are trusted, though still present.

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: UNKNOWN
Unauthenticated Exploit: ⚠️ Yes
Complexity: LOW

Exploitation requires sending specially crafted audio input to trigger the floating point exception. No authentication needed if the service accepts external audio input.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: TensorFlow 2.12.0 or 2.11.1

Vendor Advisory: https://github.com/tensorflow/tensorflow/security/advisories/GHSA-f637-vh3r-vfh2

Restart Required: Yes

Instructions:

1. Update TensorFlow using pip: 'pip install --upgrade tensorflow==2.12.0' or 'pip install --upgrade tensorflow==2.11.1'. 2. Restart all TensorFlow services and applications. 3. Verify the update with 'pip show tensorflow'.

🔧 Temporary Workarounds

Disable AudioSpectrogram functionality

all

Remove or disable usage of AudioSpectrogram in your TensorFlow applications

# Modify application code to avoid AudioSpectrogram calls
# Replace with alternative audio processing methods

Input validation and sanitization

all

Implement strict validation of audio input before passing to AudioSpectrogram

# Add input validation checks in your application code
# Reject malformed or suspicious audio input

🧯 If You Can't Patch

  • Implement network segmentation to isolate TensorFlow services from untrusted networks
  • Deploy web application firewalls (WAF) to filter malicious audio input before it reaches TensorFlow

🔍 How to Verify

Check if Vulnerable:

Check TensorFlow version with 'pip show tensorflow' or 'python -c "import tensorflow as tf; print(tf.__version__)"'. If version is below 2.12.0 and not 2.11.1, you are vulnerable.

Check Version:

python -c "import tensorflow as tf; print('TensorFlow version:', tf.__version__)"

Verify Fix Applied:

After updating, verify version is 2.12.0 or 2.11.1 using the same commands. Test AudioSpectrogram functionality with various audio inputs.

📡 Detection & Monitoring

Log Indicators:

  • Floating point exception errors
  • Division by zero errors
  • TensorFlow process crashes
  • AudioSpectrogram function failures

Network Indicators:

  • Unusual audio file uploads to TensorFlow services
  • Repeated failed audio processing requests

SIEM Query:

source="tensorflow" AND ("floating point exception" OR "division by zero" OR "AudioSpectrogram" AND error)

🔗 References

📤 Share & Export