Smart Contract Code
Report ID
#19172
Target
Report type
Smart Contract
Impacts
The Code doesn't execute how it should, and it is missing some lines of code. (Out of scope)
Has PoC?
Yes
Bug Description
The code in the Smart Contract does not work. This is where the code is wrong. [{ "resource": "Untitled-1", "owner": "typescript", "code": "1434", "severity": 8, "message": "Unexpected keyword or identifier.", "source": "ts", "startLineNumber": 3, "startColumn": 1, "endLineNumber": 3, "endColumn": 7 },{ "resource": "Untitled-1", "owner": "typescript", "code": "1434", "severity": 8, "message": "Unexpected keyword or identifier.", "source": "ts", "startLineNumber": 3, "startColumn": 8, "endLineNumber": 3, "endColumn": 16 },{ "resource": "Untitled-1", "owner": "typescript", "code": "1005", "severity": 8, "message": "';' expected.", "source": "ts", "startLineNumber": 3, "startColumn": 20, "endLineNumber": 3, "endColumn": 22 },{ "resource": "Untitled-1", "owner": "typescript", "code": "1434", "severity": 8, "message": "Unexpected keyword or identifier.", "source": "ts", "startLineNumber": 4, "startColumn": 1, "endLineNumber": 4, "endColumn": 7 },{ "resource": "Untitled-1", "owner": "typescript", "code": "1434", "severity": 8, "message": "Unexpected keyword or identifier.", "source": "ts", "startLineNumber": 4, "startColumn": 8, "endLineNumber": 4, "endColumn": 20 },{ "resource": "Untitled-1", "owner": "typescript", "code": "1434", "severity": 8, "message": "Unexpected keyword or identifier.", "source": "ts", "startLineNumber": 26, "startColumn": 1, "endLineNumber": 26, "endColumn": 9 },{ "resource": "Untitled-1", "owner": "typescript", "code": "1434", "severity": 8, "message": "Unexpected keyword or identifier.", "source": "ts", "startLineNumber": 26, "startColumn": 10, "endLineNumber": 26, "endColumn": 24 },{ "resource": "Untitled-1", "owner": "typescript", "code": "1228", "severity": 8, "message": "A type predicate is only allowed in return type position for functions and methods.", "source": "ts", "startLineNumber": 26, "startColumn": 25, "endLineNumber": 26, "endColumn": 39 },{ "resource": "Untitled-1", "owner": "typescript", "code": "1005", "severity": 8, "message": "';' expected.", "source": "ts", "startLineNumber": 26, "startColumn": 70, "endLineNumber": 26, "endColumn": 71 },{ "resource": "Untitled-1", "owner": "typescript", "code": "1434", "severity": 8, "message": "Unexpected keyword or identifier.", "source": "ts", "startLineNumber": 27, "startColumn": 5, "endLineNumber": 27, "endColumn": 12 },{ "resource": "Untitled-1", "owner": "typescript", "code": "1128", "severity": 8, "message": "Declaration or statement expected.", "source": "ts", "startLineNumber": 27, "startColumn": 13, "endLineNumber": 27, "endColumn": 19 },{ "resource": "Untitled-1", "owner": "typescript", "code": "1435", "severity": 8, "message": "Unknown keyword or identifier. Did you mean 'const ant'?", "source": "ts", "startLineNumber": 27, "startColumn": 20, "endLineNumber": 27, "endColumn": 28 },{ "resource": "Untitled-1", "owner": "typescript", "code": "1005", "severity": 8, "message": "',' expected.", "source": "ts", "startLineNumber": 34, "startColumn": 25, "endLineNumber": 34, "endColumn": 30 },{ "resource": "Untitled-1", "owner": "typescript", "code": "1005", "severity": 8, "message": "',' expected.", "source": "ts", "startLineNumber": 34, "startColumn": 39, "endLineNumber": 34, "endColumn": 45 },{ "resource": "Untitled-1", "owner": "typescript", "code": "1005", "severity": 8, "message": "',' expected.", "source": "ts", "startLineNumber": 34, "startColumn": 46, "endLineNumber": 34, "endColumn": 50 },{ "resource": "Untitled-1", "owner": "typescript", "code": "1005", "severity": 8, "message": "',' expected.", "source": "ts", "startLineNumber": 34, "startColumn": 59, "endLineNumber": 34, "endColumn": 65 },{ "resource": "Untitled-1", "owner": "typescript", "code": "1005", "severity": 8, "message": "',' expected.", "source": "ts", "startLineNumber": 34, "startColumn": 66, "endLineNumber": 34, "endColumn": 72 },{ "resource": "Untitled-1", "owner": "typescript", "code": "1005", "severity": 8, "message": "',' expected.", "source": "ts", "startLineNumber": 51, "startColumn": 27, "endLineNumber": 51, "endColumn": 29 },{ "resource": "Untitled-1", "owner": "typescript", "code": "1005", "severity": 8, "message": "',' expected.", "source": "ts", "startLineNumber": 51, "startColumn": 39, "endLineNumber": 51, "endColumn": 45 },{ "resource": "Untitled-1", "owner": "typescript", "code": "1144", "severity": 8, "message": "'{' or ';' expected.", "source": "ts", "startLineNumber": 51, "startColumn": 47, "endLineNumber": 51, "endColumn": 53 },{ "resource": "Untitled-1", "owner": "typescript", "code": "1434", "severity": 8, "message": "Unexpected keyword or identifier.", "source": "ts", "startLineNumber": 51, "startColumn": 54, "endLineNumber": 51, "endColumn": 61 },{ "resource": "Untitled-1", "owner": "typescript", "code": "1144", "severity": 8, "message": "'{' or ';' expected.", "source": "ts", "startLineNumber": 60, "startColumn": 25, "endLineNumber": 60, "endColumn": 31 },{ "resource": "Untitled-1", "owner": "typescript", "code": "1434", "severity": 8, "message": "Unexpected keyword or identifier.", "source": "ts", "startLineNumber": 60, "startColumn": 32, "endLineNumber": 60, "endColumn": 36 },{ "resource": "Untitled-1", "owner": "typescript", "code": "1434", "severity": 8, "message": "Unexpected keyword or identifier.", "source": "ts", "startLineNumber": 60, "startColumn": 37, "endLineNumber": 60, "endColumn": 44 },{ "resource": "Untitled-1", "owner": "typescript", "code": "1434", "severity": 8, "message": "Unexpected keyword or identifier.", "source": "ts", "startLineNumber": 60, "startColumn": 45, "endLineNumber": 60, "endColumn": 53 },{ "resource": "Untitled-1", "owner": "typescript", "code": "1005", "severity": 8, "message": "';' expected.", "source": "ts", "startLineNumber": 60, "startColumn": 70, "endLineNumber": 60, "endColumn": 71 }]
Impact
It makes it so the smart contract doesn't work correctly.
Risk Breakdown
Difficulty to Exploit: Medium Weakness: The code in the smart contract doesn't work. CVSS2 Score: Critical
Recommendation
Here is what the correct code should be. [{ "resource": "Untitled-1", "owner": "typescript", "code": "1434", "severity": 8, "message": "Unexpected keyword or identifier.", "source": "ts", "startLineNumber": 3, "startColumn": 1, "endLineNumber": 3, "endColumn": 7 },{ "resource": "Untitled-1", "owner": "typescript", "code": "1434", "severity": 8, "message": "Unexpected keyword or identifier.", "source": "ts", "startLineNumber": 3, "startColumn": 8, "endLineNumber": 3, "endColumn": 16 },{ "resource": "Untitled-1", "owner": "typescript", "code": "1005", "severity": 8, "message": "';' expected.", "source": "ts", "startLineNumber": 3, "startColumn": 20, "endLineNumber": 3, "endColumn": 22 },{ "resource": "Untitled-1", "owner": "typescript", "code": "1434", "severity": 8, "message": "Unexpected keyword or identifier.", "source": "ts", "startLineNumber": 4, "startColumn": 1, "endLineNumber": 4, "endColumn": 7 },{ "resource": "Untitled-1", "owner": "typescript", "code": "1434", "severity": 8, "message": "Unexpected keyword or identifier.", "source": "ts", "startLineNumber": 4, "startColumn": 8, "endLineNumber": 4, "endColumn": 20 },{ "resource": "Untitled-1", "owner": "typescript", "code": "1434", "severity": 8, "message": "Unexpected keyword or identifier.", "source": "ts", "startLineNumber": 26, "startColumn": 1, "endLineNumber": 26, "endColumn": 9 },{ "resource": "Untitled-1", "owner": "typescript", "code": "1434", "severity": 8, "message": "Unexpected keyword or identifier.", "source": "ts", "startLineNumber": 26, "startColumn": 10, "endLineNumber": 26, "endColumn": 24 },{ "resource": "Untitled-1", "owner": "typescript", "code": "1228", "severity": 8, "message": "A type predicate is only allowed in return type position for functions and methods.", "source": "ts", "startLineNumber": 26, "startColumn": 25, "endLineNumber": 26, "endColumn": 39 },{ "resource": "Untitled-1", "owner": "typescript", "code": "1005", "severity": 8, "message": "';' expected.", "source": "ts", "startLineNumber": 26, "startColumn": 70, "endLineNumber": 26, "endColumn": 71 },{ "resource": "Untitled-1", "owner": "typescript", "code": "1434", "severity": 8, "message": "Unexpected keyword or identifier.", "source": "ts", "startLineNumber": 27, "startColumn": 5, "endLineNumber": 27, "endColumn": 12 },{ "resource": "Untitled-1", "owner": "typescript", "code": "1128", "severity": 8, "message": "Declaration or statement expected.", "source": "ts", "startLineNumber": 27, "startColumn": 13, "endLineNumber": 27, "endColumn": 19 },{ "resource": "Untitled-1", "owner": "typescript", "code": "1435", "severity": 8, "message": "Unknown keyword or identifier. Did you mean 'const ant'?", "source": "ts", "startLineNumber": 27, "startColumn": 20, "endLineNumber": 27, "endColumn": 28 },{ "resource": "Untitled-1", "owner": "typescript", "code": "1005", "severity": 8, "message": "',' expected.", "source": "ts", "startLineNumber": 34, "startColumn": 25, "endLineNumber": 34, "endColumn": 30 },{ "resource": "Untitled-1", "owner": "typescript", "code": "1005", "severity": 8, "message": "',' expected.", "source": "ts", "startLineNumber": 34, "startColumn": 39, "endLineNumber": 34, "endColumn": 45 },{ "resource": "Untitled-1", "owner": "typescript", "code": "1005", "severity": 8, "message": "',' expected.", "source": "ts", "startLineNumber": 34, "startColumn": 46, "endLineNumber": 34, "endColumn": 50 },{ "resource": "Untitled-1", "owner": "typescript", "code": "1005", "severity": 8, "message": "',' expected.", "source": "ts", "startLineNumber": 34, "startColumn": 59, "endLineNumber": 34, "endColumn": 65 },{ "resource": "Untitled-1", "owner": "typescript", "code": "1005", "severity": 8, "message": "',' expected.", "source": "ts", "startLineNumber": 34, "startColumn": 66, "endLineNumber": 34, "endColumn": 72 },{ "resource": "Untitled-1", "owner": "typescript", "code": "1005", "severity": 8, "message": "',' expected.", "source": "ts", "startLineNumber": 51, "startColumn": 27, "endLineNumber": 51, "endColumn": 29 },{ "resource": "Untitled-1", "owner": "typescript", "code": "1005", "severity": 8, "message": "',' expected.", "source": "ts", "startLineNumber": 51, "startColumn": 39, "endLineNumber": 51, "endColumn": 45 },{ "resource": "Untitled-1", "owner": "typescript", "code": "1144", "severity": 8, "message": "'{' or ';' expected.", "source": "ts", "startLineNumber": 51, "startColumn": 47, "endLineNumber": 51, "endColumn": 53 },{ "resource": "Untitled-1", "owner": "typescript", "code": "1434", "severity": 8, "message": "Unexpected keyword or identifier.", "source": "ts", "startLineNumber": 51, "startColumn": 54, "endLineNumber": 51, "endColumn": 61 },{ "resource": "Untitled-1", "owner": "typescript", "code": "1144", "severity": 8, "message": "'{' or ';' expected.", "source": "ts", "startLineNumber": 60, "startColumn": 25, "endLineNumber": 60, "endColumn": 31 },{ "resource": "Untitled-1", "owner": "typescript", "code": "1434", "severity": 8, "message": "Unexpected keyword or identifier.", "source": "ts", "startLineNumber": 60, "startColumn": 32, "endLineNumber": 60, "endColumn": 36 },{ "resource": "Untitled-1", "owner": "typescript", "code": "1434", "severity": 8, "message": "Unexpected keyword or identifier.", "source": "ts", "startLineNumber": 60, "startColumn": 37, "endLineNumber": 60, "endColumn": 44 },{ "resource": "Untitled-1", "owner": "typescript", "code": "1434", "severity": 8, "message": "Unexpected keyword or identifier.", "source": "ts", "startLineNumber": 60, "startColumn": 45, "endLineNumber": 60, "endColumn": 53 },{ "resource": "Untitled-1", "owner": "typescript", "code": "1005", "severity": 8, "message": "';' expected.", "source": "ts", "startLineNumber": 60, "startColumn": 70, "endLineNumber": 60, "endColumn": 71 }]
Proof of concept
Get the code from the smart contract on etherscan titled "Contract Source Code (Solidity Standard Json-Input format)". Then put the code into visual code and analyse it.
Immunefi Response
Immunefi has reviewed this vulnerability report and decided to close since being out of scope for Beanstalk bug bounty program.
- claimed impact by the whitehat
is not in scope
for the bug bounty program- claimed asset by the whitehat is in scope for the bug bounty program
- PoC has been submitted to the project
- claimed severity is in scope for the bug bounty program
Since this bug bounty program does not require Immunefi's triaging, note that Immunefi does not:
- check if whitehat's claims are factually correct
- check PoC to understand the validity
- assess the submission's severity
These activities are the project's responsibility.
The project will now be automatically subscribed and receive a report of the closed submission and can evaluate if they are interested in re-opening it. However, note that they are not under any obligation to do so.