mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Typo and more explanation.
This commit is contained in:
parent
a7e605a7a1
commit
feacfcfd20
@ -27,7 +27,7 @@
|
||||
"fixed": "0.4.4"
|
||||
},
|
||||
{
|
||||
"name": "StaleKnowledegAboutSHA3",
|
||||
"name": "StaleKnowledgeAboutSHA3",
|
||||
"summary": "The optimizer did not properly reset its knowledge about SHA3 operations resulting in some hashes (also used for storage variable positions) not being calculated correctly.",
|
||||
"description": "The optimizer performs symbolic execution in order to save re-evaluating expressions whose value is already known. This knowledge was not properly reset across control flow paths and thus the optimizer sometimes thought that the result of a SHA3 operation is already present on the stack. This could result in data corruption by accessing the wrong storage slot.",
|
||||
"severity": "low/medium",
|
||||
|
@ -6,12 +6,32 @@
|
||||
List of Known Bugs
|
||||
##################
|
||||
|
||||
Below, you can find a JSON-formatted list of all known security-relevant bugs in the
|
||||
Below, you can find a JSON-formatted list of known security-relevant bugs in the
|
||||
Solidity compiler. The file itself is hosted in the `Github repository
|
||||
<https://github.com/ethereum/solidity/blob/develop/docs/bugs.json>`_.
|
||||
The list stretches back as far as version 0.3.0, bugs known to be present only
|
||||
in previous versions are not listed. The JSON file is an array of objects, one for
|
||||
each bug, with the following keys:
|
||||
in versions preceding that are not listed.
|
||||
|
||||
There is another file called `bugs_by_version.json
|
||||
<https://github.com/ethereum/solidity/blob/develop/docs/bugs_by_version.json>`_,
|
||||
which can be used to check which bugs affect a specific version of the compiler.
|
||||
|
||||
Contract source verification tools and also other tools interacting with
|
||||
contracts should consult this list according to the following criteria:
|
||||
|
||||
- It is mildly suspicious if a contract was compiled with a nightly
|
||||
compiler version instead of a released version. These compiler versions
|
||||
might contain undocumented bugs.
|
||||
- It is also mildly suspicious if a contract was compiled with a version that was
|
||||
not the most recent at the time the contract was created. For contracts
|
||||
created from other contracts, you have to follow the creation chain
|
||||
back to a transaction and use the date of that transaction as creation date.
|
||||
- It is highly suspicious if a contract was compiled with a compiler that
|
||||
contains a known bug and the contract was created at a time where a newer
|
||||
compiler version containing a fix was already released.
|
||||
|
||||
The JSON file of known bugs below is an array of objects, one for each bug,
|
||||
with the following keys:
|
||||
|
||||
name
|
||||
Unique name given to the bug
|
||||
|
@ -2,7 +2,7 @@
|
||||
"0.1.0": {
|
||||
"bugs": [
|
||||
"IdentityPrecompileReturnIgnored",
|
||||
"StaleKnowledegAboutSHA3",
|
||||
"StaleKnowledgeAboutSHA3",
|
||||
"SendFailsForZeroEther",
|
||||
"DynamicAllocationInfiniteLoop",
|
||||
"ClearStateOnCodePathJoin",
|
||||
@ -15,7 +15,7 @@
|
||||
"0.1.1": {
|
||||
"bugs": [
|
||||
"IdentityPrecompileReturnIgnored",
|
||||
"StaleKnowledegAboutSHA3",
|
||||
"StaleKnowledgeAboutSHA3",
|
||||
"SendFailsForZeroEther",
|
||||
"DynamicAllocationInfiniteLoop",
|
||||
"ClearStateOnCodePathJoin",
|
||||
@ -28,7 +28,7 @@
|
||||
"0.1.2": {
|
||||
"bugs": [
|
||||
"IdentityPrecompileReturnIgnored",
|
||||
"StaleKnowledegAboutSHA3",
|
||||
"StaleKnowledgeAboutSHA3",
|
||||
"SendFailsForZeroEther",
|
||||
"DynamicAllocationInfiniteLoop",
|
||||
"ClearStateOnCodePathJoin",
|
||||
@ -41,7 +41,7 @@
|
||||
"0.1.3": {
|
||||
"bugs": [
|
||||
"IdentityPrecompileReturnIgnored",
|
||||
"StaleKnowledegAboutSHA3",
|
||||
"StaleKnowledgeAboutSHA3",
|
||||
"SendFailsForZeroEther",
|
||||
"DynamicAllocationInfiniteLoop",
|
||||
"ClearStateOnCodePathJoin",
|
||||
@ -54,7 +54,7 @@
|
||||
"0.1.4": {
|
||||
"bugs": [
|
||||
"IdentityPrecompileReturnIgnored",
|
||||
"StaleKnowledegAboutSHA3",
|
||||
"StaleKnowledgeAboutSHA3",
|
||||
"SendFailsForZeroEther",
|
||||
"DynamicAllocationInfiniteLoop",
|
||||
"ClearStateOnCodePathJoin",
|
||||
@ -67,7 +67,7 @@
|
||||
"0.1.5": {
|
||||
"bugs": [
|
||||
"IdentityPrecompileReturnIgnored",
|
||||
"StaleKnowledegAboutSHA3",
|
||||
"StaleKnowledgeAboutSHA3",
|
||||
"SendFailsForZeroEther",
|
||||
"DynamicAllocationInfiniteLoop",
|
||||
"ClearStateOnCodePathJoin",
|
||||
@ -81,7 +81,7 @@
|
||||
"bugs": [
|
||||
"IdentityPrecompileReturnIgnored",
|
||||
"HighOrderByteCleanStorage",
|
||||
"StaleKnowledegAboutSHA3",
|
||||
"StaleKnowledgeAboutSHA3",
|
||||
"SendFailsForZeroEther",
|
||||
"DynamicAllocationInfiniteLoop",
|
||||
"ClearStateOnCodePathJoin",
|
||||
@ -95,7 +95,7 @@
|
||||
"bugs": [
|
||||
"IdentityPrecompileReturnIgnored",
|
||||
"HighOrderByteCleanStorage",
|
||||
"StaleKnowledegAboutSHA3",
|
||||
"StaleKnowledgeAboutSHA3",
|
||||
"SendFailsForZeroEther",
|
||||
"DynamicAllocationInfiniteLoop",
|
||||
"ClearStateOnCodePathJoin",
|
||||
@ -109,7 +109,7 @@
|
||||
"bugs": [
|
||||
"IdentityPrecompileReturnIgnored",
|
||||
"HighOrderByteCleanStorage",
|
||||
"StaleKnowledegAboutSHA3",
|
||||
"StaleKnowledgeAboutSHA3",
|
||||
"SendFailsForZeroEther",
|
||||
"DynamicAllocationInfiniteLoop",
|
||||
"ClearStateOnCodePathJoin",
|
||||
@ -123,7 +123,7 @@
|
||||
"bugs": [
|
||||
"IdentityPrecompileReturnIgnored",
|
||||
"HighOrderByteCleanStorage",
|
||||
"StaleKnowledegAboutSHA3",
|
||||
"StaleKnowledgeAboutSHA3",
|
||||
"SendFailsForZeroEther",
|
||||
"DynamicAllocationInfiniteLoop",
|
||||
"ClearStateOnCodePathJoin",
|
||||
@ -137,7 +137,7 @@
|
||||
"bugs": [
|
||||
"IdentityPrecompileReturnIgnored",
|
||||
"HighOrderByteCleanStorage",
|
||||
"StaleKnowledegAboutSHA3",
|
||||
"StaleKnowledgeAboutSHA3",
|
||||
"SendFailsForZeroEther",
|
||||
"DynamicAllocationInfiniteLoop",
|
||||
"ClearStateOnCodePathJoin",
|
||||
@ -151,7 +151,7 @@
|
||||
"bugs": [
|
||||
"IdentityPrecompileReturnIgnored",
|
||||
"HighOrderByteCleanStorage",
|
||||
"StaleKnowledegAboutSHA3",
|
||||
"StaleKnowledgeAboutSHA3",
|
||||
"SendFailsForZeroEther",
|
||||
"DynamicAllocationInfiniteLoop",
|
||||
"ClearStateOnCodePathJoin",
|
||||
@ -164,7 +164,7 @@
|
||||
"bugs": [
|
||||
"IdentityPrecompileReturnIgnored",
|
||||
"HighOrderByteCleanStorage",
|
||||
"StaleKnowledegAboutSHA3",
|
||||
"StaleKnowledgeAboutSHA3",
|
||||
"SendFailsForZeroEther",
|
||||
"DynamicAllocationInfiniteLoop",
|
||||
"ClearStateOnCodePathJoin",
|
||||
@ -176,7 +176,7 @@
|
||||
"bugs": [
|
||||
"IdentityPrecompileReturnIgnored",
|
||||
"HighOrderByteCleanStorage",
|
||||
"StaleKnowledegAboutSHA3",
|
||||
"StaleKnowledgeAboutSHA3",
|
||||
"SendFailsForZeroEther",
|
||||
"DynamicAllocationInfiniteLoop",
|
||||
"ClearStateOnCodePathJoin",
|
||||
@ -188,7 +188,7 @@
|
||||
"bugs": [
|
||||
"IdentityPrecompileReturnIgnored",
|
||||
"HighOrderByteCleanStorage",
|
||||
"StaleKnowledegAboutSHA3",
|
||||
"StaleKnowledgeAboutSHA3",
|
||||
"SendFailsForZeroEther",
|
||||
"DynamicAllocationInfiniteLoop",
|
||||
"ClearStateOnCodePathJoin"
|
||||
@ -199,7 +199,7 @@
|
||||
"bugs": [
|
||||
"IdentityPrecompileReturnIgnored",
|
||||
"HighOrderByteCleanStorage",
|
||||
"StaleKnowledegAboutSHA3",
|
||||
"StaleKnowledgeAboutSHA3",
|
||||
"SendFailsForZeroEther",
|
||||
"DynamicAllocationInfiniteLoop",
|
||||
"ClearStateOnCodePathJoin"
|
||||
@ -210,7 +210,7 @@
|
||||
"bugs": [
|
||||
"IdentityPrecompileReturnIgnored",
|
||||
"HighOrderByteCleanStorage",
|
||||
"StaleKnowledegAboutSHA3",
|
||||
"StaleKnowledgeAboutSHA3",
|
||||
"SendFailsForZeroEther",
|
||||
"DynamicAllocationInfiniteLoop",
|
||||
"ClearStateOnCodePathJoin"
|
||||
@ -221,7 +221,7 @@
|
||||
"bugs": [
|
||||
"IdentityPrecompileReturnIgnored",
|
||||
"HighOrderByteCleanStorage",
|
||||
"StaleKnowledegAboutSHA3",
|
||||
"StaleKnowledgeAboutSHA3",
|
||||
"SendFailsForZeroEther"
|
||||
],
|
||||
"released": "2016-08-10"
|
||||
@ -230,7 +230,7 @@
|
||||
"bugs": [
|
||||
"IdentityPrecompileReturnIgnored",
|
||||
"HighOrderByteCleanStorage",
|
||||
"StaleKnowledegAboutSHA3",
|
||||
"StaleKnowledgeAboutSHA3",
|
||||
"LibrariesNotCallableFromPayableFunctions"
|
||||
],
|
||||
"released": "2016-09-08"
|
||||
@ -239,7 +239,7 @@
|
||||
"bugs": [
|
||||
"IdentityPrecompileReturnIgnored",
|
||||
"HighOrderByteCleanStorage",
|
||||
"StaleKnowledegAboutSHA3",
|
||||
"StaleKnowledgeAboutSHA3",
|
||||
"LibrariesNotCallableFromPayableFunctions"
|
||||
],
|
||||
"released": "2016-09-09"
|
||||
@ -252,7 +252,7 @@
|
||||
"bugs": [
|
||||
"IdentityPrecompileReturnIgnored",
|
||||
"HighOrderByteCleanStorage",
|
||||
"StaleKnowledegAboutSHA3"
|
||||
"StaleKnowledgeAboutSHA3"
|
||||
],
|
||||
"released": "2016-09-17"
|
||||
},
|
||||
|
Loading…
Reference in New Issue
Block a user