{"action":"closed","issue":{"url":"https://api.github.com/repos/ethereum/go-ethereum/issues/420","labels_url":"https://api.github.com/repos/ethereum/go-ethereum/issues/420/labels{/name}","comments_url":"https://api.github.com/repos/ethereum/go-ethereum/issues/420/comments","events_url":"https://api.github.com/repos/ethereum/go-ethereum/issues/420/events","html_url":"https://github.com/ethereum/go-ethereum/issues/420","id":59690519,"number":420,"title":"SEC-18 RLP decoder unsafe allocation","user":{"login":"Gustav-Simonsson","id":293096,"avatar_url":"https://avatars.githubusercontent.com/u/293096?v=3","gravatar_id":"","url":"https://api.github.com/users/Gustav-Simonsson","html_url":"https://github.com/Gustav-Simonsson","followers_url":"https://api.github.com/users/Gustav-Simonsson/followers","following_url":"https://api.github.com/users/Gustav-Simonsson/following{/other_user}","gists_url":"https://api.github.com/users/Gustav-Simonsson/gists{/gist_id}","starred_url":"https://api.github.com/users/Gustav-Simonsson/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Gustav-Simonsson/subscriptions","organizations_url":"https://api.github.com/users/Gustav-Simonsson/orgs","repos_url":"https://api.github.com/users/Gustav-Simonsson/repos","events_url":"https://api.github.com/users/Gustav-Simonsson/events{/privacy}","received_events_url":"https://api.github.com/users/Gustav-Simonsson/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/ethereum/go-ethereum/labels/vuln","name":"vuln","color":"e11d21"}],"state":"closed","locked":false,"assignee":{"login":"fjl","id":6915,"avatar_url":"https://avatars.githubusercontent.com/u/6915?v=3","gravatar_id":"","url":"https://api.github.com/users/fjl","html_url":"https://github.com/fjl","followers_url":"https://api.github.com/users/fjl/followers","following_url":"https://api.github.com/users/fjl/following{/other_user}","gists_url":"https://api.github.com/users/fjl/gists{/gist_id}","starred_url":"https://api.github.com/users/fjl/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fjl/subscriptions","organizations_url":"https://api.github.com/users/fjl/orgs","repos_url":"https://api.github.com/users/fjl/repos","events_url":"https://api.github.com/users/fjl/events{/privacy}","received_events_url":"https://api.github.com/users/fjl/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/ethereum/go-ethereum/milestones/5","html_url":"https://github.com/ethereum/go-ethereum/milestones/Frontier","labels_url":"https://api.github.com/repos/ethereum/go-ethereum/milestones/5/labels","id":1011600,"number":5,"title":"Frontier","description":"This is the Frontier milestone for the ethereum protocol soft release. This milestone is not set in stone. Over time issues will be added and removed.","creator":{"login":"obscuren","id":6264126,"avatar_url":"https://avatars.githubusercontent.com/u/6264126?v=3","gravatar_id":"","url":"https://api.github.com/users/obscuren","html_url":"https://github.com/obscuren","followers_url":"https://api.github.com/users/obscuren/followers","following_url":"https://api.github.com/users/obscuren/following{/other_user}","gists_url":"https://api.github.com/users/obscuren/gists{/gist_id}","starred_url":"https://api.github.com/users/obscuren/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/obscuren/subscriptions","organizations_url":"https://api.github.com/users/obscuren/orgs","repos_url":"https://api.github.com/users/obscuren/repos","events_url":"https://api.github.com/users/obscuren/events{/privacy}","received_events_url":"https://api.github.com/users/obscuren/received_events","type":"User","site_admin":false},"open_issues":12,"closed_issues":92,"state":"open","created_at":"2015-03-09T00:06:47Z","updated_at":"2015-04-13T18:56:20Z","due_on":null,"closed_at":null},"comments":3,"created_at":"2015-03-03T19:16:54Z","updated_at":"2015-04-13T18:56:20Z","closed_at":"2015-04-13T18:56:20Z","body":"An attacker can cause the Go client to allocate an arbitrary amount of memory by setting a length prefix in a byte string to a large value.\r\n\r\nThe RLP decoding function at https://github.com/ethereum/go-ethereum/blob/develop/rlp/decode.go#L28  looks only at the length prefix which allows for up to 256^8 sized strings; larger than available memory in computers today.\r\n\r\nFix: Add maximum size even for types which formally are unbounded. Modify the RLP decoder to reject length prefixes of larger value than can be needed for any byte array: https://github.com/ethereum/wiki/wiki/RLP#definition"}}