CVE-2021-32421

7.5 HIGH

📋 TL;DR

CVE-2021-32421 is a heap use-after-free vulnerability in dpic's deletestringbox() function that allows attackers to execute arbitrary code or cause denial of service. This affects users of dpic 2021.01.01 who process untrusted input files. The vulnerability occurs when memory is accessed after being freed, potentially leading to memory corruption.

💻 Affected Systems

Products:
  • dpic
Versions: 2021.01.01
Operating Systems: All platforms where dpic runs (Linux, macOS, Windows, etc.)
Default Config Vulnerable: ⚠️ Yes
Notes: All installations of dpic 2021.01.01 are vulnerable when processing diagram files that trigger the deletestringbox() function.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Remote code execution with the privileges of the dpic process, potentially leading to full system compromise if dpic runs with elevated privileges.

🟠

Likely Case

Application crash (denial of service) when processing malicious input files.

🟢

If Mitigated

Limited impact if dpic runs in a sandboxed environment with minimal privileges and processes only trusted input.

🌐 Internet-Facing: LOW - dpic is typically used as a command-line tool for processing diagram files, not as an internet-facing service.
🏢 Internal Only: MEDIUM - Risk exists when processing untrusted diagram files from internal or external sources.

🎯 Exploit Status

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

Exploitation requires crafting a malicious diagram file that triggers the use-after-free condition. No public exploit code has been identified.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Fixed in commit d317e4066c17f9ceb359b3af13264c32f6fb43cf and later versions

Vendor Advisory: https://gitlab.com/aplevich/dpic/-/issues/7

Restart Required: No

Instructions:

1. Update dpic to a version after commit d317e4066c17f9ceb359b3af13264c32f6fb43cf. 2. Recompile from source if using self-compiled version. 3. Replace existing dpic binary with patched version.

🔧 Temporary Workarounds

Input validation and sandboxing

linux

Run dpic in a sandboxed environment and only process trusted diagram files

# Example using bubblewrap on Linux: bwrap --ro-bind /usr /usr --ro-bind /lib /lib --ro-bind /lib64 /lib64 --bind $HOME $HOME --dev /dev --proc /proc --unshare-all --die-with-parent dpic input.pic

🧯 If You Can't Patch

  • Restrict dpic usage to trusted users only and implement strict input validation
  • Run dpic with minimal privileges (non-root user) and in isolated containers

🔍 How to Verify

Check if Vulnerable:

Check dpic version: dpic --version should show 2021.01.01. If compiled from source, check if commit d317e4066c17f9ceb359b3af13264c32f6fb43cf is included.

Check Version:

dpic --version

Verify Fix Applied:

Verify dpic version is newer than 2021.01.01 or includes commit d317e4066c17f9ceb359b3af13264c32f6fb43cf. Test with known safe diagram files.

📡 Detection & Monitoring

Log Indicators:

  • Segmentation fault or abnormal termination of dpic process
  • Memory access violation errors in system logs

Network Indicators:

  • N/A - dpic is typically used locally

SIEM Query:

process.name:"dpic" AND (event.action:"segmentation_fault" OR event.action:"memory_violation")

🔗 References

📤 Share & Export