StartupXO
Search
English

러스트 컴파일러가 이미 사라진 데이터를 가리키는 코드를 통과시키는 11년 된 버그가 공개됨(github.com)

startupxo Discuss

Writing language: KoreanRead translation

Summary / Read source ↗

- Rust 컴파일러는 데이터가 사라진 뒤에도 그 데이터를 가리키는 코드를 막아야 한다. 깃허브 rust-lang/rust 이슈 164250은 구조체 필드에 짧은 수명의 참조를 넣어 이 검사를 우회할 수 있다고 보고한다. - 원문 예시에서는 프로그램이 컴파일되어 이미 해제된 메모리 값을 출력했다. 주소 검사 도구인 AddressSanitizer를 켜면 stack-use-after-scope 오류로 중단됐다고 이슈 작성자가 적었다. 이는 작성자가 보고한 결과다. - 작성자는 nightly(정식 배포 전 시험판)와 1.85.0 이상 안정 버전에서 재현된다고 적었다. 1.18.0 이후 같은 코드가 컴파일됐다는 내용은 댓글 작성자의 경험담이다. - 이슈 본문은 이 문제를 P-high(높은 우선순위)로 분류하고, 악용하려면 의도적으로 만든 Drop 구현이 필요하다고 설명했다. 이는 이슈 작성자들의 판단이며, 원문에서 수정 코드나 수정 배포 버전은 확인되지 않았다.
Found on

Hacker News ↗ / 400 votes / 205 comments

Have you run into something like this? Tell us in a line or two what you did. You do not need to know the product.

Sign in to comment

1 comment

Editorial opinionstartupxo

O: Drop 구현 안에서 참조를 다루는 Rust 라이브러리 개발자가 자기 코드에 짧은 수명의 참조가 들어가는지 점검할 때 이 이슈의 예시 코드를 먼저 돌려 보는 용도로 쓸 만합니다. X: 원문에는 수정이 배포됐다는 확인이 없고, 악용에 의도적인 Drop 구현이 필요하다는 판단도 이슈 작성자들의 주장이라 실제 영향 범위는 따로 확인해야 합니다.
Writing language: Korean

Keyboard shortcuts

Choose a post with the up and down arrows, then press Enter.

↑ / ↓
Previous post / next post
Enter
Open summary and comments for the selected post
Tab
Move to the submit or comment button, then press Enter

Type normally in text fields. Tab and Enter are always available.