Research journal · Audit summary

Lido NEST audit summary

NEST automates LDO buybacks funded by Lido DAO treasury earnings. Our security review covered the contracts, the fixes, and the verified mainnet deployment.

research/lido-nest-audit-summary figure / technical visual
A horizontal bar chart of the Lido NEST review's 16 findings by severity: 9 low, 3 warning, and 4 info, with no critical, high, or medium issues; 8 of 16 were fixed and 8 acknowledged.
The review recorded no critical, high, or medium severity issues; all 16 findings are low, warning, or info, and half were fixed in revision 1.1.

Lido NEST automates LDO buybacks funded by DAO treasury earnings, releasing funds only as fast as revenue accrues. Depending on the configured mode, it either deposits the acquired LDO alongside wstETH into a liquidity pool or sends it directly to the treasury.

Revisions

RevisionDeliverableDate
1.0Security ReviewJune 22 – July 7, 2026
1.1Final Report (fix review)July 17, 2026
1.2Deployment VerificationJuly 24, 2026

The published report is revision 1.2 and contains all three revisions.

Revision 1.0: security review

Lido engaged ack3 to perform a security review of Lido NEST with a total time donation of 10 engineering days between June 22 and July 7, 2026. Michal Převrátil led the review, with Jan Kalivoda and Naoki Yoshida as auditors and Josef Gattermayer as audit supervisor.

The review was performed on commit 2e70a1b in the stonks repository and commit 18ea278 in the core repository.

It covered the following new files in stonks:

  • contracts/automated-buybacks/BuybackExecutor.sol
  • contracts/automated-buybacks/BuybackAllocator.sol
  • contracts/automated-buybacks/revenue/StakingRevenueSource.sol
  • contracts/automated-buybacks/AssetRecovererACL.sol
  • contracts/automated-buybacks/revenue/RevenueSource.sol
  • contracts/automated-buybacks/MathHelpers.sol

It also covered changes to contracts/Stonks.sol, contracts/factories/StonksFactory.sol, and contracts/Order.sol in stonks since commit 4c6d195, and changes to contracts/0.8.9/TokenRateNotifier.sol in core since commit eae8614.

We began by understanding the overall architecture and the purpose of the system. Then we performed a deep dive into the logic of the contracts and, in parallel, prepared a differential manually guided fuzz test using the Wake testing framework. In the later phase of the review, we launched an automated ack3 AI scan.

During the review, we paid special attention to:

  • the integration with the Curve TwoCrypto pool, particularly the deposit protections;
  • access controls that are not too relaxed or too strict;
  • permissionless functions, assessed for griefing vectors or ways to take advantage of the automated buyback system;
  • discrepancies between the states of the two contracts, such as an amount already budgeted on one side but not yet reflected on the other;
  • the Chainlink integration and its consequences;
  • permissioned roles retaining full control over orders and the ability to intervene in emergency scenarios; and
  • common issues such as data validation.

Findings

The review resulted in 16 findings: 9 low, 3 warning, and 4 info. No critical, high, or medium severity issues were found. Most of the low-severity findings are edge cases in how the system tracks state across time or across cooperating contracts, rather than directly exploitable vulnerabilities. For instance, L9 stems from a status enum that drifted out of sync with its interface, L4 shows a fixed-window rate limiter that can be straddled to briefly exceed its cap, and L3 leaves funds unmonitored after a configuration change.

Ten findings were discovered by auditors and six by the AI scan. Every finding was manually reviewed and validated by the team.

Curve TwoCrypto deposits

As part of the review, we evaluated the consequences of the absent slippage protection on Curve TwoCrypto pool deposits, under the stated requirement that Lido NEST be the only contract interacting with the pool and that no other interference from the Lido side is expected.

In our assessment, the current implementation is sound for the bootstrap phase and preferable to introducing a Chainlink-to-pool difference gate. We nonetheless identified two residual risks:

  • The Chainlink oracle may misreport the price of stETH or LDO, resulting in an imbalanced deposit and subsequent arbitrage.
  • A malicious actor may poison the internal state of the pool (pool balances, price_scale), leading to higher imbalance fees paid by Lido NEST during deposits.

Both risks are inherent to the current design and, in our view, acceptable. The first stems from the Chainlink oracle itself and has a very low likelihood of occurring. For the second, the fees incurred by Lido NEST are bounded to a maximum of 0.026%, negligible relative to the deviation thresholds of the stETH/ETH (0.5%) and LDO/ETH (2%) oracles.

Conversely, introducing an EMA gate or any other Chainlink-to-pool difference gate would allow a malicious actor to temporarily poison the shallower pool and block deposits through the gate.

The review was conducted against the fixed parameters of the deployed pool.

Revision 1.1: fix review

The fix review was performed on commit 10a2499 in stonks and commit dc9066b in core. Beyond the changes addressing the reported findings, these commits also introduced minor code and comment modifications, likewise covered by the review.

Of the 16 findings, 8 were fixed and 8 were acknowledged. No new findings were identified. Each finding’s status and fix is documented in the report.

Revision 1.2: deployment verification

We verified the Lido NEST deployment on the Ethereum mainnet, on the same commits as the fix review. The verification concluded with a full match of the runtime bytecode, excluding the metadata hash, and reasonable values used for constructor arguments. Deployment parameters were additionally checked against LIP-36 for the parameters it specifies.

The verified contracts: StonksFactory, Order (sample), StakingRevenueSource, BuybackExecutor, BuybackAllocator, Stonks in LP and treasury mode, TokenRateNotifier, and LidoLocator.

Report and code

Contributors

About the authors.

Vocabulary

Terms used in this article.