Valinity security record

BNB Chain, Ethereumvalinity.io

As of 3 Nov 2026, Valinity has 4 audit reports by 1 security firm on Trustblock; the latest is by CertiK, dated 23 Oct 2023. Those reports list no open critical findings.

Critical findings
No open critical findings
Across 4 reports.
Open the latest report
Your label, live
Get the label for your site

Record last updated . It holds audits, findings and contracts up to Nov 2026, and incidents up to Oct 2026. Trustblock does not review code.

Audits4

Newest first

AuditSecurity firmDateScopeCritical findingsReport
Valinity Contract AuditSecurity firm: CertiKDate: Scope: Files named in the reportNo open critical findingsOpen · skynet.certik.com
Valinity AuditSecurity firm: CertiKDate: Scope: Files named in the reportNo open critical findingsOpen · skynet.certik.com
Valinity Formal VerificationSecurity firm: CertiKDate: Scope: Files named in the reportNo open critical findingsOpen · skynet.certik.com
Valinity ApplicationSecurity firm: CertiKDate: Scope: Not recorded (see the report)No open critical findingsOpen · skynet.certik.com

Findings29

Statuses are the security firm’s own, from each report.

SeverityOpenAcknowledgedFixed
Critical000
High203
Medium104
Low9010
HighCentralized Control of Contract Address ReferenceValinity Contract Audit · CertiK · 23 Oct 2023Fixed

In this project, many contracts extend `RegistrarClient.sol` and rely on the `Registrar` to provide the contract address references. These contracts include: 1. `VYToken` 2. `VETHYieldRateTreasury` 3. `VETHP2P` 4. `VETHRevenueCycleTreasury` 5. `VETHGovernance` 6. `VETHReverseStakingTreasury` In contract `Registrar.sol`, function `setContracts()` allows privileged role `AdminAgents` to update the address reference. Any compromise to the `AdminAgents` account may allow the hacker to take advantage of this authority and set incorrect contracts address references. Misuse of this functionality might potentially affecting all users and contracts interacting with those addresses and threaten the integrity of multiple contracts within the project. ```solidity=67 function setContracts(address[] calldata _addresses) external onlyAdminAgents onlyUnfinalized { require(_validContractsLength(_addresses.length), "Invalid number of addresses"); // Loop through and update _prevContracts entries only if those addresses are new. // For example, assume _prevContracts[0] = 0xABC and contracts[i] = 0xF00 // If _addresses[i] = 0xF00 and we didn't perform the check below, then we would overwrite the old // 0xABC with 0xF00, thereby losing whatever actual previous contract address that was. for (uint i = 0; i < _contracts.length; i++) { if (_addresses[i] != _contracts[i]) { _prevContracts[i] = _contracts[i]; } } _contracts = _addresses; emit SetContracts(_addresses); } ```

Open the report
HighUnlimited Minting Privilege in function `airdropTValinity Contract Audit · CertiK · 23 Oct 2023Fixed

The function `airdropTokens()` allows BackendAgents to mint arbitrary amounts of tokens when registrar contract has not been finalized. Furthermore, these minted tokens are not included in the calculated circulating supply, leading to an inaccurate representation of the token's total supply and valuation metrics. ```solidity=243 function airdropTokens(address[] calldata _addresses, uint[] calldata _amounts) external onlyBackendAgents { require(_addresses.length == _amounts.length, "Argument array length mismatch"); _requireRegistrarIsUnfinalized(_getMainEcosystemRegistrar()); // Check main ecosystem for (uint i = 0; i < _addresses.length; i++) { super._mint(_addresses[i], _amounts[i]); } } ``` Exploit Scenario: - An attacker with control of a BackendAgent account could mint an excessive number of vyTokens. - They could then transfer these minted tokens into the `VETHRevenueCycleTreasury`, artificially diluting the circulating supply and significantly lowering the yield rate. - Exploiting this artificially lowered yield rate, the attacker could then interact with the `VETHReverseStakingTreasury` to restake a minimal amount of vyTokens and borrow a disproportionally large amount of ETH. - The attacker could drain the ETH treasury with this method, causing substantial financial loss. Unlimited minting presents a major risk as it allows for substantial economic manipulation and exploitation. An attacker can not only devalue the yield rate but can also extract large amounts of ETH from the treasury, thereby compromising the entire ecosystem's financial stability.

Open the report
HighNo price check when creating ExchangeCap offerValinity Formal Verification · CertiK · 15 Dec 2022Fixed

In the contract MFCExchangeCap, the role `onlyBackendAgents` has authority over the function `createOffer()`. In the function `createOffer()`, according to the design document the price is supposed to be twice the floor price but this is not enforced in the contract. Any compromise to the `onlyBackendAgents` account may allow a hacker to create an offer with any price, which could potentially lead to decrease in the floor price. For the formal verification, we used an assumption that the price is set correctly.

Open the report
MediumEBS Volume Not EncryptedValinity Application · CertiK · 28 Oct 2022Fixed

During testing, the testers found that the AWS EBS volumes for the `My Freedom Coin` project were not encrypted.

Open the report
MediumLack of Key Rotation for (Active) DaysValinity Application · CertiK · 28 Oct 2022Fixed

During testing, the testers found that `My Freedom Coin` project did not configure the Rotate Access Keys policy.

Open the report
MediumMnemonic display allow screenshotValinity Application · CertiK · 28 Oct 2022Fixed

The mnemonic phrase is a list of words that can be used to recover a wallet account. Obtaining the mnemonic can potentially allow the attacker to gain full control of the wallet. The application neither has a mechanism in place to stop a user from taking the screenshot of the displayed wallet secrets nor display a warning to remind the user of the risk of taking a screenshot.

Open the report
MediumPasscode retry limit bypassValinity Application · CertiK · 28 Oct 2022Fixed

The passcode retry time limit prevents an attacker from brute-forcing the user's passcode. However, it was found that the time limit can be bypassed by going back to the parent menu and then re-entering the enter passcode screen.

Open the report
LowMissing Zero Address ValidationValinity Contract Audit · CertiK · 23 Oct 2023Fixed

An address is not validated before assignment or external calls, potentially allowing the use of zero addresses and leading to unexpected behavior or vulnerabilities. For example, transferring tokens to a zero address can result in a permanent loss of those tokens. ```solidity=23 _primaryStakeholder = primaryStakeholder_; ``` - `primaryStakeholder_` is not zero-checked before being used.

Open the report
LowActivity is not ProtectedValinity Application · CertiK · 28 Oct 2022Fixed

When analyzing the `AndroidManifest.xml` file, the testers found that the Activity of `com.myfreedomcoin.mfc.MainActivity` was not protected due to the setting of `exported=true`.

Open the report
LowApplication uses v1 signature scheme (Janus AttacValinity Application · CertiK · 28 Oct 2022Fixed

The application is signed with v1 signature scheme, making it vulnerable to Janus vulnerability on Android <7.0 The Janus vulnerability stems from the possibility to add extra bytes to APK files and to DEX files. On the one hand, an APK file is a zip archive, which can contain arbitrary bytes at the start, before its zip entries (actually more generally, between its zip entries). The JAR signature scheme only takes into account the zip entries. It ignores any extra bytes when computing or verifying the application’s signature. On the other hand, a DEX file can contain arbitrary bytes at the end, after the regular sections of strings, classes, method definitions, etc. A file can, therefore, be a valid APK file and a valid DEX file at the same time. References: https://www.xda-developers.com/janus-vulnerability-android-apps/

Open the report
Show 7 more
LowDomain Transfer Not LockedValinity Application · CertiK · 28 Oct 2022Fixed

During the test, the testers found that the domain name of `My Freedom Coin` was not set to transfer lock.

Open the report
LowInsecure AWS IAM Password PolicyValinity Application · CertiK · 28 Oct 2022Fixed

During testing, the testers found that there were many insecure password policy issues in the `My Freedom Coin` AWS environment. The following problems exist. - Password Expiration Disabled - Password Policy Allows the Reuse of Passwords

Open the report
LowInsecure security groups configurationValinity Application · CertiK · 28 Oct 2022Fixed

During testing the testers found that there were many problems with the insecure security group configuration in the `My Freedom Coin` project. The following problems exist. - Default Security Groups in Use - Non-empty Rulesets for Default Security Groups - Security Group Opens All Ports - Security Group Uses Port Range - Unrestricted Network Traffic within Security Group

Open the report
LowInsecure subnet configurationValinity Application · CertiK · 28 Oct 2022Fixed

During testing, the testers found the following problems with subnet. - Subnet with "Allow All" egress NACLs - Subnet with "Allow All" ingress NACLs - Subnet without a Flow Log

Open the report
LowNo root detection on Android applicationValinity Application · CertiK · 28 Oct 2022Fixed

No root or jailbreak detection is implemented in the application. This allows an attacker to modify the app on a rooted Android or jailbroken iOS device, which means the attacker can potentially induce behaviors that otherwise would not occur. Examples of the impact include accessing sensitive application data, overwriting critical functions, and an overall wider attack surface.

Open the report
LowScreenshot backgroundingValinity Application · CertiK · 28 Oct 2022Fixed

On mobile devices, a screenshot of the current activity is taken when an application goes into the background and displayed for aesthetic purposes when the app returns to the foreground. This feature may pose a security risk. Sensitive data may be exposed if the user background the application while sensitive data is displayed. A malicious application that is running on the device and able to continuously capture the screen may also expose data. ![31YQA3@U[]ERG0J}LT1$6A6_1658798685785.png =200x370](https://accelerator-projects-prod.acc.corp.certik.com/a9230c00-e7a1-11ec-9959-35b12e4ad977/upload/31YQA3%40U%5B%5DERG0J%7DLT1%246A6_1658798685785.png)

Open the report
LowUsing components with known vulnerabilitiesValinity Application · CertiK · 28 Oct 2022Fixed

The result of the "npm audit" command shows the application is using outdated libraries with know vulnerabilities.

Open the report

Contracts

No deployed address is recorded for these audits.

The reports name a repository or files. Open a report to see its scope.

The repositories and files the reports name

Show this on your site

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.

Content

Facts

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.

Fixed as
Language

Style

Layout
Theme
Accent
Corners

Format

Size
Date
Embed as
HTML
<head>
<script src="https://widget.trustblock.run/project-widget.min.js" defer></script>
</head>
<body>
<div
data-tb-project-widget
data-tb-project-slug="valinity"
></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