CVE-2020-24340

7.5 HIGH

📋 TL;DR

This vulnerability in picoTCP and picoTCP-NG allows attackers to cause denial-of-service through out-of-bounds memory reads and invalid pointer dereferences by sending specially crafted DNS packets. It affects systems using these embedded TCP/IP stacks through version 1.7.0. The vulnerability is triggered when processing mDNS responses without proper bounds checking.

💻 Affected Systems

Products:
  • picoTCP
  • picoTCP-NG
Versions: through 1.7.0
Operating Systems: Embedded systems using picoTCP stack
Default Config Vulnerable: ⚠️ Yes
Notes: Affects any device using vulnerable versions of picoTCP/picoTCP-NG with mDNS functionality enabled.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete system crash or device reboot due to invalid memory access, potentially leading to persistent denial-of-service for embedded devices.

🟠

Likely Case

Service disruption or device instability when malicious DNS packets are processed, requiring manual intervention to restore functionality.

🟢

If Mitigated

Minimal impact with proper network segmentation and packet filtering preventing malicious DNS traffic from reaching vulnerable systems.

🌐 Internet-Facing: MEDIUM
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Exploitation requires sending specially crafted DNS packets to vulnerable systems, which is straightforward for attackers with network access.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Versions after 1.7.0

Vendor Advisory: https://us-cert.cisa.gov/ics/advisories/icsa-20-343-01

Restart Required: Yes

Instructions:

1. Check current picoTCP/picoTCP-NG version. 2. Update to version after 1.7.0. 3. Recompile and redeploy affected firmware. 4. Restart affected devices.

🔧 Temporary Workarounds

Disable mDNS functionality

all

Disable multicast DNS functionality if not required for device operation

# Requires firmware modification to disable PICO_SUPPORT_MDNS

Network segmentation and filtering

linux

Block mDNS traffic (port 5353) from untrusted networks

iptables -A INPUT -p udp --dport 5353 -j DROP
iptables -A INPUT -p tcp --dport 5353 -j DROP

🧯 If You Can't Patch

  • Implement strict network segmentation to isolate vulnerable devices from untrusted networks
  • Deploy network intrusion prevention systems to detect and block malicious DNS packets

🔍 How to Verify

Check if Vulnerable:

Check firmware version and verify if picoTCP/picoTCP-NG version is 1.7.0 or earlier

Check Version:

# Check build configuration for PICO_VERSION or examine source code headers

Verify Fix Applied:

Verify updated to version after 1.7.0 and test mDNS functionality with valid packets

📡 Detection & Monitoring

Log Indicators:

  • System crashes
  • Unexpected reboots
  • Memory access violation errors

Network Indicators:

  • Unusual mDNS traffic patterns
  • Malformed DNS packets to port 5353

SIEM Query:

source_port=5353 AND (packet_size>512 OR dns_response_count>10)

🔗 References

📤 Share & Export