Add support for vulnerable CORS middlewares

This commit is contained in:
Kevin Stubbings
2024-08-26 21:30:48 -07:00
parent e81fdc951a
commit 8bf8893307
11 changed files with 337 additions and 0 deletions

View File

@@ -0,0 +1,2 @@
| fastapi.py:10:1:16:1 | ControlFlowNode for Attribute() | This CORS middleware uses a vulnerable configuration that leaves it open to attacks from arbitrary websites |
| starlette.py:8:5:8:75 | ControlFlowNode for Middleware() | This CORS middleware uses a vulnerable configuration that leaves it open to attacks from arbitrary websites |

View File

@@ -0,0 +1 @@
experimental/Security/CWE-942/CorsMisconfigurationMiddleware.ql

View File

@@ -0,0 +1,21 @@
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
app = FastAPI()
origins = [
"*"
]
app.add_middleware(
CORSMiddleware,
allow_origins=origins,
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
@app.get("/")
async def main():
return {"message": "Hello World"}

View File

@@ -0,0 +1,11 @@
from starlette.applications import Starlette
from starlette.middleware import Middleware
from starlette.middleware.cors import CORSMiddleware
routes = ...
middleware = [
Middleware(CORSMiddleware, allow_origins=['*'], allow_credentials=True)
]
app = Starlette(routes=routes, middleware=middleware)