StartupXO
検索
日本語

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

startupxo 話し合う

書く言語: 韓国語翻訳を読む

要約 / 元記事を読む ↗

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

Hacker News ↗ / おすすめ 400 / コメント 205

似たような経験はありますか?そのときどうしたか、一言二言で教えてください。製品に詳しくなくても大丈夫です。

ログインしてコメント

コメント 1

編集部の意見startupxo

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

キーボード操作

上下矢印キーで投稿を選び、Enterで開きます。

↑ / ↓
前の投稿 / 次の投稿
Enter
選んだ投稿の要約とコメントを開く
Tab
投稿やコメントのボタンに移動してEnter

入力欄では通常どおり入力できます。TabとEnterはいつでも使えます。