Repository navigation
Security: RCE Mitigation via HMAC-SHA256 Signatures, Hybrid JSON Refactor, and CLI Source Validation - #5333
Security: RCE Mitigation via HMAC-SHA256 Signatures, Hybrid JSON Refactor, and CLI Source Validation#5333JoshuaProvoste wants to merge 12 commits into
Conversation
|
Hi @JoshuaProvoste , Thank you for your contribution! We appreciate you taking the time to submit this pull request. |
|
Hi @rohityan! Thank you for the feedback. I have resolved the failing tests and CI checks in this latest update. Here is a summary of the fixes:
The security implementation for verified pickle deserialization is now fully validated by the test suite. Ready for another review! |
|
Hi @rohityan, I have resolved the merge conflicts in the GEPA samples ( |
|
the pickle rce is closed on main by a different design, _restricted_pickle refuses any global outside an allowlist derived from the EventActions model tree, so a hostile events.actions blob raises instead of executing. verified on 2.8.0, and the same payload still runs on 2.7.1. #5634 is closed and this branch conflicts with the rewritten schemas/v0.py. the one idea not carried over is the migration source-url check, and a small pr for just that would be welcome. |
Compliance with CONTRIBUTING.md:
Consistently with the project guidelines, this PR includes:
isortandpyinkacross all modified files.Description
This PR addresses critical security vulnerabilities in the
google-adkframework involving insecurepickledeserialization. The previous implementation allowed for Remote Code Execution (RCE) by loading unauthenticated binary blobs from session databases or remote migration sources.To remediate this, I have transitioned the framework to a "Secure by Default" architecture. All serialization operations are now protected by HMAC-SHA256 signatures. Furthermore, I have refactored the legacy schema architecture to prioritize JSON over binary formats, providing a safe and transparent migration path for verified data while strictly blocking malicious payloads.
Key Benefits:
picklefor new and migrated data.Technical Implementation Details
secure_dumpsandsecure_loadswith HMAC-SHA256 verification.JsonEncodedTypewith a Hybrid Resolver that supports JSON for new data and secure HMAC-verified pickles for legacy artifacts.StorageEventtable to use the newJsonEncodedType, eliminating the unauthenticatedPickleType._is_trusted_url) to detect and block remote IPs and Windows UNC paths.SecurityErrorto enforce safety boundaries during the migration process._row_to_eventfunction to usesecure_loads, sanitizing the primary deserialization sink in the migration loop.--force-untrusted-sourceflag to theadk migrate sessioncommand, establishing a manual security gate for untrusted network operations.Verification Performed
SecurityError(5/5 unit tests passed).isortandpyinkon all modified files to comply with Google Style standards.Checklist
picklesinks.