HexBrain

GitLab · Report #767770

Private objects exposed through project import

Validstatus
criticalseverity
$20,000bounty
133upvotes
7 Jun 2022disclosed

How it was found

Summary

This is a bypass of https://hackerone.com/reports/743953 , the current fix is blocking all "_ids" attributes. However an attacker could still set attributes like issue_ids by indrectly settings the field within the attributes field it self:

# project.json
    "attributes": {
        "issue_ids": [ 29279725 ],
        "description": "Set from attributes[description]"
    },

Steps to reproduce

  1. Import the attached tarball.
  2. Check issues tab

The other parts of the report are mostly same as those I mentioned in https://hackerone.com/reports/743953 , I decide to write a new report considering the impact to gitlab.com.

Impact

With this ability to modify relations between objects, an attacker could end up with accessing random resources of other users by traversing the incremental ID space.

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