알려진 버그 목록

알려진 버그 목록 (List of Known Bugs)

아래에서 Solidity 컴파일러의 알려진 보안 관련 버그 중 일부의 JSON 형식 목록을 찾을 수 있어요. 파일 자체는 GitHub 저장소에 호스팅되어 있어요. 목록은 버전 0.3.0까지 거슬러 올라가며, 그보다 앞선 버전에만 존재하는 것으로 알려진 버그는 나열되지 않아요. 컨트랙트 소스 검증 도구와 다른 컨트랙트 상호작용 도구는 아래 기준에 따라 이 목록을 참고해야 해요.

출처: 문서

본문

아래에서 Solidity 컴파일러의 알려진 보안 관련 버그 중 일부의 JSON 형식 목록을 찾을 수 있어요. 파일 자체는 GitHub 저장소에 호스팅되어 있어요. 목록은 버전 0.3.0까지 거슬러 올라가며, 그보다 앞선 버전에만 존재하는 것으로 알려진 버그는 나열되지 않아요.

bugs_by_version.json이라는 또 다른 파일이 있으며, 컴파일러의 특정 버전에 영향을 주는 버그를 확인하는 데 사용할 수 있어요.

컨트랙트 소스 검증 도구와 다른 컨트랙트 상호작용 도구는 다음 기준에 따라 이 목록을 참고해야 해요:

  • 릴리스 버전 대신 nightly 컴파일러 버전으로 컨트랙트가 컴파일됐다면 약간 의심스러워요. 이 목록은 미출시 또는 nightly 버전을 추적하지 않아요.
  • 컨트랙트가 생성된 시점에 가장 최신이 아니었던 버전으로 컴파일됐다면 약간 의심스러워요. 다른 컨트랙트에서 생성된 컨트랙트의 경우, 생성 체인을 따라 트랜잭션까지 거슬러 올라가 그 트랜잭션의 날짜를 생성 날짜로 사용해야 해요.
  • 컨트랙트가 알려진 버그를 포함하는 컴파일러로 컴파일됐고, 수정을 포함하는 더 새로운 컴파일러 버전이 이미 릴리스된 시점에 생성됐다면 매우 의심스러워요.

아래 알려진 버그 JSON 파일은 객체의 배열이며, 각 객체가 버그 하나에 해당하고 다음 키를 가져요:

uid SOL-<year>-<number> 형태로 버그에 부여된 고유 식별자. 같은 uid를 가진 여러 항목이 존재할 수 있어요. 이는 여러 버전 범위가 같은 버그의 영향을 받는다는 뜻이에요.

name 버그에 부여된 고유 이름.

summary 버그에 대한 짧은 설명.

description 버그에 대한 상세 설명.

link 더 자세한 정보가 있는 웹사이트의 URL, 선택사항.

introduced 버그를 포함한 첫 번째 게시 컴파일러 버전, 선택사항.

fixed 더 이상 버그를 포함하지 않는 첫 번째 게시 컴파일러 버전.

publish 버그가 공개적으로 알려진 날짜, 선택사항.

severity 버그의 심각도: very low, low, medium, high. 컨트랙트 테스트에서의 발견 가능성, 발생 가능성, 익스플로잇에 의한 잠재적 피해를 고려해요.

conditions 버그를 트리거하기 위해 충족해야 하는 조건. 다음 키를 사용할 수 있어요: optimizer(불리언 값, 버그를 활성화하려면 최적화 프로그램을 켜야 한다는 뜻), evmVersion(어떤 EVM 버전 컴파일러 설정이 버그를 트리거하는지 나타내는 문자열. 문자열은 비교 연산자를 포함할 수 있어요. 예를 들어 ">=constantinople"은 EVM 버전이 constantinople 이상으로 설정되면 버그가 존재한다는 뜻). 조건이 주어지지 않으면 버그가 존재한다고 가정해요.

check 이 필드는 스마트 컨트랙트가 버그를 포함하는지 보고하는 다양한 검사를 담아요. 첫 번째 유형의 검사는 버그가 존재할 때 소스 코드에 대해 일치시킬 JavaScript 정규식("source-regex")이에요. 일치가 없으면 버그가 매우 확실히 존재하지 않아요. 일치하면 버그가 존재할 수 있어요. 정확도를 높이려면 주석을 제거한 소스 코드에 검사를 적용해야 해요.

두 번째 유형의 검사는 Solidity 프로그램의 컴팩트 AST에 대해 확인할 패턴("ast-compact-json-path")이에요. 지정된 검색 질의는 JsonPath 표현식이에요. Solidity AST의 경로 하나 이상이 질의와 일치하면 버그가 있을 가능성이 높아요.

다음은 알려진 버그의 JSON 목록이에요(원문 그대로 보존):

[{ "uid" : "SOL-2026-6", "name" : "MisorderedNamedParametersInRequireWithCustomErrors" }]

참고 (Note)

위 인용된 목록은 실시간으로 갱신되는 GitHub 저장소의 버그 목록을 요약한 것입니다. 전체·최신 버그 목록(uid, name, summary, description, link, introduced, fixed, publish, severity, conditions, check 필드를 모두 포함)은 아래 원본 문서와 GitHub 저장소를 참고하세요.

더 알아보기 (Learn more)