
CVE-2025-24793 SQL इंजेक्शन भेद्यता का प्रमाण-अवधारणा, Snowflake Connector for Python में, सुरक्षा परीक्षण के लिए पैच/अनपैच संस्करणों की स्वतः पहचान के साथ।
इस रिपॉजिटरी में Snowflake Connector for Python में CVE-2025-24793 भेद्यता के परीक्षण के लिए प्रूफ़ ऑफ़ कॉन्सेप्ट (PoC) कोड है। प्रोजेक्ट में पैच किए गए और बिना पैच वाले दोनों संस्करण शामिल हैं ताकि भेद्यता और उसके सुधार को प्रदर्शित किया जा सके।
├── Dockerfile # Docker configuration
├── requirements.txt # Python dependencies
├── config.toml # Snowflake connection configuration (you need to create this)
├── cve_2025_24793_poc.py # Main PoC script (auto-detects patched/unpatched)
├── snowflake_app.py # Main application
└── snowflake_connector_python-2.9.0-py3-none-any.whl # Snowflake connector wheel
बस अपने बिल्ड के साथ snowflake_connector_python-2.9.0-py3-none-any.whl को बदलें:
PoC स्क्रिप्ट स्वचालित रूप से पता लगाएगी कि आप किस संस्करण का उपयोग कर रहे हैं।
Snowflake खाता बनाएँ:
abc123.us-east-1)config.toml फ़ाइल बनाएँ:
अपने Snowflake क्रेडेंशियल्स के साथ रूट डायरेक्टरी में config.toml फ़ाइल बनाएँ:
[connections.my_example_connection]
account = "your_account_identifier" # e.g., "abc123.us-east-1"
user = "your_username" # Your Snowflake username
password = "your_password" # Your Snowflake password
role = "your_role" # e.g., "ACCOUNTADMIN" or "SYSADMIN"
warehouse = "your_warehouse" # e.g., "COMPUTE_WH"
database = "your_database" # e.g., "TESTDB"
schema = "your_schema" # e.g., "PUBLIC"
उदाहरण कॉन्फ़िगरेशन:
[connections.my_example_connection]
account = "abc123.us-east-1"
user = "testuser"
password = "MySecurePassword123!"
role = "ACCOUNTADMIN"
warehouse = "COMPUTE_WH"
database = "TESTDB"
schema = "PUBLIC"
Docker इमेज बनाएँ:
docker build -t <container_name> .
Docker कंटेनर चलाएँ:
docker run --rm <container_name>
किसी भी बिल्ड के साथ परीक्षण:
# 1. Replace wheel with your patched or unpatched version
# 2. Build and run - the script will auto-detect the version
docker build -t snowflake-test .
docker run --rm snowflake-test
PoC स्वचालित रूप से:
यह भेद्यता Snowflake Connector for Python को प्रभावित करती है और write_pandas फ़ंक्शन के माध्यम से SQL इंजेक्शन से संबंधित है।
PoC स्क्रिप्ट स्वचालित रूप से पता लगाती है और प्रदर्शित करती है:
स्क्रिप्ट यह निर्धारित करने के लिए write_pandas फ़ंक्शन का निरीक्षण करती है कि क्या भेद्य stage_location पैरामीटर मौजूद है, जो सुरक्षा स्थिति पर स्पष्ट प्रतिक्रिया प्रदान करता है।
⚠️ सुरक्षा चेतावनी: यह केवल शैक्षिक और परीक्षण उद्देश्यों के लिए एक प्रूफ़-ऑफ़-कॉन्सेप्ट है। उत्पादन वातावरण में उपयोग न करें।
⚠️ कॉन्फ़िगरेशन सुरक्षा: अपनी config.toml फ़ाइल को वास्तविक क्रेडेंशियल्स के साथ कभी भी संस्करण नियंत्रण में कमिट न करें। इसे .gitignore में जोड़ें।
⚠️ Snowflake लागत: ध्यान रखें कि ये परीक्षण चलाने से Snowflake कंप्यूट क्रेडिट खर्च हो सकते हैं।
config.toml में अपने Snowflake क्रेडेंशियल्स की पुष्टि करेंrequirements.txt में Python निर्भरताओं की पुष्टि करें