CVE-2025-4905
📋 TL;DR
This vulnerability allows local attackers to execute arbitrary code through unsafe deserialization in the load_qc_pickl function of basestation3's QC.py module. It affects users of iop-apl-uw basestation3 up to version 3.0.4 who process untrusted QC files. The attack requires local access to the system.
💻 Affected Systems
- iop-apl-uw basestation3
📦 What is this software?
Basestation by Washington
⚠️ Risk & Real-World Impact
Worst Case
Complete system compromise with arbitrary code execution as the user running basestation3, potentially leading to data theft, system manipulation, or lateral movement.
Likely Case
Local privilege escalation or execution of malicious code within the basestation3 application context, allowing data manipulation or further exploitation.
If Mitigated
Limited impact with proper access controls and input validation, potentially causing application crashes or denial of service.
🎯 Exploit Status
Exploit has been publicly disclosed in GitHub issues. Attack requires local access and ability to supply malicious QC files to the vulnerable function.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: Not available
Vendor Advisory: https://github.com/iop-apl-uw/basestation3/issues/6
Restart Required: No
Instructions:
No official patch available. Monitor the GitHub repository for updates. Consider applying community fixes or workarounds.
🔧 Temporary Workarounds
Input Validation and Sanitization
allImplement strict validation of QC file inputs before passing to load_qc_pickl function
# Modify QC.py to validate qc_file parameter
# Add checks for file integrity and expected format
# Consider implementing allowlist of safe file types
Restrict File Access
allLimit access to QC file processing functionality to trusted users only
# Implement access controls around QC file processing
# Use file permissions to restrict who can write/modify QC files
# Consider using read-only mounts for QC file directories
🧯 If You Can't Patch
- Isolate basestation3 instances from critical systems and implement strict network segmentation
- Implement application allowlisting to prevent execution of unauthorized code and monitor for suspicious process creation
🔍 How to Verify
Check if Vulnerable:
Check if basestation3 version is 3.0.4 or earlier and if QC.py contains the vulnerable load_qc_pickl function without proper input validation
Check Version:
Check basestation3 version in package metadata or run: python -c "import basestation3; print(basestation3.__version__)" if available
Verify Fix Applied:
Verify that QC.py has been modified to include safe deserialization practices or input validation for the load_qc_pickl function
📡 Detection & Monitoring
Log Indicators:
- Unexpected process execution from basestation3 context
- Errors or crashes in QC.py module
- Suspicious file access patterns to QC files
Network Indicators:
- Unusual outbound connections from basestation3 processes
- Lateral movement attempts from basestation3 host
SIEM Query:
Process Creation where Parent Process contains 'basestation3' AND Command Line contains suspicious patterns
🔗 References
- https://github.com/iop-apl-uw/basestation3/issues/6
- https://github.com/iop-apl-uw/basestation3/issues/6#event-17672013757
- https://github.com/iop-apl-uw/basestation3/issues/6#issue-3066055868
- https://vuldb.com/?ctiid.309461
- https://vuldb.com/?id.309461
- https://vuldb.com/?submit.578074
- https://github.com/iop-apl-uw/basestation3/issues/6
- https://github.com/iop-apl-uw/basestation3/issues/6#event-17672013757
- https://github.com/iop-apl-uw/basestation3/issues/6#issue-3066055868