آسیب پذیری در python-flask-restful-api

آسیب پذیری در python-flask-restful-api آسیب‌پذیری CVE-2022-31571 در python-flask-restful-api مخزن akashtalole/python-flask-restful-api در GitHub تا 2019-09-16 یک آسیب‌پذیری بحرانی (9.3 از 10) دارد.

این آسیب‌پذیری در تابع send_file کتابخانه flask می‌باشد. چنانچه فراخوانی این تابع در ماژول /app/api/exports.py با ورودی نامناسب (دنباله‌ای از "dot-dot-slash (../)" یا مسیرهای کامل فایل‌ها[1]) انجام شود، می‌تواند باعث حمله پیمایش مسیر[2] شده و دسترسی به فایل‌ها و دایرکتورهای اختیاری را که خارج از پوشه ریشه وب قرار دارند، میسر ‌سازد.

ریشه این مساله در قطعه کد زیر نشان داده شده است؛ فراخوانی os.path.join برای استفاده با ورودی نامطمئن، امن نیست. هنگامی که os.path.join  با استفاده از یک "مسیر کامل" فراخوانی می‌شود، تمام پارامترهای قبلی را نادیده گرفته و شروع به کار با مسیر کامل جدید می‌کند.

قطعه کد 1- فراخوانی os.path.join با ورودی نامناسب

 

مشخصات آسیب‌پذیری CVE-2022-31571 [1]

ردیف

عنوان

مقدار

1

تاریخ انتشار آسیب‌پذیری

2022-07-10

2

تاریخ بروزسانی آسیب­پذیری

2022-07-15

2

شدت آسیب­پذیری (طبقcvss  نسخه 3)

بحرانی (9.3 از 10)

4

نسخه‌ آسیب‌پذیر

تا 2019-09-16

5

نوع ضعف

Path Traversal

 

برای رفع این آسیب‌پذیر بایستی از اعمال ورودی نامطمئن به تابع آسیب‌پذیر send_file جلوگیری کرد و در صورتی که مطابق با منطق برنامه این کار ضرورت داشته باشد، می‌توان از werkzeug.utils.safe_join برای استفاده از مسیرهای نامطمئن بهره برد یا فراخوانی‌های flask.send_file را با فراخوانی‌های flask.send_from_directory  جایگزین نمود

 

 

  منابع

https://cert.ir/news/13409

 

Computer Emergency Response Team (CERT) of Mohaghegh Ardabili as a Cyber security Laboratory has started its activity in various cyber-sec fields such as cyber threat hunting, digital forensics and incident response, web and network penetration testing since 2015.

This center relies on the network and system security research group of the computer engineering and information technology department and using the experience of experienced and expert professors, top graduates and elite students of Mohaghegh Ardabili University to achieve the goals of providing services to organizations, offices and companies.

سازمان فناوری اطلاعات ایران
مرکز ماهر
دانشگاه محقق اردبیلی