As of 30 Oct 2026, CYBRO has 4 audit reports by 2 security firms on Trustblock; the latest is by CertiK, dated 24 Feb 2025. Those reports list no open critical findings.
Record last updated . It holds audits and findings, contracts and incidents up to Oct 2026. Trustblock does not review code.
Newest first
| Audit | Security firm | Date | Scope | Critical findings | Report |
|---|---|---|---|---|---|
| CYBRO Token - Audit 2 | Security firm: CertiK | Date: | Scope: Files named in the report | No open critical findings | Open · skynet.certik.com |
| Cybro V3 | Security firm: QuillAudits | Date: | Scope: Files named in the report | No open critical findings | Open · quillaudits.com |
| CYBRO Token - Audit | Security firm: CertiK | Date: | Scope: Files named in the report | No open critical findings | Open · skynet.certik.com |
| CYBRO | Security firm: CertiK | Date: | Scope: Files named in the report | No open critical findings | Open · skynet.certik.com |
Statuses are the security firm’s own, from each report.
| Severity | Open | Acknowledged | Fixed |
|---|---|---|---|
| Critical | 0 | 0 | 0 |
| High | 2 | 0 | 1 |
| Medium | 6 | 0 | 1 |
| Low | 11 | 1 | 1 |
In rebalanceAuto(), It automatically rebalances assets across all lending pools part of what it does is iterate through all lending pool with a for loop, executing redeem on each pool and then swapping it to the pool asset, However it never checks the amount returned on the redeem() to be above 0 before executing the swap as it is a possibility for one of the pool being iterated on to return 0 on redeem and also since the redeem function default is to round down. This unhandled zero amount going into a swap will always revert the entire rebalanceAuto(). Therefore, if one of the pool.redeem() returns zero the entire rebalanceAuto() will fail.
Open the reportUnlike in _applyWithdrawalFee where fee > 0 is first checked before making a transfer, _applyPer formanceFee does not check if fee > 0 before making the performancefee transfer, this will cause operations that makes call to _applyPerformanceFee to revert for some tokens for cases when fee returned is zero. Transferring performance fee without checking if fee > 0 could cause the entire parent operations to revert for some tokens.
Open the reportuser fees properly if getUpdateUserFees() has not been called before. When setFeesForUsers() is executed:. The function sets the user’s fees using Math.min() with the default uninitialized value (0) from _users[user]. . Since userFees.depositFee, userFees.withdrawalFee, and userFees.performanceFee are not initial ized, they default to 0. . As a result, the user’s fees are always set to 0, overriding the global fee settings. . getUpdateUserFees() is expected to initialize fees, but if setFeesForUsers() is called first, the fees will remain 0.
Open the reportThe reports name a repository or files. Open a report to see its scope.
Is this your project? Show this record on your own website. The label states what the record holds, links to this page and updates by itself. It is free and needs no sign-in.
Automatic: the three strongest facts of this project’s own record (its last audit and two more), highlighted. They update with the record. Picking a fact turns Automatic off.
<head><script src="https://widget.trustblock.run/project-widget.min.js" defer></script></head><body><divdata-tb-project-widgetdata-tb-project-slug="cybro"></div></body>
Paste the code where the label should appear. It uses no API credit and updates by itself.
Something wrong on this page? A missing report, a wrong date, a finding that was fixed since. Tell us and we check it against its source.
Tell us