{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,8,24]],"date-time":"2026-08-24T17:25:24Z","timestamp":1787592324507,"version":"build-2736575974"},"reference-count":64,"publisher":"Association for Computing Machinery (ACM)","issue":"OOPSLA1","license":[{"start":{"date-parts":[[2025,4,9]],"date-time":"2025-04-09T00:00:00Z","timestamp":1744156800000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/legalcode"}],"funder":[{"name":"NSF","award":["CSR-2106117, SaTC-2348754"],"award-info":[{"award-number":["CSR-2106117, SaTC-2348754"]}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["Proc. ACM Program. Lang."],"published-print":{"date-parts":[[2025,4,9]]},"abstract":"<jats:p>\n                    Fine-grained information flow control (IFC) ensures confidentiality and integrity at the programming language level by ensuring that high-secrecy values do not affect low-secrecy values and that low-integrity values do not affect high-integrity values. However, prior support for fine-grained IFC is impractical: It either analyzes programs using whole-program static analysis, detecting false IFC violations; or it extends the language and compiler, thwarting adoption. Recent work called Cocoon demonstrates how to provide fine-grained IFC for Rust programs without modifying the language or compiler, but it is limited to static secrecy labels, and its case studies are limited. This paper introduces an approach called\n                    <jats:sc>Carapace<\/jats:sc>\n                    that employs Cocoon\u2019s core approach and supports both static and dynamic IFC and supports both secrecy and integrity. We demonstrate\n                    <jats:sc>Carapace<\/jats:sc>\n                    using three case studies involving real applications and comprehensive security policies. An evaluation shows that applications can be retrofitted to use\n                    <jats:sc>Carapace<\/jats:sc>\n                    with relatively few changes, while incurring negligible run-time overhead in most cases.\n                    <jats:sc>Carapace<\/jats:sc>\n                    advances the state of the art by being the first hybrid static\u2014dynamic IFC that works with an off-the-shelf language\u2014Rust\u2014and its unmodified compiler.\n                  <\/jats:p>","DOI":"10.1145\/3720427","type":"journal-article","created":{"date-parts":[[2025,4,9]],"date-time":"2025-04-09T13:48:26Z","timestamp":1744206506000},"page":"364-392","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":2,"title":["Carapace: Static\u2013Dynamic Information Flow Control in Rust"],"prefix":"10.1145","volume":"9","author":[{"ORCID":"https:\/\/orcid.org\/0000-0003-2373-7171","authenticated-orcid":false,"given":"Vincent","family":"Beardsley","sequence":"first","affiliation":[{"name":"Ohio State University, Columbus, USA"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0009-0007-3071-074X","authenticated-orcid":false,"given":"Chris","family":"Xiong","sequence":"additional","affiliation":[{"name":"Ohio State University, Columbus, USA"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0009-0000-9605-3999","authenticated-orcid":false,"given":"Ada","family":"Lamba","sequence":"additional","affiliation":[{"name":"Ohio State University, Columbus, USA"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-8971-4944","authenticated-orcid":false,"given":"Michael D.","family":"Bond","sequence":"additional","affiliation":[{"name":"Ohio State University, Columbus, USA"}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"320","published-online":{"date-parts":[[2025,4,9]]},"reference":[{"key":"e_1_3_2_2_2","doi-asserted-by":"publisher","DOI":"10.1145\/292540.292555"},{"key":"e_1_3_2_3_2","unstructured":"Mufeez Amjad. 2024. Avail. https:\/\/github.com\/mufeez-amjad\/avail."},{"key":"e_1_3_2_4_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-540-88313-5_22"},{"key":"e_1_3_2_5_2","doi-asserted-by":"publisher","DOI":"10.1145\/1554339.1554346"},{"key":"e_1_3_2_6_2","doi-asserted-by":"publisher","DOI":"10.1145\/1554339.1554353"},{"key":"e_1_3_2_7_2","doi-asserted-by":"publisher","DOI":"10.1145\/2103656.2103677"},{"key":"e_1_3_2_8_2","doi-asserted-by":"publisher","DOI":"10.1145\/3139645.3139660"},{"key":"e_1_3_2_9_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-30793-5_12"},{"key":"e_1_3_2_10_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-031-22308-2_5"},{"key":"e_1_3_2_11_2","doi-asserted-by":"publisher","unstructured":"Vincent Beardsley Chris Xiong Ada Lamba and Michael D. Bond. 2025. Carapace \u2013 ACM Digital Library. https:\/\/doi.org\/10.1145\/3720427 10.1145\/3720427","DOI":"10.1145\/3720427"},{"key":"e_1_3_2_12_2","doi-asserted-by":"publisher","unstructured":"Vincent Beardsley Chris Xiong Ada Lamba and Michael D. Bond. 2025. Carapace artifact. https:\/\/doi.org\/10.5281\/zenodo.14915697 10.5281\/zenodo.14915697","DOI":"10.5281\/zenodo.14915697"},{"key":"e_1_3_2_13_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-662-48899-7_5"},{"key":"e_1_3_2_14_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-33167-1_4"},{"key":"e_1_3_2_15_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-17714-9_5"},{"key":"e_1_3_2_16_2","doi-asserted-by":"publisher","unstructured":"Deepak Chandra and Michael Franz. 2007. Fine-Grained Information Flow Analysis and Enforcement in a Java Virtual Machine. In Twenty-Third Annual Computer Security Applications Conference (ACSAC 2007) 463\u2013475. https:\/\/doi.org\/10.1109\/ACSAC.2007.37 10.1109\/ACSAC.2007.37","DOI":"10.1109\/ACSAC.2007.37"},{"key":"e_1_3_2_17_2","doi-asserted-by":"publisher","DOI":"10.1145\/1032297.1032305"},{"key":"e_1_3_2_18_2","doi-asserted-by":"publisher","DOI":"10.1145\/3656442"},{"key":"e_1_3_2_19_2","unstructured":"Stephen Nathaniel Chong. 2008. Expressive and Enforceable Information Security Policies. Ph. D. Dissertation. Cornell University. http:\/\/people.seas.harvard.edu\/~chong\/pubs\/chong_dissertation.pdf"},{"key":"e_1_3_2_20_2","unstructured":"Chrono developers. 2024. Chrono: Timezone-aware date and time handling. https:\/\/crates.io\/crates\/chrono."},{"key":"e_1_3_2_21_2","doi-asserted-by":"publisher","DOI":"10.1145\/1542476.1542483"},{"key":"e_1_3_2_22_2","doi-asserted-by":"publisher","unstructured":"David D. Clark and David R. Wilson. 1987. A Comparison of Commercial and Military Computer Security Policies. In 1987 IEEE Symposium on Security and Privacy 184\u2013184. https:\/\/doi.org\/10.1109\/SP.1987.10001 10.1109\/SP.1987.10001","DOI":"10.1109\/SP.1987.10001"},{"key":"e_1_3_2_23_2","doi-asserted-by":"publisher","DOI":"10.1145\/3519939.3523445"},{"key":"e_1_3_2_24_2","doi-asserted-by":"publisher","DOI":"10.1145\/3694715.3695984"},{"key":"e_1_3_2_25_2","doi-asserted-by":"publisher","unstructured":"Dominique Devriese and Frank Piessens. 2010. Noninterference through Secure Multi-execution. In 2010 IEEE Symposium on Security and Privacy 109\u2013124. https:\/\/doi.org\/10.1109\/SP.2010.15 10.1109\/SP.2010.15","DOI":"10.1109\/SP.2010.15"},{"key":"e_1_3_2_26_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-030-17138-4_3"},{"key":"e_1_3_2_27_2","volume-title":"Proceedings IEEE International Symposium on Secure Software Engineering","author":"Hammer Christian","year":"2006","unstructured":"Christian Hammer, Jens Krinke, and Gregor Snelting. 2006. Information Flow Control for Java Based on Path Conditions in Dependence Graphs. In Proceedings IEEE International Symposium on Secure Software Engineering. IEEE, Arlington, Virginia, USA."},{"key":"e_1_3_2_28_2","doi-asserted-by":"publisher","unstructured":"Daniel Hedin and Andrei Sabelfeld. 2012. A Perspective on Information-Flow Control. In Software Safety and Security - Tools for Analysis and Verification Tobias Nipkow Orna Grumberg and Benedikt Hauptmann (Eds.). NATO Science for Peace and Security Series - D: Information and Communication Security Vol. 33. IOS Press Amsterdam 319\u2013347. https:\/\/doi.org\/10.3233\/978-1-61499-028-4-319 10.3233\/978-1-61499-028-4-319","DOI":"10.3233\/978-1-61499-028-4-319"},{"key":"e_1_3_2_29_2","doi-asserted-by":"crossref","unstructured":"Daniel Hedin Alexander Sj\u00f6sten Frank Piessens and Andrei Sabelfeld. 2017. A Principled Approach to Tracking Information Flow in the Presence of Libraries. In Principles of Security and Trust Matteo Maffei and Mark Ryan (Eds.). Springer Berlin Heidelberg Berlin Heidelberg 49\u201370.","DOI":"10.1007\/978-3-662-54455-6_3"},{"key":"e_1_3_2_30_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-662-46666-7_2"},{"key":"e_1_3_2_31_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-29709-0_16"},{"key":"e_1_3_2_32_2","doi-asserted-by":"publisher","DOI":"10.1145\/2541228.2555295"},{"key":"e_1_3_2_33_2","volume-title":"ICISS","author":"King Dave","year":"2008","unstructured":"Dave King, Boniface Hicks, Michael W. Hicks, and Trent Jaeger. 2008. Implicit Flows: Can\u2019t Live with \u2019Em, Can\u2019t Live without \u2019Em. In ICISS (Seoul, South Korea). Springer-Verlag, Berlin, Heidelberg."},{"key":"e_1_3_2_34_2","unstructured":"Elisavet Kozyri Owen Arden Andrew C. Myers and Fred B. Schneider. 2016. JRIF: reactive information flow control for Java. Technical Report 1813\u201341194. Cornell University Computing and Information Science. https:\/\/ecommons.cornell.edu\/handle\/1813\/41194"},{"key":"e_1_3_2_35_2","doi-asserted-by":"publisher","DOI":"10.1145\/1294261.1294293"},{"key":"e_1_3_2_36_2","doi-asserted-by":"publisher","DOI":"10.1145\/3649817"},{"key":"e_1_3_2_37_2","unstructured":"Ada Lamba Max Taylor Vincent Beardsley Jacob Bambeck Michael D. Bond and Zhiqiang Lin. 2024. Implementation of Cocoon [35]. https:\/\/github.com\/PLaSSticity\/Cocoon-implementation."},{"key":"e_1_3_2_38_2","doi-asserted-by":"publisher","DOI":"10.1145\/362375.362389"},{"key":"e_1_3_2_39_2","unstructured":"Linux Foundation. 2023. Servo. https:\/\/servo.org."},{"key":"e_1_3_2_40_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-15257-3_16"},{"key":"e_1_3_2_41_2","doi-asserted-by":"publisher","DOI":"10.1145\/1852666.1852738"},{"key":"e_1_3_2_42_2","unstructured":"Peng Li Yun Mao and Steve Zdancewic. 2003. Information Integrity Policies. In Workshop on Formal Aspects in Security & Trust (FAST)."},{"key":"e_1_3_2_43_2","doi-asserted-by":"publisher","DOI":"10.1145\/292540.292561"},{"key":"e_1_3_2_44_2","doi-asserted-by":"publisher","DOI":"10.1145\/268998.266669"},{"key":"e_1_3_2_45_2","unstructured":"Andrew C. Myers Lantian Zheng Steve Zdancewic Stephen Chong and Nathaniel Nystrom. 2006. Jif 3.0: Java information flow. http:\/\/www.cs.cornell.edu\/jif."},{"key":"e_1_3_2_46_2","doi-asserted-by":"publisher","DOI":"10.5555\/3489212.3489252"},{"key":"e_1_3_2_47_2","doi-asserted-by":"publisher","unstructured":"Flemming Nielson and Hanne Riis Nielson. 1999. Type and Effect Systems. Springer Berlin Heidelberg Berlin Heidelberg 114\u2013136. https:\/\/doi.org\/10.1007\/3-540-48092-7_6 10.1007\/3-540-48092-7_6","DOI":"10.1007\/3-540-48092-7_6"},{"key":"e_1_3_2_48_2","doi-asserted-by":"publisher","DOI":"10.1145\/2638548"},{"key":"e_1_3_2_49_2","unstructured":"Leo J. Rotenberg. 1973. Making Computers Keep Secrets. Ph. D. Dissertation. Massachusetts Institute of Technology Boston MA."},{"key":"e_1_3_2_50_2","doi-asserted-by":"publisher","DOI":"10.1145\/1542476.1542484"},{"key":"e_1_3_2_51_2","doi-asserted-by":"publisher","DOI":"10.1145\/2784731.2784756"},{"key":"e_1_3_2_52_2","doi-asserted-by":"publisher","unstructured":"Alejandro Russo and Andrei Sabelfeld. 2010. Dynamic vs. Static Flow-Sensitive Security Analysis. In 2010 23rd IEEE Computer Security Foundations Symposium 186\u2013199. https:\/\/doi.org\/10.1109\/CSF.2010.20 10.1109\/CSF.2010.20","DOI":"10.1109\/CSF.2010.20"},{"key":"e_1_3_2_53_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-04444-1_6"},{"key":"e_1_3_2_54_2","doi-asserted-by":"publisher","DOI":"10.1109\/JSAC.2002.806121"},{"key":"e_1_3_2_55_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-11486-1_30"},{"key":"e_1_3_2_56_2","unstructured":"Vincent Simonet. 2003. The Flow Caml System: documentation and user\u2019s manual. Technical Report 0282. Institut National de Recherche en Informatique et en Automatique (INRIA). \u00a9INRIA."},{"key":"e_1_3_2_57_2","doi-asserted-by":"publisher","DOI":"10.1145\/268946.268975"},{"key":"e_1_3_2_58_2","unstructured":"Softbear Games. 2024. Mk48.io. https:\/\/github.com\/SoftbearStudios\/mk48."},{"key":"e_1_3_2_59_2","doi-asserted-by":"publisher","DOI":"10.1145\/2034675.2034688"},{"key":"e_1_3_2_60_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-319-45744-4_27"},{"key":"e_1_3_2_61_2","doi-asserted-by":"publisher","DOI":"10.1145\/3290389"},{"key":"e_1_3_2_62_2","doi-asserted-by":"publisher","DOI":"10.3233\/JCS-1996-42-304"},{"key":"e_1_3_2_63_2","doi-asserted-by":"publisher","DOI":"10.1109\/SP40001.2021.00002"},{"key":"e_1_3_2_64_2","doi-asserted-by":"publisher","DOI":"10.1145\/2245276.2231983"},{"key":"e_1_3_2_65_2","doi-asserted-by":"publisher","DOI":"10.1007\/0-387-24098-5_3"}],"container-title":["Proceedings of the ACM on Programming Languages"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3720427","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3720427","content-type":"application\/pdf","content-version":"vor","intended-application":"syndication"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3720427","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2026,8,24]],"date-time":"2026-08-24T16:32:36Z","timestamp":1787589156000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3720427"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2025,4,9]]},"references-count":64,"journal-issue":{"issue":"OOPSLA1","published-print":{"date-parts":[[2025,4,9]]}},"alternative-id":["10.1145\/3720427"],"URL":"https:\/\/doi.org\/10.1145\/3720427","relation":{},"ISSN":["2475-1421"],"issn-type":[{"value":"2475-1421","type":"electronic"}],"subject":[],"published":{"date-parts":[[2025,4,9]]},"assertion":[{"value":"2024-10-16","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2025-02-18","order":2,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2025-04-09","order":3,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}