CVE-2021-43086

9.8 CRITICAL

📋 TL;DR

CVE-2021-43086 is a critical buffer overflow vulnerability in ARM's astcenc 3.2.0 ASTC texture compression encoder. When using the compression function with the -cl option, attackers can trigger a stack buffer overflow in the encode_ise() function, potentially leading to arbitrary code execution. This affects any systems or applications using the vulnerable astc-encoder library for texture compression.

💻 Affected Systems

Products:
  • ARM astc-encoder
  • Applications using astc-encoder library
Versions: astcenc 3.2.0 specifically
Operating Systems: All platforms where astcenc is used (Linux, Windows, macOS)
Default Config Vulnerable: ⚠️ Yes
Notes: Only vulnerable when using the -cl command-line option for compression. The issue is in the library itself, so any application linking against it could be affected.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Remote code execution with the privileges of the process using astcenc, potentially leading to complete system compromise.

🟠

Likely Case

Application crash (denial of service) when processing maliciously crafted texture files.

🟢

If Mitigated

Limited impact if the vulnerable component runs in a sandboxed environment with minimal privileges.

🌐 Internet-Facing: MEDIUM - Exploitation requires processing attacker-controlled texture files, which could occur through file uploads or content delivery systems.
🏢 Internal Only: LOW - Typically used in development/build pipelines rather than production services.

🎯 Exploit Status

Public PoC: ⚠️ Yes
Weaponized: LIKELY
Unauthenticated Exploit: ⚠️ Yes
Complexity: LOW

Proof of concept demonstrates crash via crafted texture file. Full RCE exploitation would require additional work but is feasible given the buffer overflow nature.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: astcenc 3.3.0 and later

Vendor Advisory: https://github.com/ARM-software/astc-encoder/issues/296

Restart Required: Yes

Instructions:

1. Download astcenc 3.3.0 or later from GitHub. 2. Replace the vulnerable astcenc binary. 3. Rebuild any applications using the astc-encoder library. 4. Restart affected services.

🔧 Temporary Workarounds

Disable -cl compression option

all

Avoid using the -cl command-line option that triggers the vulnerable code path

Do not use '-cl' flag with astcenc

Input validation

all

Validate texture files before processing with astcenc

🧯 If You Can't Patch

  • Run astcenc in a sandboxed container with minimal privileges
  • Implement network segmentation to isolate systems using astcenc

🔍 How to Verify

Check if Vulnerable:

Check astcenc version: 'astcenc --version' should show 3.2.0. Also check if applications use astcenc with -cl option.

Check Version:

astcenc --version

Verify Fix Applied:

Verify astcenc version is 3.3.0 or later: 'astcenc --version'

📡 Detection & Monitoring

Log Indicators:

  • Application crashes when processing texture files
  • Segmentation faults in astcenc processes

Network Indicators:

  • Unusual file uploads to texture processing services

SIEM Query:

Process:astcenc AND (CommandLine:*cl* OR ExitCode:139 OR ExitCode:-1073741819)

🔗 References

📤 Share & Export