Ответ:
Проблема возникает в строке:
path = os.path.join(MATERIALS, name)
Значение name берётся из параметра запроса и без проверки присоединяется к каталогу материалов. Если передать путь с переходом к родительскому каталогу, например ../config.py, приложение может попытаться открыть файл за пределами materials/.
Проверка os.path.exists(path) подтверждает лишь существование файла, но не то, что он находится внутри разрешённого каталога.
Ответ: строка 21.
