Broken Object Level Authorization
Broken Object Level Authorization (BOLA), also known as Insecure Direct Object Reference (IDOR), is a vulnerability that lets attackers access unauthorized resources by manipulating Object IDs.
Vulnerable Code
@router.get("/users/{username}", dependencies=[Depends(JWTBearer())])
async def get_user_by_username(username: str, db: Session = Depends(get_db)):
user = await get_user_by_username_handler(db, username)
if user:
return JSONResponse(status_code=200, content={"status": "success", "message": "User retrieved successfully", "data": jsonable_encoder(user)})
return JSONResponse(status_code=404, content={"status": "error", "message": "User not found"})async def get_user_by_username_handler(db: Session, username: str):
'''
Get user by username
'''
return db.query(UserModel).filter(UserModel.username == username).first()Vulnerable APIs
Compliance
CWE & CVSS
Last updated