UVToken security record

BNB Chainuvtoken.com

As of 3 Nov 2026, UVToken has 2 audit reports by 1 security firm on Trustblock; the latest is by CertiK, dated 24 Feb 2023. Those reports list no open critical findings. It also holds 1 deployed contract on 1 chain.

Critical findings
No open critical findings
Across the 2 reports, 1 critical finding was reported. It is marked fixed by the firm that reported it. See the findings
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.

Audits2

Newest first

AuditSecurity firmDateScopeCritical findingsReport
UVToken-Audit 2Security firm: CertiKDate: Scope: 1 address on BNB ChainNo open critical findingsOpen · skynet.certik.com
UvTokenSecurity firm: CertiKDate: Scope: Not recorded (see the report)1 critical finding, fixedOpen · skynet.certik.com

Findings25

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

SeverityOpenAcknowledgedFixed
Critical001
High101
Medium024
Low826
CriticalLogging Sensitive Information on AndroidUvToken · CertiK · 14 Oct 2022Fixed

The UvToken Android application logs highly sensitive wallet information such as private and public keys as well as different endpoints. By connecting an Android device to a PC, log output from the wallet application applications can be obtained with "adb logcat". It is important that applications do not send sensitive information to log output. The following screenshot shows a private key logged in the Android logcat: ![Screenshot 2022-09-20 at 11_1663860383865.54.40.png](https://accelerator-projects-prod.acc.corp.certik.com/0a584550-08c5-11ed-a792-c16017b83c26/upload/Screenshot%202022-09-20%20at%2011_1663860383865.54.40.png)

Open the report
HighFunction Calls User-Provided Addresses With No AcUVToken-Audit 2 · CertiK · 24 Feb 2023Fixed

In the current implementation, function `InsertUVTPledge` will trigger an external call to a user provided address `_pledgeAddr`. ```solidity=422 function InsertUVTPledge( address _userAddr , uint256 _pledgeAmount, address _pledgeAddr ) external { IPledge IPledge_ = IPledge(_pledgeAddr); bool _isValid; (,,,_isValid) = IPledge_.getPledgeInfo(); require(_isValid,"noValid"); payToken(tokenAddress_, _userAddr, _pledgeAmount); IPledge_.insertUVTPledge(_userAddr, _pledgeAmount); } ``` Calling a user provided address is dangerous, especially in a public function with no access control restriction. An attacker could deploy a malicious contract and use the vulnerable function to trigger a call to the malicious contract. In this case, the attacker can bypass the `_isValid` check in L426 and he can transfer tokens hold by any user to the `IFinance_` account, if the user has approved the `UVTPledge` contract.

Open the report
MediumIneffective `isNotContract()` CheckUVToken-Audit 2 · CertiK · 24 Feb 2023Fixed

The implementation of the `isNotContract` check can not cover all scenarios. The check can be bypassed if the call is from the constructor of a smart contract or when the contract is destroyed. In that case, the codesize will also be zero. The "isContract" function in the OpenZeppelin "Address" library uses the similar implementation, but comments mention that "it's unsafe to rely on the check and it can be bypassed". Reference: https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/Address.sol Bypassing the `isNotContract()` check would introduce potential risks to the project.

Open the report
MediumPotential lack of access control for "mint"UVToken-Audit 2 · CertiK · 24 Feb 2023Fixed

The "mint" function lacks access control, allowing any user to call it and transfer uvcToken to miner on a daily basis. The reason for allowing everyone to call the "mint" function is unclear to the auditor and we suggest this function should only be accessible from the contract owner. ```solidity=474 function mint() external CanMint isNotContract(msg.sender) returns(bool) { uint256 nDays = (block.timestamp - lastMint_)/CYCLE_; lastMint_ = lastMint_ + nDays * CYCLE_; uvcToken_.safeTransfer(miner_, nDays * numMint_); return true; } ```

Open the report
MediumMnemonic Display Allow ScreenshotsUvToken · CertiK · 14 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. ![mnemonic screenshot_1663951952310.jpg=150x300](https://accelerator-projects-prod.acc.corp.certik.com/0a584550-08c5-11ed-a792-c16017b83c26/upload/mnemonic%20screenshot_1663951952310.jpg)

Open the report
MediumWeak Password PolicyUvToken · CertiK · 14 Oct 2022Fixed

The currently implemented password policy is permissive regarding the requirements related to the password, as it let the user set a weak password such as `Test1234`.

Open the report
LowDifferent Solidity VersionsUVToken-Audit 2 · CertiK · 24 Feb 2023Fixed

Multiple Solidity versions are used in the codebase. Versions used: `^0.8.4`, `^0.8.7` `^0.8.4` is used in UVToken/uvcMine.sol file. ```solidity=305 pragma solidity ^0.8.4; ``` `^0.8.7` is used in UVToken/uvcMine.sol file. ```solidity=404 pragma solidity ^0.8.7; ```

Open the report
LowLack of Certificate PinningUvToken · CertiK · 14 Oct 2022Fixed

The application does not implement certificate pinning. Certificate pinning is the act of associating a host with its expected certificate within the application. When the application connects to the host, the stored certificate is compared to the certificate held by the remote host. If the two certificates do not match, the request is dropped. Currently, the application only verifies that the server presents a TLS certificate that is trusted by the Android or iOS trust stores, not validating that the TLS certificate is in fact the one known to be deployed on the servers.

Open the report
LowLegacy or Testing ConnectionsUvToken · CertiK · 14 Oct 2022Fixed

Connections to internal hosts or testing domains such as the ones shown below were observed during the testing: ```http POST /wallet/subscription/coin HTTP/1.1 Host: 192.168.0.110:8008 Content-Type: application/json Connection: close Accept: */* User-Agent: Blockchain Wallet/1.4.1 (iPhone; iOS 14.5.1; Scale/2.00) Accept-Language: en-ES;q=1, es-ES;q=0.9 Content-Length: 1034 Accept-Encoding: gzip, deflate ``` ```http GET /v1/accounts/bi/detail/find HTTP/1.1 Host: wallet-test.uvtoken.org User-Agent: Blockchain Wallet/1.4.1 (iPhone; iOS 14.5.1; Scale/2.00) Accept: */* Accept-Language: en-ES;q=1, es-ES;q=0.9 Accept-Encoding: gzip, deflate Connection: close ``` It is believed that they were part of the testing and/or debugging process.

Open the report
LowMisconfigured CORS PolicyUvToken · CertiK · 14 Oct 2022Fixed

During the test, it was found that the HTTP response from the server contains the CORS header `Access- Control-Allow-Origin: *`.

Open the report
Show 2 more
LowOutdated jQuery LibraryUvToken · CertiK · 14 Oct 2022Fixed

The version of the jQuery JavaScript library used by the UvToken web service was outdated and even contained known vulnerabilities. Specifically, the version in use was 2.0.0.

Open the report
LowWeak TLS ConfigurationUvToken · CertiK · 14 Oct 2022Fixed

The remote service accepts connections encrypted using TLS 1.0. TLS 1.0 has a number of cryptographic design flaws. Modern implementations of TLS 1.0 mitigate these problems, but newer versions of TLS like 1.2 and 1.3 are designed against these flaws and should be used whenever possible. As of March 31, 2020, Endpoints that aren’t enabled for TLS 1.2 and higher will no longer function properly with major web browsers and major vendors. PCI DSS v3.2 requires that TLS 1.0 be disabled entirely by June 30, 2018, except for POS POI terminals (and the SSL/TLS termination points to which they connect) that can be verified as not being susceptible to any known exploits.

Open the report

Contracts1

AddressChainSource code
0xa9bdd634725eab26ab297e969071fadc45118569Chain: BNB ChainSource code: Verified source

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="uvtoken"
></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