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 متاحين دائما.