PancakeSwap Audit

CertiKFiles named in the report

CertiK reviewed PancakeSwap (PancakeSwap Audit) on 13 Oct 2020: 9 findings, 0 critical; 8 marked fixed, 1 open.

No open critical findings
Open the reportOpen PancakeSwap’s security record

Report hosted on skynet.certik.com.

Trustblock does not review code.

Findings9

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

SeverityOpenAcknowledgedFixed
Critical000
High001
Medium001
Low106
HighIncorrect Delegation FlowFixed

Whenever new SYRUP tokens are minted, new delegates are moved from the zero address to the recipient of the minting process. However, whenever tokens are burned, new delegates are once again moved from the zero address to the recipient whereas delegates should be moved on the opposite way.

MediumInexistent Delegate TransferFixed

The `transfer` and `transferFrom` functions of the YAM project transfer delegates as well via overridence. The PancakeSwap implementation does not, leading to an inconsistency in the delegates of each `address`.

Low`addressList` InaccuracyFixed

The first linked `if` block pushes a new `address` to the `addressList` array in the case the `userInfo` mapping lookup yields `0` on the `amount` member. This case is possible even after the user has already been added to the array, either by invoking `emergencyWithdraw` or withdrawing the full amount held by the user.

LowAssignment OptimizationFixed

The linked statement will only yield a different output stored to `totalAllocPoint` only if the condition of L146 yields true.

LowCentralized Control of Bonus MultiplierFixed

The function `updateMultiplier` can alter the `BONUS_MULTIPLIER` variable and consequently the output of `getMultiplier` which is directly utilized for the minting of new cake tokens.

LowComment TypoFixed

The linked comment statement contains a typo in its body, namely `poitns`.

LowContract Purpose UnclearFixed

The `SousChef` contract tracks a reward schedule based on the deposited SYRUP tokens, however, the variables of the `UserInfo` struct are never actually utilized to provide any reward.

LowIncorrect Reset MechanismFixed

The `emergencyWithdraw` function is meant to "reset" a user's state and withdraw his deposited tokens. In this case, the `rewardPending` variable of the `user` struct is not zeroed out.

Contracts in scope

No deployed address is recorded for this audit.

The report names a repository or files. Open the report to see its scope.

Repository and files the report names (3)

  • contracts/SyrupBar.sol
  • contracts/SousChef.sol
  • contracts/MasterChef.sol

Part of PancakeSwap’s security record

PancakeSwap
Audits10 audits by 3 firmsLast audit Mar 2025, by Cyfrin.
Critical findingsNo open critical findingsAcross 10 reports.
IncidentIncident 11 Apr 2021Source: De.Fi incident database.
Open PancakeSwap’s security record

Security firm

CertiK

1,044 projects reviewed · 1,393 reports · latest May 2025

See CertiK’s audits

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