CVE-2025-63675: cryptidy allows code execution via untrusted data due to pickle.loads
6.9
Basic Information
Technical Details
| Package Name | Ecosystem | Vulnerable Versions | First Patched Version |
|---|---|---|---|
| cryptidy | pip | <= 1.2.4 |
Vulnerability Intelligence
Miggo AI
Root Cause Analysis
The vulnerability exists because the cryptidy library uses pickle.loads() to deserialize data that has been decrypted. This is a dangerous practice when the encrypted data can be controlled by an attacker, as it allows for arbitrary code execution. The core of the vulnerability lies in the aes_decrypt_message function within cryptidy/symmetric_encryption.py. This function is called by several other functions in the library, including decrypt_message in the same file, and rsa_decrypt_message and decrypt_message in cryptidy/asymmetric_encryption.py. Therefore, both symmetric and asymmetric decryption operations are vulnerable. The analysis of the provided code and commit history confirms the presence of the vulnerable pickle.loads() call and the call chains that lead to it. Since there is no patched version available, any usage of these decryption functions in cryptidy version 1.2.4 and below is insecure.
Vulnerable functions
aes_decrypt_messagecryptidy/symmetric_encryption.py
decrypt_messagecryptidy/symmetric_encryption.py
rsa_decrypt_messagecryptidy/asymmetric_encryption.py
decrypt_messagecryptidy/asymmetric_encryption.py