You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A bug bounty program for Liquity’s underlying smart contracts that Nerite uses is now live. We intend for hackers to look for smart contract vulnerabilities in our system that can lead to loss of funds or locked components.
8
8
9
-
## Configure i18n
9
+
Check out Liquity's [bug bounty](https://docs.liquity.org/v2-documentation/bug-bounty) program for the most up to date information.
10
10
11
-
Modify `docusaurus.config.js`to add support for the `fr` locale:
11
+
The preferred way to submit a vulnerability is through Liquity's Vault on [Hats Finance](https://app.hats.finance/bug-bounties/liquity-0xd9a1751269d5506e3528241e3f35d3fbeb974b6b/rewards). If, for any reason, Hats can't be used, vulnerabilities can also be sent using the method described below.
12
12
13
-
```js title="docusaurus.config.js"
14
-
exportdefault {
15
-
i18n: {
16
-
defaultLocale:'en',
17
-
locales: ['en', 'fr'],
18
-
},
19
-
};
20
-
```
13
+
Rewards will be awarded at the sole discretion of Liquity AG. The quality of the report and reproduction instructions can impact the reward. Rewards are denominated and paid out in USD. If both parties agree, rewards can also be paid out in crypto assets.
21
14
22
-
## Translate a doc
15
+
## Reporting a Vulnerability
16
+
Please responsibly disclose any findings to the development team, following these instructions:
23
17
24
-
Copy the `docs/intro.md` file to the `i18n/fr` folder:
18
+
In order to report a vulnerability, please write an email to [email protected] with [SECURITY DISCLOSURE] in the subject of the email.
We will make our best effort to reply in a timely manner and provide a timeline for resolution.
31
23
32
-
Translate `i18n/fr/docusaurus-plugin-content-docs/current/intro.md` in French.
24
+
Please include a detailed report on the vulnerability with clear reproduction steps. The quality of the report can impact the reward amount.
33
25
34
-
## Start your localized site
26
+
Failure to do so will result in a finding being ineligible for any bounties.
35
27
36
-
Start your site on the French locale:
28
+
## Scope
29
+
In scope for the bug bounty are all the smart contract components of the Liquity V2 protocol. They can be found in the following repository: https://github.com/liquity/bold
37
30
38
-
```bash
39
-
npm run start -- --locale fr
40
-
```
31
+
Solidity code under the contracts directory:
41
32
42
-
Your localized site is accessible at [http://localhost:3000/fr/](http://localhost:3000/fr/) and the `Getting Started` page is translated.
33
+
/src
43
34
44
-
:::caution
35
+
├── ActivePool.sol
45
36
46
-
In development, you can only use one locale at a time.
37
+
├── AddressesRegistry.sol
47
38
48
-
:::
39
+
├── BoldToken.sol
49
40
50
-
## Add a Locale Dropdown
41
+
├── BorrowerOperations.sol
51
42
52
-
To navigate seamlessly across languages, add a locale dropdown.
43
+
├── CollateralRegistry.sol
53
44
54
-
Modify the `docusaurus.config.js` file:
45
+
├── CollSurplusPool.sol
55
46
56
-
```js title="docusaurus.config.js"
57
-
exportdefault {
58
-
themeConfig: {
59
-
navbar: {
60
-
items: [
61
-
// highlight-start
62
-
{
63
-
type:'localeDropdown',
64
-
},
65
-
// highlight-end
66
-
],
67
-
},
68
-
},
69
-
};
70
-
```
47
+
├── DefaultPool.sol
71
48
72
-
The locale dropdown now appears in your navbar:
49
+
├── Dependencies
73
50
74
-

51
+
│ ├── AddRemoveManagers.sol
75
52
76
-
## Build your localized site
53
+
│ ├── AggregatorV3Interface.sol
77
54
78
-
Build your site for a specific locale:
55
+
│ ├── Constants.sol
79
56
80
-
```bash
81
-
npm run build -- --locale fr
82
-
```
57
+
│ ├── IRETHToken.sol
83
58
84
-
Or build your site to include all the locales at once:
59
+
│ ├── LiquityBase.sol
85
60
86
-
```bash
87
-
npm run build
88
-
```
61
+
│ ├── LiquityMath.sol
62
+
63
+
│ └── Ownable.sol
64
+
65
+
├── GasPool.sol
66
+
67
+
├── Interfaces
68
+
69
+
│ ├── IActivePool.sol
70
+
71
+
│ ├── IAddRemoveManagers.sol
72
+
73
+
│ ├── IAddressesRegistry.sol
74
+
75
+
│ ├── IBoldRewardsReceiver.sol
76
+
77
+
│ ├── IBoldToken.sol
78
+
79
+
│ ├── IBorrowerOperations.sol
80
+
81
+
│ ├── ICollateralRegistry.sol
82
+
83
+
│ ├── ICollSurplusPool.sol
84
+
85
+
│ ├── ICommunityIssuance.sol
86
+
87
+
│ ├── ICompositePriceFeed.sol
88
+
89
+
│ ├── IDefaultPool.sol
90
+
91
+
│ ├── IInterestRouter.sol
92
+
93
+
│ ├── ILiquityBase.sol
94
+
95
+
│ ├── ILQTYStaking.sol
96
+
97
+
│ ├── ILQTYToken.sol
98
+
99
+
│ ├── IMultiTroveGetter.sol
100
+
101
+
│ ├── IPriceFeed.sol
102
+
103
+
│ ├── ISortedTroves.sol
104
+
105
+
│ ├── IStabilityPoolEvents.sol
106
+
107
+
│ ├── IStabilityPool.sol
108
+
109
+
│ ├── ITroveEvents.sol
110
+
111
+
│ ├── ITroveManager.sol
112
+
113
+
│ ├── ITroveNFT.sol
114
+
115
+
│ ├── IWETHPriceFeed.sol
116
+
117
+
│ ├── IWETH.sol
118
+
119
+
│ ├── IWSTETHPriceFeed.sol
120
+
121
+
│ └── IWSTETH.sol
122
+
123
+
├── MockInterestRouter.sol
124
+
125
+
├── PriceFeeds
126
+
127
+
│ ├── CompositePriceFeed.sol
128
+
129
+
│ ├── MainnetPriceFeedBase.sol
130
+
131
+
│ ├── RETHPriceFeed.sol
132
+
133
+
│ ├── WETHPriceFeed.sol
134
+
135
+
│ └── WSTETHPriceFeed.sol
136
+
137
+
├── SortedTroves.sol
138
+
139
+
├── StabilityPool.sol
140
+
141
+
├── TroveManager.sol
142
+
143
+
├── TroveNFT.sol
144
+
145
+
├── Types
146
+
147
+
│ ├── BatchId.sol
148
+
149
+
│ ├── LatestBatchData.sol
150
+
151
+
│ ├── LatestTroveData.sol
152
+
153
+
│ ├── TroveChange.sol
154
+
155
+
│ └── TroveId.sol
156
+
157
+
└── Zappers
158
+
159
+
├── GasCompZapper.sol
160
+
161
+
├── Interfaces
162
+
163
+
│ ├── IExchange.sol
164
+
165
+
│ ├── IFlashLoanProvider.sol
166
+
167
+
│ ├── IFlashLoanReceiver.sol
168
+
169
+
│ └── ILeverageZapper.sol
170
+
171
+
├── LeverageLSTZapper.sol
172
+
173
+
├── LeverageWETHZapper.sol
174
+
175
+
├── Modules
176
+
177
+
│ ├── Exchanges
178
+
179
+
│ │ ├── CurveExchange.sol
180
+
181
+
│ │ └── UniV3Exchange.sol
182
+
183
+
│ │ └── HybridCurveUniV3Exchange.sol
184
+
185
+
│ └── FlashLoans
186
+
187
+
│ └── BalancerFlashLoan.sol
188
+
189
+
└── WETHZapper.sol
190
+
191
+
## Out of scope
192
+
Known issues will not be rewarded
193
+
194
+
## Areas of interest
195
+
These are some examples of vulnerabilities that would be interesting:
196
+
197
+
Stealing tokens or manipulating the token generation process.
198
+
199
+
Locking or freezing any of the Liquity V2 contracts.
200
+
201
+
Griefing attacks: is it possible to block liquidations, redemptions, borrower operations, rewards distributions, etc.
202
+
203
+
Do the desired constraints on borrower operations hold?
204
+
205
+
Flash loan exploits
206
+
207
+
LQTY token exploits involving the LockupContracts
208
+
209
+
Frontend initiated smart contract interactions which unexpectedly impact the user negatively - e.g. MEV risk from withdrawing liquidity from an AMM
210
+
211
+
## Eligibility
212
+
Only unknown vulnerabilities will be awarded a bounty; in case of duplicate reports, the first report will be awarded the bounty.
213
+
214
+
Public disclosure of the vulnerability, before explicit consent from Liquity AG to do so, will make the vulnerability ineligible for a bounty.
215
+
216
+
Attempting to exploit the vulnerability in a public Ethereum network will also make it ineligible for a bounty.
0 commit comments