{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,7,11]],"date-time":"2026-07-11T03:31:08Z","timestamp":1783740668747,"version":"3.55.0"},"publisher-location":"New York, NY, USA","reference-count":50,"publisher":"ACM","license":[{"start":{"date-parts":[[2020,6,27]],"date-time":"2020-06-27T00:00:00Z","timestamp":1593216000000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":[],"published-print":{"date-parts":[[2020,6,27]]},"DOI":"10.1145\/3377811.3380325","type":"proceedings-article","created":{"date-parts":[[2020,10,1]],"date-time":"2020-10-01T18:25:38Z","timestamp":1601576738000},"page":"234-245","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":28,"title":["Securing unsafe rust programs with XRust"],"prefix":"10.1145","author":[{"given":"Peiming","family":"Liu","sequence":"first","affiliation":[{"name":"Texas A&amp;M University"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Gang","family":"Zhao","sequence":"additional","affiliation":[{"name":"Texas A&amp;M University"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Jeff","family":"Huang","sequence":"additional","affiliation":[{"name":"Texas A&amp;M University"}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"320","published-online":{"date-parts":[[2020,10]]},"reference":[{"key":"e_1_3_2_1_1_1","doi-asserted-by":"publisher","DOI":"10.1145\/1102120.1102165"},{"key":"e_1_3_2_1_2_1","doi-asserted-by":"publisher","DOI":"10.1145\/3176258.3176330"},{"key":"e_1_3_2_1_3_1","unstructured":"andigena. 2016. ptmalloc fanzine. https:\/\/lwn.net\/Articles\/725832\/."},{"key":"e_1_3_2_1_5_1","unstructured":"Rust base64 project. 2017. CVE-2017-1000430. https:\/\/www.cvedetails.com\/cve\/CVE-2017-1000430\/."},{"key":"e_1_3_2_1_6_1","volume-title":"Wedge: Splitting applications into reduced-privilege compartments","author":"Bittau Andrea","year":"2008","unstructured":"Andrea Bittau, Petr Marchenko, Mark Handley, and Brad Karp. 2008. Wedge: Splitting applications into reduced-privilege compartments. USENIX Association."},{"key":"e_1_3_2_1_7_1","doi-asserted-by":"publisher","DOI":"10.5555\/1298455.1298470"},{"key":"e_1_3_2_1_8_1","volume-title":"USENIX Security Symposium","volume":"5","author":"Chen Shuo","year":"2005","unstructured":"Shuo Chen, Jun Xu, Emre Can Sezer, Prachi Gauriar, and Ravishankar K Iyer. 2005. Non-Control-Data Attacks Are Realistic Threats.. In USENIX Security Symposium, Vol. 5."},{"key":"e_1_3_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.1109\/SP.2016.12"},{"key":"e_1_3_2_1_10_1","unstructured":"cmr. 2018. Unsafe Rust. https:\/\/doc.rust-lang.org\/book\/ch19-01-unsafe-rust.html."},{"key":"e_1_3_2_1_11_1","volume-title":"May 25","author":"Corbet Jonathan","year":"2009","unstructured":"Jonathan Corbet. 2009. Seccomp and sandboxing. LWN. net, May 25 (2009)."},{"key":"e_1_3_2_1_12_1","unstructured":"Jonathan Corbet. 2017. Preventing stack guard-page hopping. https:\/\/lwn.net\/Articles\/725832\/."},{"key":"e_1_3_2_1_13_1","unstructured":"Jonathan Corbet. 2017. The Stack Clash. https:\/\/blog.qualys.com\/securitylabs\/2017\/06\/19\/the-stack-clash."},{"key":"e_1_3_2_1_14_1","volume-title":"USENIX Security Symposium","volume":"98","author":"Cowan Crispan","year":"1998","unstructured":"Crispan Cowan, Calton Pu, Dave Maier, Jonathan Walpole, Peat Bakke, Steve Beattie, Aaron Grier, Perry Wagle, Qian Zhang, and Heather Hinton. 1998. Stackguard: Automatic adaptive detection and prevention of buffer-overflow attacks.. In USENIX Security Symposium, Vol. 98. San Antonio, TX, 63--78."},{"key":"e_1_3_2_1_15_1","volume-title":"Tracking issue for changing the global, default allocator (RFC","author":"Crichton Alex","year":"1974","unstructured":"Alex Crichton. 2015. Tracking issue for changing the global, default allocator (RFC 1974). https:\/\/github.com\/rust-lang\/rust\/issues\/27389."},{"key":"e_1_3_2_1_16_1","unstructured":"ARM documentation. [n.d.]. ARM Memory Domain. http:\/\/infocenter.arm.com\/help\/index.jsp?topic=\/com.arm.doc.dui0056d\/BABBJAED.html."},{"key":"e_1_3_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.1145\/2663716.2663755"},{"key":"e_1_3_2_1_18_1","unstructured":"Wolfram Gloger. 2006. Wolfram Gloger's malloc homepage. http:\/\/www.malloc.de\/en\/."},{"key":"e_1_3_2_1_19_1","unstructured":"Mattias Jansson. 2017. rpmalloc-benchmark. https:\/\/github.com\/rampantpixels\/rpmalloc-benchmark."},{"key":"e_1_3_2_1_20_1","unstructured":"japaric. 2017. issue 39699. https:\/\/github.com\/rust-lang\/rust\/issues\/39699."},{"key":"e_1_3_2_1_21_1","volume-title":"USENIX Annual Technical Conference, General Track. 275--288","author":"Jim Trevor","year":"2002","unstructured":"Trevor Jim, J Gregory Morrisett, Dan Grossman, Michael W Hicks, James Cheney, and Yanling Wang. 2002. Cyclone: A Safe Dialect of C.. In USENIX Annual Technical Conference, General Track. 275--288."},{"key":"e_1_3_2_1_22_1","volume-title":"Proceedings of the ACM on Programming Languages 2, POPL","author":"Jung Ralf","year":"2017","unstructured":"Ralf Jung, Jacques-Henri Jourdan, Robbert Krebbers, and Derek Dreyer. 2017. RustBelt: Securing the foundations of the Rust programming language. Proceedings of the ACM on Programming Languages 2, POPL (2017), 66."},{"key":"e_1_3_2_1_23_1","unstructured":"Steve Klabnik and Carol Nichols. 2018. The Rust Programming Language. No Starch Press."},{"key":"e_1_3_2_1_24_1","first-page":"00000","article-title":"Code-Pointer Integrity","volume":"14","author":"Kuznetsov Volodymyr","year":"2014","unstructured":"Volodymyr Kuznetsov, L\u00e1szl\u00f3 Szekeres, Mathias Payer, George Candea, R Sekar, and Dawn Song. 2014. Code-Pointer Integrity.. In OSDI, Vol. 14. 00000.","journal-title":"OSDI"},{"key":"e_1_3_2_1_25_1","unstructured":"Doug Lea. 1996. A Memory Allocator. http:\/\/g.oswego.edu\/dl\/html\/malloc.html."},{"key":"e_1_3_2_1_26_1","volume-title":"Inside the C++ object model","author":"Lippman Stanley B","unstructured":"Stanley B Lippman. 1996. Inside the C++ object model. Vol. 242. Addison-Wesley Reading."},{"key":"e_1_3_2_1_27_1","doi-asserted-by":"publisher","DOI":"10.1145\/3133956.3134066"},{"key":"e_1_3_2_1_28_1","doi-asserted-by":"publisher","DOI":"10.1145\/1543135.1542504"},{"key":"e_1_3_2_1_29_1","volume-title":"Milo MK Martin, and Steve Zdancewic","author":"Nagarakatte Santosh","year":"2010","unstructured":"Santosh Nagarakatte, Jianzhou Zhao, Milo MK Martin, and Steve Zdancewic. 2010. CETS: compiler enforced temporal safety for C. In ACM Sigplan Notices, Vol. 45. ACM, 31--40."},{"key":"e_1_3_2_1_30_1","doi-asserted-by":"publisher","DOI":"10.1145\/503272.503286"},{"key":"e_1_3_2_1_31_1","unstructured":"Phasar-Team. 2018. Phasar framework. https:\/\/github.com\/secure-software-engineering\/phasar."},{"key":"e_1_3_2_1_32_1","doi-asserted-by":"publisher","DOI":"10.1109\/MSP.2004.36"},{"key":"e_1_3_2_1_33_1","volume-title":"Patina: A formalization of the Rust programming language","author":"Reed Eric","year":"2015","unstructured":"Eric Reed. 2015. Patina: A formalization of the Rust programming language. University of Washington, Department of Computer Science and Engineering, Tech. Rep. UW-CSE-15-03-02 (2015)."},{"key":"e_1_3_2_1_34_1","unstructured":"Rust-team. 2011. Trait Objects. https:\/\/doc.rust-lang.org\/book\/trait-objects.html."},{"key":"e_1_3_2_1_35_1","unstructured":"Rust-Team. 2015. issue 26612. https:\/\/github.com\/rust-lang\/rust\/issues\/26612."},{"key":"e_1_3_2_1_36_1","unstructured":"Rust-Team. 2017. Unsafe Rust. https:\/\/doc.rust-lang.org\/book\/second-edition\/ch19-01-unsafe-rust.html."},{"key":"e_1_3_2_1_37_1","unstructured":"Pedro Sampaio. 2018. CVE-2018-1000657. https:\/\/bugzilla.redhat.com\/show_bug.cgi?id=1622249."},{"key":"e_1_3_2_1_38_1","unstructured":"Pedro Sampaio. 2018. CVE-2018-1000810. https:\/\/bugzilla.redhat.com\/show_bug.cgi?id=1632932."},{"key":"e_1_3_2_1_39_1","unstructured":"Shellphish. 2011. unsafe unlink. https:\/\/github.com\/shellphish\/how2heap\/blob\/master\/glibc_2.26\/unsafe_unlink.c."},{"key":"e_1_3_2_1_40_1","doi-asserted-by":"publisher","DOI":"10.1145\/1866307.1866331"},{"key":"e_1_3_2_1_41_1","unstructured":"Brain Smith. 2017. Stop using unsafe code. https:\/\/github.com\/alicemaz\/rust-base64\/issues\/29."},{"key":"e_1_3_2_1_42_1","unstructured":"splotifun. 2015. Understanding glibc malloc. bhttps:\/\/sploitfun.wordpress.com\/2015\/02\/10\/understanding-glibc-malloc\/."},{"key":"e_1_3_2_1_43_1","doi-asserted-by":"publisher","DOI":"10.1145\/2892208.2892235"},{"key":"e_1_3_2_1_44_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-33167-1_48"},{"key":"e_1_3_2_1_45_1","unstructured":"Rust team. 2015. Lang items. https:\/\/doc.rust-lang.org\/1.5.0\/book\/lang-items.html."},{"key":"e_1_3_2_1_46_1","volume-title":"USENIX Security Symposium. 941--955","author":"Tice Caroline","year":"2014","unstructured":"Caroline Tice, Tom Roeder, Peter Collingbourne, Stephen Checkoway, \u00dalfar Erlingsson, Luis Lozano, and Geoff Pike. 2014. Enforcing Forward-Edge Control-Flow Integrity in GCC & LLVM.. In USENIX Security Symposium. 941--955."},{"key":"e_1_3_2_1_47_1","doi-asserted-by":"publisher","DOI":"10.1109\/ASE.2015.77"},{"key":"e_1_3_2_1_48_1","volume-title":"ERIM: Secure, Efficient In-process Isolation with Memory Protection Keys. arXiv preprint arXiv:1801.06822","author":"Vahldiek-Oberwagner Anjo","year":"2018","unstructured":"Anjo Vahldiek-Oberwagner, Eslam Elnikety, Nuno O Duarte, Peter Druschel, and Deepak Garg. 2018. ERIM: Secure, Efficient In-process Isolation with Memory Protection Keys. arXiv preprint arXiv:1801.06822 (2018)."},{"key":"e_1_3_2_1_49_1","volume-title":"Rust Distilled: An Expressive Tower of Languages. CoRR abs\/1806.02693","author":"Weiss Aaron","year":"2018","unstructured":"Aaron Weiss, Daniel Patterson, and Amal G Ahmed. 2018. Rust Distilled: An Expressive Tower of Languages. CoRR abs\/1806.02693 (2018)."},{"key":"e_1_3_2_1_50_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-33167-1_49"},{"key":"e_1_3_2_1_51_1","doi-asserted-by":"publisher","DOI":"10.1109\/SP.2009.25"}],"event":{"name":"ICSE '20: 42nd International Conference on Software Engineering","location":"Seoul South Korea","acronym":"ICSE '20","sponsor":["SIGSOFT ACM Special Interest Group on Software Engineering","KIISE Korean Institute of Information Scientists and Engineers","IEEE CS"]},"container-title":["Proceedings of the ACM\/IEEE 42nd International Conference on Software Engineering"],"original-title":[],"link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3377811.3380325","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3377811.3380325","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T23:23:56Z","timestamp":1750202636000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3377811.3380325"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2020,6,27]]},"references-count":50,"alternative-id":["10.1145\/3377811.3380325","10.1145\/3377811"],"URL":"https:\/\/doi.org\/10.1145\/3377811.3380325","relation":{},"subject":[],"published":{"date-parts":[[2020,6,27]]},"assertion":[{"value":"2020-10-01","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}