{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2024,9,20]],"date-time":"2024-09-20T17:06:30Z","timestamp":1726851990290},"publisher-location":"New York, NY, USA","reference-count":76,"publisher":"ACM","funder":[{"DOI":"10.13039\/501100001809","name":"National Natural Science Foundation of China","doi-asserted-by":"publisher","award":["62372304"],"id":[{"id":"10.13039\/501100001809","id-type":"DOI","asserted-by":"publisher"}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":[],"published-print":{"date-parts":[[2024,4,12]]},"DOI":"10.1145\/3597503.3639136","type":"proceedings-article","created":{"date-parts":[[2024,4,12]],"date-time":"2024-04-12T16:43:26Z","timestamp":1712940206000},"page":"1-13","update-policy":"http:\/\/dx.doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":1,"title":["Is unsafe an Achilles' Heel? A Comprehensive Study of Safety Requirements in Unsafe Rust Programming"],"prefix":"10.1145","author":[{"ORCID":"http:\/\/orcid.org\/0000-0001-5117-5829","authenticated-orcid":false,"given":"Mohan","family":"Cui","sequence":"first","affiliation":[{"name":"Fudan University, Shanghai, China"}]},{"ORCID":"http:\/\/orcid.org\/0000-0003-2297-5602","authenticated-orcid":false,"given":"Shuran","family":"Sun","sequence":"additional","affiliation":[{"name":"Fudan University, Shanghai, China"}]},{"ORCID":"http:\/\/orcid.org\/0000-0003-2465-8627","authenticated-orcid":false,"given":"Hui","family":"Xu","sequence":"additional","affiliation":[{"name":"Fudan University, Shanghai, China"}]},{"ORCID":"http:\/\/orcid.org\/0000-0002-9184-7383","authenticated-orcid":false,"given":"Yangfan","family":"Zhou","sequence":"additional","affiliation":[{"name":"Fudan University, Shanghai, China"}]}],"member":"320","published-online":{"date-parts":[[2024,4,12]]},"reference":[{"key":"e_1_3_2_1_1_1","doi-asserted-by":"publisher","DOI":"10.1145\/3334480.3383069"},{"volume-title":"Non aligned u32 read in Chacha20 encryption and decryption","year":"2021","key":"e_1_3_2_1_2_1","unstructured":"RUSTSEC-2021-0121: Non aligned u32 read in Chacha20 encryption and decryption. 2021. https:\/\/rustsec.org\/advisories\/RUSTSEC-2021-0121.html (Accessed on 01\/11\/2024)."},{"key":"e_1_3_2_1_3_1","unstructured":"arXiv. 2023. rCanary: Detecting Memory Leaks Across Semi-automated Memory Management Boundary in Rust. In arXiv."},{"key":"e_1_3_2_1_4_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-031-06773-0_5"},{"key":"e_1_3_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1145\/3428204"},{"key":"e_1_3_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/3477132.3483570"},{"key":"e_1_3_2_1_7_1","doi-asserted-by":"publisher","DOI":"10.1007\/11575467_5"},{"volume-title":"MIRAI: Rust mid-level IR Abstract Interpreter. https:\/\/github.com\/facebookexperimental\/MIRAI (Accessed on 01\/11\/2024).","year":"2024","author":"Contributors MIRAI","key":"e_1_3_2_1_8_1","unstructured":"MIRAI Contributors. 2024. MIRAI: Rust mid-level IR Abstract Interpreter. https:\/\/github.com\/facebookexperimental\/MIRAI (Accessed on 01\/11\/2024)."},{"volume-title":"Miri: An interpreter for Rust's mid-level intermediate representation. https:\/\/github.com\/rust-lang\/miri (Accessed on 01\/11\/2024).","year":"2024","author":"Contributors Miri","key":"e_1_3_2_1_9_1","unstructured":"Miri Contributors. 2024. Miri: An interpreter for Rust's mid-level intermediate representation. https:\/\/github.com\/rust-lang\/miri (Accessed on 01\/11\/2024)."},{"key":"e_1_3_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.1145\/3519939.3523445"},{"key":"e_1_3_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.1145\/3542948"},{"volume-title":"CVE-2017-20004: In the standard library in Rust before 1.19.0, there is a synchronization problem in the MutexGuard object. MutexGuards can be used across threads with any types","year":"2017","key":"e_1_3_2_1_12_1","unstructured":"allowing for memory safety issues through race conditions. CVE-2017-20004: In the standard library in Rust before 1.19.0, there is a synchronization problem in the MutexGuard object. MutexGuards can be used across threads with any types. 2017. https:\/\/www.cve.org\/CVERecord?id=CVE-2017-20004 (Accessed on 01\/11\/2024)."},{"volume-title":"CVE-2021-45709: In the standard library in Rust before 1.19.0, there is a synchronization problemin the MutexGuard object. MutexGuards can be used across threads with any types","year":"2021","key":"e_1_3_2_1_13_1","unstructured":"allowing for memory safety issues through race conditions. CVE-2021-45709: In the standard library in Rust before 1.19.0, there is a synchronization problemin the MutexGuard object. MutexGuards can be used across threads with any types. 2021. https:\/\/www.cve.org\/CVERecord?id=CVE-2021-45709 (Accessed on 01\/11\/2024)."},{"volume-title":"Wasmtime's implementation of managing per-instance state, and contains LLVM-level undefined behavior. memories.","year":"2023","key":"e_1_3_2_1_14_1","unstructured":"7.0.1 CVE-2023-30624: Wasmtime is a standalone runtime for WebAssembly. Prior to versions 6.0.2, such as tables 8.0.1, Wasmtime's implementation of managing per-instance state, and contains LLVM-level undefined behavior. memories. 2023. https:\/\/www.cve.org\/CVERecord?id=CVE-2023-30624 (Accessed on 01\/11\/2024)."},{"key":"e_1_3_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.1145\/3371102"},{"key":"e_1_3_2_1_16_1","doi-asserted-by":"publisher","DOI":"10.1109\/ASE.2015.65"},{"key":"e_1_3_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.1145\/3377811.3380413"},{"volume-title":"Seventeenth Symposium on Usable Privacy and Security (SOUPS 2021","year":"2021","author":"Fulton Kelsey R","key":"e_1_3_2_1_18_1","unstructured":"Kelsey R Fulton, Anna Chan, Daniel Votipka, Michael Hicks, and Michelle L Mazurek. 2021. Benefits and drawbacks of adopting a secure programming language: Rust as a case study. In Seventeenth Symposium on Usable Privacy and Security (SOUPS 2021). USENIX Association, 597--616. https:\/\/www.usenix.org\/conference\/soups2021\/presentation\/fulton"},{"key":"e_1_3_2_1_19_1","unstructured":"CVE Group. 2024. The CVE Program. https:\/\/www.cve.org (Accessed on 01\/11\/2024)."},{"key":"e_1_3_2_1_20_1","unstructured":"Golendata Group. 2024. Golendata. https:\/\/www.jinshuju.net (Accessed on 01\/11\/2024)."},{"key":"e_1_3_2_1_21_1","unstructured":"Rust Group. 2024. The Rust community's crate registry. https:\/\/crates.io (Accessed on 01\/11\/2024)."},{"key":"e_1_3_2_1_22_1","unstructured":"Rust Group. 2024. The Rust Playground. https:\/\/play.rust-lang.org (Accessed on 01\/11\/2024)."},{"key":"e_1_3_2_1_23_1","unstructured":"Rust Group. 2024. The Rust Reference. https:\/\/doc.rust-lang.org\/reference (Accessed on 01\/11\/2024)."},{"key":"e_1_3_2_1_24_1","unstructured":"Rust Group. 2024. The rustdoc book. https:\/\/doc.rust-lang.org\/rustdoc (Accessed on 01\/11\/2024)."},{"key":"e_1_3_2_1_25_1","unstructured":"Rust Group. 2024. The Rustonomicon. https:\/\/doc.rust-lang.org\/nomicon (Accessed on 01\/11\/2024)."},{"key":"e_1_3_2_1_26_1","unstructured":"Rust Group. 2024. TheRustStandardLibrary. https:\/\/doc.rust-lang.org\/std (Accessed on 01\/11\/2024)."},{"volume-title":"RUSTSEC: A vulnerability database for the Rust ecosystem. https:\/\/rustsec.org (Accessed on 01\/11\/2024).","year":"2024","author":"Rust Secure Code Working Group","key":"e_1_3_2_1_27_1","unstructured":"Rust Secure Code Working Group. 2024. RUSTSEC: A vulnerability database for the Rust ecosystem. https:\/\/rustsec.org (Accessed on 01\/11\/2024)."},{"key":"e_1_3_2_1_28_1","doi-asserted-by":"publisher","unstructured":"Florian Hahn. 2016. Rust2Viper: Building a static verifier for Rust. Master's thesis. 10.3929\/ethz-a-010669150","DOI":"10.3929\/ethz-a-010669150"},{"key":"e_1_3_2_1_29_1","doi-asserted-by":"publisher","DOI":"10.1145\/3547647"},{"key":"e_1_3_2_1_30_1","doi-asserted-by":"publisher","DOI":"10.1109\/ASE51524.2021.9678813"},{"key":"e_1_3_2_1_31_1","doi-asserted-by":"publisher","DOI":"10.1145\/3371109"},{"key":"e_1_3_2_1_32_1","doi-asserted-by":"publisher","DOI":"10.1145\/3158154"},{"volume-title":"The Rust Programming Language (Covers Rust","year":"2018","author":"Klabnik Steve","key":"e_1_3_2_1_33_1","unstructured":"Steve Klabnik and Carol Nichols. 2019. The Rust Programming Language (Covers Rust 2018). No Starch Press."},{"key":"e_1_3_2_1_34_1","unstructured":"Nick Kolakowski. 2019. Fastest-Growing Programming Languages on GitHub. https:\/\/insights.dice.com\/2019\/11\/11\/10-github-programming-languages (Accessed on 01\/11\/2024)."},{"key":"e_1_3_2_1_35_1","doi-asserted-by":"publisher","DOI":"10.1145\/3586037"},{"key":"e_1_3_2_1_36_1","doi-asserted-by":"publisher","DOI":"10.1145\/3131672.3136988"},{"key":"e_1_3_2_1_37_1","doi-asserted-by":"publisher","DOI":"10.1145\/3132747.3132786"},{"key":"e_1_3_2_1_38_1","doi-asserted-by":"publisher","DOI":"10.1145\/3460120.3484541"},{"key":"e_1_3_2_1_39_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-031-17143-7_33"},{"key":"e_1_3_2_1_40_1","doi-asserted-by":"publisher","DOI":"10.1109\/INDIN.2018.8471992"},{"key":"e_1_3_2_1_41_1","doi-asserted-by":"publisher","DOI":"10.1145\/2692956.2663188"},{"key":"e_1_3_2_1_42_1","doi-asserted-by":"publisher","DOI":"10.1145\/3462205"},{"volume-title":"Stack Overflow Developer Survey","year":"2016","author":"Overflow Stack","key":"e_1_3_2_1_43_1","unstructured":"Stack Overflow. 2016. Stack Overflow Developer Survey 2016. https:\/\/insights.stackoverflow.com\/survey\/2016#technology-most-loveddreaded-and-wanted (Accessed on 01\/11\/2024)."},{"volume-title":"Stack Overflow Developer Survey","year":"2017","author":"Overflow Stack","key":"e_1_3_2_1_44_1","unstructured":"Stack Overflow. 2017. Stack Overflow Developer Survey 2017. https:\/\/insights.stackoverflow.com\/survey\/2017#technology-most-loveddreaded-and-wanted (Accessed on 01\/11\/2024)."},{"volume-title":"Stack Overflow Developer Survey","year":"2018","author":"Overflow Stack","key":"e_1_3_2_1_45_1","unstructured":"Stack Overflow. 2018. Stack Overflow Developer Survey 2018. https:\/\/insights.stackoverflow.com\/survey\/2018#technology-most-loveddreaded-and-wanted (Accessed on 01\/11\/2024)."},{"volume-title":"Stack Overflow Developer Survey","year":"2019","author":"Overflow Stack","key":"e_1_3_2_1_46_1","unstructured":"Stack Overflow. 2019. Stack Overflow Developer Survey 2019. https:\/\/insights.stackoverflow.com\/survey\/2019#technology-most-loveddreaded-and-wanted (Accessed on 01\/11\/2024)."},{"volume-title":"Stack Overflow Developer Survey","year":"2020","author":"Overflow Stack","key":"e_1_3_2_1_47_1","unstructured":"Stack Overflow. 2020. Stack Overflow Developer Survey 2020. https:\/\/insights.stackoverflow.com\/survey\/2020#technology-most-loveddreaded-and-wanted (Accessed on 01\/11\/2024)."},{"volume-title":"Stack Overflow Developer Survey","year":"2021","author":"Overflow Stack","key":"e_1_3_2_1_48_1","unstructured":"Stack Overflow. 2021. Stack Overflow Developer Survey 2021. https:\/\/insights.stackoverflow.com\/survey\/2021#technology-most-loveddreaded-and-wanted (Accessed on 01\/11\/2024)."},{"volume-title":"Stack Overflow Developer Survey","year":"2022","author":"Overflow Stack","key":"e_1_3_2_1_49_1","unstructured":"Stack Overflow. 2022. Stack Overflow Developer Survey 2022. https:\/\/survey.stackoverflow.co\/2022 (Accessed on 01\/11\/2024)."},{"key":"e_1_3_2_1_50_1","unstructured":"Alex Ozdemir. 2019. Unsafe in Rust: Syntactic Patterns. (2019) (Accessed on 01\/11\/2024). https:\/\/cs.stanford.edu\/~aozdemir\/blog\/unsafe-rust-syntax"},{"key":"e_1_3_2_1_51_1","doi-asserted-by":"publisher","DOI":"10.1145\/3385412.3386036"},{"key":"e_1_3_2_1_52_1","doi-asserted-by":"publisher","DOI":"10.1145\/3373376.3378469"},{"key":"e_1_3_2_1_53_1","unstructured":"std::alloc::Allocator::grow. 2024. https:\/\/doc.rust-lang.org\/std\/alloc\/trait.Allocator.html#method.grow (Accessed on 01\/11\/2024)."},{"key":"e_1_3_2_1_54_1","unstructured":"std::ffi::VaListImpl::arg. 2024. https:\/\/doc.rust-lang.org\/std\/ffi\/struct.VaListImpl.html#method.arg (Accessed on 01\/11\/2024)."},{"key":"e_1_3_2_1_55_1","unstructured":"std::intrinsics::breakpoint. 2024. https:\/\/doc.rust-lang.org\/std\/intrinsics\/fn.breakpoint.html (Accessed on 01\/11\/2024)."},{"key":"e_1_3_2_1_56_1","unstructured":"std::intrinsics::nearbyintf32. 2024. https:\/\/doc.rust-lang.org\/std\/intrinsics\/fn.nearbyintf32.html (Accessed on 01\/11\/2024)."},{"key":"e_1_3_2_1_57_1","unstructured":"std::intrinsics::pref_align_of. 2024. https:\/\/doc.rust-lang.org\/std\/intrinsics\/fn.pref_align_of.html (Accessed on 01\/11\/2024)."},{"key":"e_1_3_2_1_58_1","unstructured":"std::marker::Send. 2024. https:\/\/doc.rust-lang.org\/std\/marker\/trait.Send.html (Accessed on 01\/11\/2024)."},{"key":"e_1_3_2_1_59_1","unstructured":"std::marker::Sync. 2024. https:\/\/doc.rust-lang.org\/std\/marker\/trait.Sync.html (Accessed on 01\/11\/2024)."},{"key":"e_1_3_2_1_60_1","unstructured":"std::mem::ManuallyDrop::take. 2024. https:\/\/doc.rust-lang.org\/std\/mem\/struct.ManuallyDrop.html#method.take (Accessed on 01\/11\/2024)."},{"key":"e_1_3_2_1_61_1","unstructured":"std::mem::zeroed. 2024. https:\/\/doc.rust-lang.org\/std\/mem\/fn.zeroed.html (Accessed on 01\/11\/2024)."},{"key":"e_1_3_2_1_62_1","unstructured":"std::ops::Add. 2024. https:\/\/doc.rust-lang.org\/std\/ops\/trait.Add.html (Accessed on 01\/11\/2024)."},{"key":"e_1_3_2_1_63_1","unstructured":"std::ptr::add. 2024. https:\/\/doc.rust-lang.org\/std\/primitive.pointer.html#method.add (Accessed on 01\/11\/2024)."},{"key":"e_1_3_2_1_64_1","unstructured":"std::ptr::read. 2024. https:\/\/doc.rust-lang.org\/std\/ptr\/fn.read.html (Accessed on 01\/11\/2024)."},{"key":"e_1_3_2_1_65_1","unstructured":"std::ptr::swap. 2024. https:\/\/doc.rust-lang.org\/std\/ptr\/fn.swap.html (Accessed on 01\/11\/2024)."},{"key":"e_1_3_2_1_66_1","unstructured":"std::slice::from_raw_parts_mut. 2024. https:\/\/doc.rust-lang.org\/std\/slice\/fn.from_raw_parts_mut.html (Accessed on 01\/11\/2024)."},{"key":"e_1_3_2_1_67_1","unstructured":"std::slice::SliceIndex. 2024. https:\/\/doc.rust-lang.org\/std\/slice\/trait.SliceIndex.html (Accessed on 01\/11\/2024)."},{"key":"e_1_3_2_1_68_1","unstructured":"std::u16::unchecked_mul. 2024. https:\/\/doc.rust-lang.org\/std\/primitive.u16.html#method.unchecked_mul (Accessed on 01\/11\/2024)."},{"key":"e_1_3_2_1_69_1","unstructured":"std::u8::unchecked_mul. 2024. https:\/\/doc.rust-lang.org\/std\/primitive.u8.html#method.unchecked_mul (Accessed on 01\/11\/2024)."},{"key":"e_1_3_2_1_70_1","doi-asserted-by":"publisher","DOI":"10.1109\/ASE.2015.77"},{"key":"e_1_3_2_1_71_1","doi-asserted-by":"publisher","DOI":"10.1109\/TEST.1999.805821"},{"key":"e_1_3_2_1_72_1","doi-asserted-by":"publisher","DOI":"10.1145\/3510457.3513031"},{"key":"e_1_3_2_1_73_1","doi-asserted-by":"publisher","DOI":"10.1145\/3485522"},{"key":"e_1_3_2_1_74_1","doi-asserted-by":"publisher","DOI":"10.1145\/3466642"},{"volume-title":"Fearless concurrency? understanding concurrent programming safety in real-world rust software. arXiv preprint arXiv:1902.01906","year":"2019","author":"Yu Zeming","key":"e_1_3_2_1_75_1","unstructured":"Zeming Yu, Linhai Song, and Yiying Zhang. 2019. Fearless concurrency? understanding concurrent programming safety in real-world rust software. arXiv preprint arXiv:1902.01906 (2019). arXiv:arXiv:1908.06849"},{"key":"e_1_3_2_1_76_1","doi-asserted-by":"publisher","DOI":"10.1145\/3510003.3510164"}],"event":{"name":"ICSE '24: IEEE\/ACM 46th International Conference on Software Engineering","sponsor":["SIGSOFT ACM Special Interest Group on Software Engineering","IEEE CS","Faculty of Engineering of University of Porto"],"location":"Lisbon Portugal","acronym":"ICSE '24"},"container-title":["Proceedings of the IEEE\/ACM 46th International Conference on Software Engineering"],"original-title":[],"link":[{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3597503.3639136","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2024,8,12]],"date-time":"2024-08-12T13:28:28Z","timestamp":1723469308000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3597503.3639136"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2024,4,12]]},"references-count":76,"alternative-id":["10.1145\/3597503.3639136","10.1145\/3597503"],"URL":"https:\/\/doi.org\/10.1145\/3597503.3639136","relation":{},"subject":[],"published":{"date-parts":[[2024,4,12]]},"assertion":[{"value":"2024-04-12","order":3,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}