CVE-2018-3907
📋 TL;DR
This vulnerability allows remote attackers to execute arbitrary code on Samsung SmartThings Hub devices by exploiting a flaw in the HTTP server's REST parser. Attackers can send specially crafted pipelined HTTP requests that overwrite previously parsed HTTP methods, potentially leading to complete system compromise. Only Samsung SmartThings Hub STH-ETH-250 devices with vulnerable firmware versions are affected.
💻 Affected Systems
- Samsung SmartThings Hub STH-ETH-250
📦 What is this software?
⚠️ Risk & Real-World Impact
Worst Case
Complete device takeover leading to persistent access, data theft, and potential lateral movement to other IoT devices on the network.
Likely Case
Remote code execution allowing attackers to install malware, create backdoors, or use the device as a pivot point for further attacks.
If Mitigated
Limited impact if device is isolated from internet and other critical systems, though local network attacks remain possible.
🎯 Exploit Status
Exploit details and proof-of-concept code are publicly available in the Talos Intelligence report. No authentication is required.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: Firmware versions after 0.20.17
Vendor Advisory: https://www.samsung.com/us/support/answer/ANS00078095/
Restart Required: Yes
Instructions:
1. Log into SmartThings mobile app 2. Navigate to Settings > Hub Information 3. Check for firmware updates 4. Apply available updates 5. Device will automatically restart
🔧 Temporary Workarounds
Network Isolation
linuxBlock inbound internet access to the SmartThings Hub while maintaining outbound connectivity for functionality
iptables -A INPUT -p tcp --dport 39500 -j DROP
iptables -A INPUT -p udp --dport 39500 -j DROP
Firewall Restriction
linuxRestrict access to port 39500 to only trusted management systems
iptables -A INPUT -p tcp --dport 39500 -s TRUSTED_IP -j ACCEPT
iptables -A INPUT -p tcp --dport 39500 -j DROP
🧯 If You Can't Patch
- Disconnect device from internet entirely and use only local network control
- Place device in isolated VLAN with no access to other critical systems
🔍 How to Verify
Check if Vulnerable:
Check firmware version in SmartThings app: Settings > Hub Information > Firmware version. If version is 0.20.17 or earlier, device is vulnerable.
Check Version:
curl -s http://[HUB_IP]:39500 | grep -i version
Verify Fix Applied:
Verify firmware version shows higher than 0.20.17 in SmartThings app. Test HTTP requests to port 39500 should no longer trigger the vulnerability.
📡 Detection & Monitoring
Log Indicators:
- Multiple HTTP requests to port 39500 in rapid succession
- Unusual process creation from video-core service
- Failed HTTP parsing errors in system logs
Network Indicators:
- Unusual traffic patterns to port 39500
- HTTP pipelining requests to the hub
- Outbound connections from hub to unknown destinations
SIEM Query:
source="smartthings_hub" AND (dest_port=39500 AND http_method_count>5) OR process="video-core" AND cmdline="*unusual*"