Уязвимость в генераторе кода Swagger

В генераторе кода Swagger, применяемом для создания RESTful web-сервисов, соответствующих спецификации OpenAPI, выявлена
уязвимость (CVE-2016-5641), которая может привести к выполнению кода на стороне сервера или клиента, через подстановку специальных параметров в документы Swagger, на основе которых производится динамическая генерация обработчиков API.

Проблема затрагивает RESTful-обработчики, созданные с использованием кода, автоматически сгенерированного при помощи Swagger. В том числе обработчики, сгенерированные для языков JavaScript/Node.JS, PHP, Ruby и Java (важно отметить, что вопреки заявлениям некоторых СМИ, проблема не затрагивает непосредственно Node.JS, PHP, Ruby и Java, а касается только проектов на данных языках, применяющих swagger-codegen для генерации кода RESTful API на основе непроверенных документов Swagger).

Например, код на Java и PHP, который будет выполнен при вызове динамически сгенерированного обработчика, можно внедрить в документ Swagger следующим образом:


    "paths": {          
         "/a"; try{java.lang.Runtime.getRuntime().exec("ls");}catch(Exception e){} "":   

 
    "definitions": {          
         "d": {              
              "type": "object",              
              "description": "*/ echo system(chr(0x6c).chr(0x73)); /*",  

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.