Skip to content

Latest commit

 

History

History
24 lines (16 loc) · 2.6 KB

RELEASE_EOSIO_1_0_6.md

File metadata and controls

24 lines (16 loc) · 2.6 KB

EOSIO 1.0.6 Release Notes

v1.0.6 버전 출시를 통해서 기존의 EOSIO를 기반으로 하는 블록체인의 관리자들에게 사전에 밝힌 중대한 보안 버그에 대한 업데이트를 제공합니다.

블록원(Block.one)은 안드레이 나데즈데(Andrei Nadejde)에게 이 취약점을 발견하고 보고한 점에 대해 감사드리고, EOSIO를 기반으로 하는 블록체인의 블록 프로듀서들에게 그들이 맡고 있는 블록체인을 보호하기 위한 신속한 대응과 노고에 감사드리고 싶습니다.

이슈 설명

이번 출시 버전은 다음 두 개의 이슈를 다룹니다.

  • nodeos 동작에서: 지연 트랜잭션(deferred transaction)이, 동일한 sender_id를 가지는 새로운 지연 트랜잭션에 의해 암시적으로 대체된 경우, 원래의 지연 트랜잭션을 저장하는 데 사용한 RAM이 사용자 자원 풀로 다시 해제되지 않습니다.
  • 시스템 컨트랙트 동작에서: refund 지연 트랜잭션을 저장하는 데 사용하는 RAM의 요금을 지불한 계정이 from (환급 금액을 빚진 당사자) 대신, 적합하지 않게도 receiver (지분참여한 자원으로부터 혜택을 받은 당사자)로 설정되었었습니다.

이 두 가지 이슈가 복합적으로 작용하여, 악의적인 사용자가 피해자 계정에 약간의 자원을 위임(delegate)하고 이어서 조금씩 반복적으로 지원을 위임해제(undelegate)하면 피해자 계정의 RAM 자원 풀이 고갈되는 상황이 발생합니다.

완화 방안 - Mitigations

  • v1.0.6 버전으로 구동되는 노드는 현재 대기중인 지연 트랜잭션을 암시적으로 덮어쓰게될 지연 트랜잭션을 예약하게 될 트랜잭션을 주관적으로 거절할 것입니다.
    • 대기중인 지연 트랜잭션이 존재하지 않는 경우에도, 이와 같은 필터를 피하기 위한 새로운 트랜잭션을 예약하기 전에, 이 기능을 사용하려고 하는 컨트랙트는 내장 함수 cancel_deferred를 안전하게 실행할 수 있습니다.
  • 시스템 컨트랙트는 위와 같은 명시적인 취소-후-예약 방식을 사용하도록 업데이트되었고, 그래서 undelegatebw의 기능은 변하지 않은 상태로 안전해졌습니다.
  • 시스템 컨트랙트는 지연된 환불 트랜잭션을 예약하는 데 관련되는 임시 RAM 사용료를 빚진 당사자에게 요금이 제대로 청구되도록 업데이트되었습니다.

번역 정보