Joystream / Joystream/audits

No deposit is charged for adding position openings for working groups

Open
#12 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

S1 - low
Dominant language
No language data
Stars
2
Forks
0
PR merge metrics
No merged PRs in 30d

Description

Summary

In the working-group module the add_opening does not require a deposit for adding a new opening (only callable by the working group lead). Since the working group openings are stored on-chain, a malicious working group lead could use this extrinsic to exhaust the storage of the blockchain.

Issue

In the working-group module the add_opening has the following issues:

  1. There is no upper limit for the number of openings that can be added
  2. Calling this extrinsic is cheap since no deposit is required.

Therefore, a malicious working group lead could create a lot of new job openings by calling this extrinsic and consequently fill up the blockchain storage.

Risk

This issue would allow a malicious working group lead to fill up the blockchain storage by adding arbitrary number of job openings. A full storage is problematic because it could lead to an infeasible amount of storage being required to run a blockchain node.

Since only working group leads can call this extrinsic who should be trusted actors with high stake in the system, we consider this issue being of low severity.

Mitigation

We suggest to require a deposit for adding a job opening or alternatively, limit the number of open positions (for example to MaxWorkerNumberLimit + 10) to prevent attackers from filling up the blockchain storage.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by locating the working-group module and its add_opening extrinsic, then inspect how openings are stored on-chain. Choose between requiring a deposit and limiting open positions, based on the module's existing constraints. Done means a working lead cannot add unbounded openings without an appropriate storage safeguard.

Written by the indexing model from the issue text.

Assessment

Tech stack
blockchain
Domain
blockchain
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.