Daedalus: Safer Document Parsing
Despite decades of contributions to the theoretical foundations of parsing and the many tools available to aid in parser development, many security attacks in the wild still exploit parsers. The issues are myriad—flaws in memory management in contexts lacking memory safety, flaws in syntactic or sem...
Saved in:
Published in | Proceedings of ACM on programming languages Vol. 8; no. PLDI; pp. 816 - 840 |
---|---|
Main Authors | , , , , , , , |
Format | Journal Article |
Language | English |
Published |
New York, NY, USA
ACM
20.06.2024
|
Subjects | |
Online Access | Get full text |
Cover
Loading…
Abstract | Despite decades of contributions to the theoretical foundations of parsing and the many tools available to aid in parser development, many security attacks in the wild still exploit parsers. The issues are myriad—flaws in memory management in contexts lacking memory safety, flaws in syntactic or semantic validation of input, and misinterpretation of hundred-page-plus standards documents. It remains challenging to build and maintain parsers for common, mature data formats. In response to these challenges, we present Daedalus, a new domain-specific language (DSL) and toolchain for writing safe parsers. Daedalus is built around functional-style parser combinators, which suit the rich data dependencies often found in complex data formats. It adds domain-specific constructs for stream manipulation, allowing the natural expression of parsing noncontiguous formats. Balancing between expressivity and domain-specific constructs lends Daedalus specifications simplicity and leaves them amenable to analysis. As a stand-alone DSL, Daedalus is able to generate safe parsers in multiple languages, currently C++ and Haskell. We have implemented 20 data formats with Daedalus, including two large, complex formats—PDF and NITF–and our evaluation shows that Daedalus parsers are concise and performant. Our experience with PDF forms our largest case study. We worked with the PDF Association to build a reference implementation, which was subject to a red-teaming exercise along with a number of other PDF parsers and was the only parser to be found free of defects. |
---|---|
AbstractList | Despite decades of contributions to the theoretical foundations of parsing and the many tools available to aid in parser development, many security attacks in the wild still exploit parsers. The issues are myriad—flaws in memory management in contexts lacking memory safety, flaws in syntactic or semantic validation of input, and misinterpretation of hundred-page-plus standards documents. It remains challenging to build and maintain parsers for common, mature data formats.
In response to these challenges, we present Daedalus, a new domain-specific language (DSL) and toolchain for writing safe parsers. Daedalus is built around functional-style parser combinators, which suit the rich data dependencies often found in complex data formats. It adds domain-specific constructs for stream manipulation, allowing the natural expression of parsing noncontiguous formats. Balancing between expressivity and domain-specific constructs lends Daedalus specifications simplicity and leaves them amenable to analysis. As a stand-alone DSL, Daedalus is able to generate safe parsers in multiple languages, currently C++ and Haskell.
We have implemented 20 data formats with Daedalus, including two large, complex formats—PDF and NITF–and our evaluation shows that Daedalus parsers are concise and performant. Our experience with PDF forms our largest case study. We worked with the PDF Association to build a reference implementation, which was subject to a red-teaming exercise along with a number of other PDF parsers and was the only parser to be found free of defects. Despite decades of contributions to the theoretical foundations of parsing and the many tools available to aid in parser development, many security attacks in the wild still exploit parsers. The issues are myriad—flaws in memory management in contexts lacking memory safety, flaws in syntactic or semantic validation of input, and misinterpretation of hundred-page-plus standards documents. It remains challenging to build and maintain parsers for common, mature data formats. In response to these challenges, we present Daedalus, a new domain-specific language (DSL) and toolchain for writing safe parsers. Daedalus is built around functional-style parser combinators, which suit the rich data dependencies often found in complex data formats. It adds domain-specific constructs for stream manipulation, allowing the natural expression of parsing noncontiguous formats. Balancing between expressivity and domain-specific constructs lends Daedalus specifications simplicity and leaves them amenable to analysis. As a stand-alone DSL, Daedalus is able to generate safe parsers in multiple languages, currently C++ and Haskell. We have implemented 20 data formats with Daedalus, including two large, complex formats—PDF and NITF–and our evaluation shows that Daedalus parsers are concise and performant. Our experience with PDF forms our largest case study. We worked with the PDF Association to build a reference implementation, which was subject to a red-teaming exercise along with a number of other PDF parsers and was the only parser to be found free of defects. |
ArticleNumber | 180 |
Author | Winwood, Simon Dodds, Mike Razet, Benoit Harris, Bill Goldstein, Harrison Holland, David A. Schlesinger, Cole Diatchki, Iavor S. |
Author_xml | – sequence: 1 givenname: Iavor S. orcidid: 0009-0000-7795-4708 surname: Diatchki fullname: Diatchki, Iavor S. email: diatchki@galois.com organization: Galois, Portland, USA – sequence: 2 givenname: Mike orcidid: 0000-0002-4439-0130 surname: Dodds fullname: Dodds, Mike email: miked@galois.com organization: Galois, Portland, USA – sequence: 3 givenname: Harrison orcidid: 0000-0001-9631-1169 surname: Goldstein fullname: Goldstein, Harrison email: hgo@seas.upenn.edu organization: University of Pennsylvania, Portland, USA – sequence: 4 givenname: Bill orcidid: 0000-0002-1762-2039 surname: Harris fullname: Harris, Bill email: bll.hrris@gmail.com organization: Galois, Portland, USA – sequence: 5 givenname: David A. orcidid: 0000-0002-9328-1686 surname: Holland fullname: Holland, David A. email: dholland@galois.com organization: Galois, Portland, USA – sequence: 6 givenname: Benoit orcidid: 0009-0006-5698-9841 surname: Razet fullname: Razet, Benoit email: benoit.razet@galois.com organization: Galois, Portland, USA – sequence: 7 givenname: Cole orcidid: 0009-0004-9350-3041 surname: Schlesinger fullname: Schlesinger, Cole email: coles@galois.com organization: Galois, Portland, USA – sequence: 8 givenname: Simon orcidid: 0009-0005-6133-0147 surname: Winwood fullname: Winwood, Simon email: sjw@galois.com organization: Galois, Portland, USA |
BookMark | eNpNj01LAzEURYNUsK3FvavZuRrNy0tmEnfS-gUFBXU9vGRepNKZkaRd-O-rtIqre-EeLpyJGPVDz0KcgbwE0OYKK1NpkEdirHRtStAKRv_6iZjl_CGlBIfaohuLYkHc0nqbr4sXipyKxRC2Hfeb4plSXvXvp-I40jrz7JBT8XZ3-zp_KJdP94_zm2VJCt2mZBXbVju0HKuKwMQakVRwwdkafFRoo6-dBWSvIVhgbwJqAN8q6yUjTsXF_jekIefEsflMq47SVwOy-XFrDm7f5PmepND9Qb_jDmj-SGQ |
Cites_doi | 10.1109/TSE.1984.5010248 10.1145/3519939.3523708 10.1145/351240.351266 10.1145/3372885.3373836 10.1145/3385412.3385992 10.1145/321239.321249 10.5281/zenodo.10966813 10.1145/982962.964011 10.1145/3341686 10.1145/3093333.3009867 10.1017/S0956796807006326 10.1145/1086365.1086387 10.1109/SPW54247.2022.9833889 10.1017/S0963548304006315 10.5555/6448 10.1145/1667053.1667059 10.1016/0022-0000(78)90014-4 10.5555/AAI29211293 10.1145/964001.964011 10.5555/2501720 10.1007/978-3-319-17524-9_1 10.1109/TIT.1956.1056813 10.5555/145055.145097 10.1109/SPW50608.2020.00064 10.1145/2714064.2660241 10.1145/1190216.1190231 |
ContentType | Journal Article |
Copyright | Owner/Author |
Copyright_xml | – notice: Owner/Author |
DBID | AAYXX CITATION |
DOI | 10.1145/3656410 |
DatabaseName | CrossRef |
DatabaseTitle | CrossRef |
DatabaseTitleList | CrossRef |
DeliveryMethod | fulltext_linktorsrc |
Discipline | Computer Science |
EISSN | 2475-1421 |
EndPage | 840 |
ExternalDocumentID | 10_1145_3656410 3656410 |
GrantInformation_xml | – fundername: Defense Advanced Research Projects Agency grantid: HR001119C0076 funderid: https:\/\/doi.org\/10.13039\/100000185 |
GroupedDBID | AAKMM AAYFX ACM AEFXT AEJOY AIKLT AKRVB ALMA_UNASSIGNED_HOLDINGS GUFHI LHSKQ M~E OK1 ROL AAYXX CITATION |
ID | FETCH-LOGICAL-a239t-e2fdd4938ef66a15f733a2c9c9871bf238fb79813eb41c81eb5c3411bd28b0e33 |
ISSN | 2475-1421 |
IngestDate | Thu Jul 10 08:23:44 EDT 2025 Mon Jul 07 16:40:29 EDT 2025 |
IsDoiOpenAccess | true |
IsOpenAccess | true |
IsPeerReviewed | true |
IsScholarly | true |
Issue | PLDI |
Keywords | NITF Format definition languages binary data formats |
Language | English |
License | This work is licensed under a Creative Commons Attribution International 4.0 License. |
LinkModel | OpenURL |
MergedId | FETCHMERGED-LOGICAL-a239t-e2fdd4938ef66a15f733a2c9c9871bf238fb79813eb41c81eb5c3411bd28b0e33 |
ORCID | 0000-0002-4439-0130 0000-0001-9631-1169 0009-0005-6133-0147 0000-0002-1762-2039 0000-0002-9328-1686 0009-0000-7795-4708 0009-0006-5698-9841 0009-0004-9350-3041 |
OpenAccessLink | https://dl.acm.org/doi/10.1145/3656410 |
PageCount | 25 |
ParticipantIDs | crossref_primary_10_1145_3656410 acm_primary_3656410 |
PublicationCentury | 2000 |
PublicationDate | 2024-06-20 |
PublicationDateYYYYMMDD | 2024-06-20 |
PublicationDate_xml | – month: 06 year: 2024 text: 2024-06-20 day: 20 |
PublicationDecade | 2020 |
PublicationPlace | New York, NY, USA |
PublicationPlace_xml | – name: New York, NY, USA |
PublicationTitle | Proceedings of ACM on programming languages |
PublicationTitleAbbrev | ACM PACMPL |
PublicationYear | 2024 |
Publisher | ACM |
Publisher_xml | – name: ACM |
References | (bib49) 1992 (bib13) 2015 (bib63) 2013 (bib26) 2001 (bib46) 2000 (bib16) 2000 (bib23) 2019; 3 (bib50) 2011 (bib37) 1979 (bib24) 2024 (bib64) 2024 (bib3) 2020 (bib14) 1956; 2 (bib25) 2007 (bib4) 2022 (bib43) 2024 (bib51) 2024 (bib68) 2001 (bib44) 2010; 57 (bib60) 2007; 5 (bib30) 2004; 39 (bib67) 1984; 4 (bib55) 2024 bib5 (bib70) 2007 bib6 (bib47) 2014; 49 (bib12) 1964; 11 (bib48) 2007 (bib10) 2004 (bib40) 2024 (bib34) 1996 (bib39) 2024 (bib42) 2020 (bib18) 2008; 18 (bib29) 2020 (bib52) 2020 (bib35) 2019 bib15 (bib22) 2024 bib54 (bib62) 2022 bib11 (bib27) 2004; 13 (bib32) 2024 (bib8) 2021 (bib36) 2020 (bib21) 2001 (bib41) 1994 (bib31) 2002 (bib7) 2014 (bib59) 2021 (bib69) 2024 (bib33) 2024 (bib28) 2020 (bib56) 2023 (bib61) 1975 (bib9) 2020 (bib66) 1993 bib20 (bib58) 1978; 17 (bib45) 2023 (bib57) 2019 bib19 bib17 (bib38) 2005 (bib53) 2017; 52 (bib1) 1986 (bib65) 2022 (bib2) 1972 Aho Alfred V. (e_1_3_1_3_2) 1972 Calcagno Cristiano (e_1_3_1_14_2) 2015 e_1_3_1_66_2 e_1_3_1_22_2 Bangert Julian (e_1_3_1_8_2) 2014 e_1_3_1_45_2 e_1_3_1_68_2 e_1_3_1_24_2 e_1_3_1_41_2 e_1_3_1_64_2 e_1_3_1_20_2 e_1_3_1_4_2 Larmouth John (e_1_3_1_47_2) 2000 e_1_3_1_6_2 Dubuisson Olivier (e_1_3_1_27_2) 2001 e_1_3_1_2_2 e_1_3_1_28_2 Fioraldi Andrea (e_1_3_1_30_2) 2020 e_1_3_1_49_2 e_1_3_1_70_2 Ullrich Sebastian (e_1_3_1_60_2) 2021 e_1_3_1_55_2 McGrath Robert E (e_1_3_1_51_2) 2011 e_1_3_1_34_2 e_1_3_1_57_2 e_1_3_1_13_2 e_1_3_1_11_2 e_1_3_1_53_2 e_1_3_1_17_2 Ramananandro Tahina (e_1_3_1_58_2) 2019 e_1_3_1_15_2 e_1_3_1_36_2 e_1_3_1_59_2 e_1_3_1_19_2 ISO/TC 171/SC2 (e_1_3_1_43_2) 2020 Diatchki Iavor Sotirov (e_1_3_1_26_2) 2007 e_1_3_1_21_2 e_1_3_1_44_2 e_1_3_1_65_2 e_1_3_1_23_2 e_1_3_1_46_2 e_1_3_1_67_2 e_1_3_1_7_2 e_1_3_1_40_2 e_1_3_1_9_2 e_1_3_1_63_2 e_1_3_1_29_2 Hutton Graham (e_1_3_1_35_2) 1996 e_1_3_1_5_2 e_1_3_1_25_2 Hopcroft John E. (e_1_3_1_38_2) 1979 e_1_3_1_48_2 e_1_3_1_69_2 Johnson Stephen C. (e_1_3_1_62_2) 1975 e_1_3_1_71_2 Back Godmar (e_1_3_1_32_2) 2002 e_1_3_1_33_2 e_1_3_1_54_2 e_1_3_1_56_2 Slee Mark (e_1_3_1_61_2) 2007; 5 e_1_3_1_12_2 e_1_3_1_50_2 e_1_3_1_10_2 e_1_3_1_31_2 e_1_3_1_52_2 e_1_3_1_16_2 International Telecommunication Union (e_1_3_1_42_2) 1994 e_1_3_1_37_2 e_1_3_1_18_2 e_1_3_1_39_2 |
References_xml | – volume: 4 start-page: 352 year: 1984 end-page: 357 ident: bib67 article-title: Program Slicing publication-title: IEEE Transactions on Software Engineering SE-10 doi: 10.1109/TSE.1984.5010248 – start-page: 300 year: 2020 end-page: 307 ident: bib52 article-title: Research Report: The Parsley Data Format Definition Language publication-title: 2020 IEEE Security and Privacy Work-shops (SPW) – volume: 2 start-page: 113 issue: 3 year: 1956 end-page: 124 ident: bib14 article-title: Three models for the description of language publication-title: IRE Transactions on information theory – ident: bib17 article-title: Common Crawl – year: 2024 ident: bib43 article-title: Kaitai Struct: declarative binary format parsing language – year: 1986 ident: bib1 publication-title: Compilers, Principles, Techniques, and Tools – start-page: 31 year: 2022 end-page: 45 ident: bib62 publication-title: Proceedings of the 43rd ACM SIGPLAN International Conference on Programming Language Design and Implementation (San Diego, CA, USA) (PLDI 2022) doi: 10.1145/3519939.3523708 – year: 2022 ident: bib65 article-title: Strengthening Weak Links in the PDF Trust Chain publication-title: LangSec Work-shop (2022) – start-page: 268 year: 2000 end-page: 279 ident: bib16 publication-title: Proceedings of the Fifth ACM SIGPLAN International Conference on Functional Programming (ICFP ’00), Montreal, Canada, September 18-21, 2000 doi: 10.1145/351240.351266 – year: 2013 ident: bib63 publication-title: The Definitive ANTLR 4 Reference – start-page: 111 year: 2004 end-page: 122 ident: bib10 publication-title: Proceedings of the 31st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (Venice, Italy) (POPL ’04) – start-page: 12 year: 2021 ident: bib59 publication-title: Proceedings of the 31st Symposium on Implementation and Application of Functional Languages (Singapore, Singapore) – ident: bib6 – year: 2024 ident: bib64 article-title: Haskell bson library – year: 2024 ident: bib40 article-title: Daedalus Repository – year: 1994 ident: bib41 publication-title: Abstract Syntax Notation One (ASN.1): Specification of base notation – volume: 18 start-page: 1 year: 2008 end-page: 13 ident: bib18 article-title: Applicative Programming with Effects publication-title: Journal of Functional Programming – start-page: 3 year: 2020 end-page: 17 ident: bib9 publication-title: Proceedings of the 9th ACM SIGPLAN International Conference on Certified Programs and Proofs, CPP 2020, New Orleans, LA, USA, January 20-21, 2020 doi: 10.1145/3372885.3373836 – year: 2007 ident: bib48 – start-page: 1465 year: 2019 end-page: 1482 ident: bib57 publication-title: 28th USENIX Security Symposium, USENIX Security 2019, Santa Clara, CA, USA, August 14-16, 2019 – start-page: 1036 year: 2020 end-page: 1051 ident: bib28 publication-title: Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation (London, UK) (PLDI 2020) doi: 10.1145/3385412.3385992 – ident: bib20 – year: 2024 ident: bib51 article-title: Language Server Protocol – year: 2024 ident: bib22 article-title: hyperfine: a command-line benchmarking tool – year: 2020 ident: bib29 publication-title: 14th USENIX Workshop on Offensive Technologies (WOOT 20) – volume: 13 start-page: 577 issue: 4-5 year: 2004 end-page: 625 ident: bib27 article-title: Boltzmann Samplers for the Random Generation of Combinatorial Structures publication-title: Combinatorics, Probability and Computing – year: 1992 ident: bib49 article-title: A Theory of Qualified Types publication-title: ESOP ’92: European Symposium on Programming – volume: 11 start-page: 481 issue: 4 year: 1964 end-page: 494 ident: bib12 article-title: Derivatives of Regular Expressions publication-title: J. ACM doi: 10.1145/321239.321249 – year: 2024 ident: bib24 article-title: DFDL (Open Grid Forum) – year: 2020 ident: bib36 article-title: Exploiting PHP Phar Deserialization Vulnerabilities: Part 1 publication-title: Keysight – year: 2001 ident: bib21 article-title: Parsec: direct style monadic parser combinators for the real world – year: 2023 ident: bib56 – volume: 5 start-page: 127 issue: 8 year: 2007 ident: bib60 article-title: Thrift: Scalable cross-language services implementation publication-title: Facebook white paper – year: 2024 ident: bib33 article-title: Wuffs. Wrangling Untrusted File Formats Safely – year: 2001 ident: bib68 article-title: Flawfinder – ident: bib15 article-title: Alex User Guide – start-page: PS1:15-1 year: 1975 end-page: PS1:15-32 ident: bib61 publication-title: Yacc: Yet Another Compiler-Compiler – year: 1972 ident: bib2 publication-title: The Theory of Parsing, Translation, and Compiling – year: 1996 ident: bib34 publication-title: Monadic Parser Combinators – year: 2024 ident: bib55 – ident: bib19 – year: 2020 ident: bib42 publication-title: ISO 32000-2:2020 (PDF 2.0) – volume: 49 start-page: 637 year: 2014 end-page: 653 ident: bib47 article-title: Staged parser combinators for efficient data processing publication-title: ACM SIGPLAN Notices – year: 2011 ident: bib50 publication-title: Data Format Description Language: Lessons Learned, Concepts and Experience – volume: 17 start-page: 348 issue: 3 year: 1978 end-page: 375 ident: bib58 article-title: A Theory of Type Polymorphism in Programming publication-title: J. Comput. System Sci – volume: 57 issue: 2 year: 2010 ident: bib44 article-title: The Next 700 Data Description Languages publication-title: Journal of the ACM – year: 2023 ident: bib45 article-title: Cybercriminals Using Polyglot Files in Malware Distribution to Fly Under the Radar publication-title: The Hacker News – start-page: 77 year: 2007 end-page: 83 ident: bib70 publication-title: Proceedings of the 34th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL – year: 2020 ident: bib3 article-title: How to Abuse and Fix Authenticated Encryption Without Key Commitment publication-title: IACR Cryptology ePrint Archive – year: 2019 ident: bib35 article-title: Hammer: Parser Combinators for Binary Formats, in C. Yes, in C. What? Don’t Look at Me like That. UpstandingHackers – year: 2000 ident: bib46 publication-title: ASN. 1 Complete – volume: 52 start-page: 859 issue: 1 year: 2017 end-page: 873 ident: bib53 article-title: LMS-Verify: abstraction without regret for verified systems programming publication-title: SIGPLAN Not – start-page: 3 year: 2015 end-page: 11 ident: bib13 publication-title: NASA Formal Methods – year: 2001 ident: bib26 publication-title: ASN.1: Communication Between Heterogeneous Systems – start-page: 168 year: 2005 end-page: 179 ident: bib38 publication-title: Proceedings of the Tenth ACM SIGPLAN International Conference on Functional Programming – year: 2024 ident: bib39 article-title: Daedalus PLDI Artifact doi: 10.5281/zenodo.10966813 – year: 2022 ident: bib4 publication-title: Protecting Systems From Exploits Using Language-Theoretic Security – year: 2024 ident: bib32 article-title: Protocol Buffers - Google’s data interchange format – ident: bib11 article-title: attoparsec: Fast combinator parsing for bytestrings and text – year: 1979 ident: bib37 publication-title: Introduction to Automata Theory, Languages, and Computation – ident: bib54 – start-page: 615 year: 2014 end-page: 628 ident: bib7 publication-title: Proceedings of the 11th USENIX Conference on Operating Systems Design and Implementation – year: 1993 ident: bib66 article-title: National Imagery Transmission Format (Version 2.0). Standard. US DoD – volume: 39 start-page: 111 issue: 1 year: 2004 end-page: 122 ident: bib30 article-title: Parsing Expression Grammars: A Recognition-Based Syntactic Foundation publication-title: SIGPLAN Not doi: 10.1145/982962.964011 – ident: bib5 – year: 2007 ident: bib25 publication-title: High-Level Abstractions for Low-Level Programming – volume: 3 start-page: 82:1 year: 2019 end-page: 82:29 ident: bib23 article-title: Narcissus: correct-by-construction derivation of decoders and encoders from binary formats publication-title: Proc. ACM Program. Lang doi: 10.1145/3341686 – start-page: 66 year: 2002 end-page: 77 ident: bib31 publication-title: Proceedings of the ACM Conference on Generative Programming and Component Engineering Proceedings (GPCE 2002), published as LNCS 2487 – year: 2024 ident: bib69 article-title: XpdfReader – year: 2021 ident: bib8 – ident: e_1_3_1_46_2 – ident: e_1_3_1_17_2 doi: 10.1145/351240.351266 – ident: e_1_3_1_54_2 doi: 10.1145/3093333.3009867 – ident: e_1_3_1_19_2 doi: 10.1017/S0956796807006326 – volume-title: Abstract Syntax Notation One (ASN.1): Specification of base notation year: 1994 ident: e_1_3_1_42_2 – ident: e_1_3_1_6_2 – ident: e_1_3_1_37_2 – ident: e_1_3_1_39_2 doi: 10.1145/1086365.1086387 – ident: e_1_3_1_66_2 doi: 10.1109/SPW54247.2022.9833889 – ident: e_1_3_1_70_2 – start-page: PS1:15-1 volume-title: Yacc: Yet Another Compiler-Compiler year: 1975 ident: e_1_3_1_62_2 – ident: e_1_3_1_10_2 doi: 10.1145/3372885.3373836 – ident: e_1_3_1_7_2 – ident: e_1_3_1_23_2 – ident: e_1_3_1_28_2 doi: 10.1017/S0963548304006315 – volume: 5 start-page: 127 issue: 8 year: 2007 ident: e_1_3_1_61_2 article-title: Thrift: Scalable cross-language services implementation publication-title: Facebook white paper – start-page: 615 volume-title: Proceedings of the 11th USENIX Conference on Operating Systems Design and Implementation year: 2014 ident: e_1_3_1_8_2 – volume-title: ISO 32000-2:2020 (PDF 2.0) year: 2020 ident: e_1_3_1_43_2 – ident: e_1_3_1_13_2 doi: 10.1145/321239.321249 – start-page: 1465 volume-title: 28th USENIX Security Symposium, USENIX Security 2019, Santa Clara, CA, USA, August 14-16, 2019 year: 2019 ident: e_1_3_1_58_2 – ident: e_1_3_1_68_2 doi: 10.1109/TSE.1984.5010248 – volume-title: ASN.1: Communication Between Heterogeneous Systems year: 2001 ident: e_1_3_1_27_2 – ident: e_1_3_1_56_2 – ident: e_1_3_1_2_2 doi: 10.5555/6448 – volume-title: 14th USENIX Workshop on Offensive Technologies (WOOT 20) year: 2020 ident: e_1_3_1_30_2 – ident: e_1_3_1_45_2 doi: 10.1145/1667053.1667059 – ident: e_1_3_1_67_2 – start-page: 12 volume-title: Proceedings of the 31st Symposium on Implementation and Application of Functional Languages (Singapore, Singapore) year: 2021 ident: e_1_3_1_60_2 – ident: e_1_3_1_31_2 doi: 10.1145/982962.964011 – ident: e_1_3_1_16_2 – ident: e_1_3_1_21_2 – volume-title: High-Level Abstractions for Low-Level Programming year: 2007 ident: e_1_3_1_26_2 – ident: e_1_3_1_57_2 – ident: e_1_3_1_12_2 – ident: e_1_3_1_49_2 – ident: e_1_3_1_4_2 – ident: e_1_3_1_9_2 – ident: e_1_3_1_63_2 doi: 10.1145/3519939.3523708 – volume-title: Introduction to Automata Theory, Languages, and Computation year: 1979 ident: e_1_3_1_38_2 – ident: e_1_3_1_34_2 – ident: e_1_3_1_59_2 doi: 10.1016/0022-0000(78)90014-4 – ident: e_1_3_1_29_2 doi: 10.1145/3385412.3385992 – ident: e_1_3_1_20_2 – ident: e_1_3_1_65_2 – ident: e_1_3_1_5_2 doi: 10.5555/AAI29211293 – ident: e_1_3_1_11_2 doi: 10.1145/964001.964011 – ident: e_1_3_1_64_2 doi: 10.5555/2501720 – ident: e_1_3_1_24_2 doi: 10.1145/3341686 – start-page: 3 volume-title: NASA Formal Methods year: 2015 ident: e_1_3_1_14_2 doi: 10.1007/978-3-319-17524-9_1 – ident: e_1_3_1_18_2 – start-page: 66 volume-title: Proceedings of the ACM Conference on Generative Programming and Component Engineering Proceedings (GPCE 2002), published as LNCS 2487 year: 2002 ident: e_1_3_1_32_2 – ident: e_1_3_1_40_2 doi: 10.5281/zenodo.10966813 – ident: e_1_3_1_15_2 doi: 10.1109/TIT.1956.1056813 – ident: e_1_3_1_25_2 – ident: e_1_3_1_36_2 – volume-title: ASN. 1 Complete year: 2000 ident: e_1_3_1_47_2 – ident: e_1_3_1_33_2 – volume-title: Data Format Description Language: Lessons Learned, Concepts and Experience year: 2011 ident: e_1_3_1_51_2 – ident: e_1_3_1_22_2 – ident: e_1_3_1_50_2 doi: 10.5555/145055.145097 – ident: e_1_3_1_55_2 – volume-title: The Theory of Parsing, Translation, and Compiling year: 1972 ident: e_1_3_1_3_2 – ident: e_1_3_1_52_2 – ident: e_1_3_1_41_2 – ident: e_1_3_1_44_2 – ident: e_1_3_1_53_2 doi: 10.1109/SPW50608.2020.00064 – ident: e_1_3_1_69_2 – volume-title: Monadic Parser Combinators year: 1996 ident: e_1_3_1_35_2 – ident: e_1_3_1_48_2 doi: 10.1145/2714064.2660241 – ident: e_1_3_1_71_2 doi: 10.1145/1190216.1190231 |
SSID | ssj0001934839 |
Score | 2.259393 |
Snippet | Despite decades of contributions to the theoretical foundations of parsing and the many tools available to aid in parser development, many security attacks in... |
SourceID | crossref acm |
SourceType | Index Database Publisher |
StartPage | 816 |
SubjectTerms | Domain specific languages Functional languages Parsers Parsing Program analysis Software and its engineering Theory of computation |
SubjectTermsDisplay | Software and its engineering -- Domain specific languages Software and its engineering -- Functional languages Software and its engineering -- Parsers Theory of computation -- Parsing Theory of computation -- Program analysis |
Title | Daedalus: Safer Document Parsing |
URI | https://dl.acm.org/doi/10.1145/3656410 |
Volume | 8 |
hasFullText | 1 |
inHoldings | 1 |
isFullTextHit | |
isPrint | |
link | http://utb.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwnV1LTxsxELZ4XLjQloegtNUeuKGF-LVZ94agbagIigRI3JCfAhESFBIOHPrbO_baGyM4lF5Wu7bXkv2Nxp_HMx6EdmHJ4hpof2kdMSVjlpY1J65UUkolqaxkyN7QP6t6l-z3Fb9K2exjdMlU7evnN-NK_gdVKANcfZTsO5BtO4UCeAd84QkIw_OfMD6W1sjhLHi1nUtnJ8CH9Swc7w9ksALk3HPQrlXBfePwqO9PCqKD1r03GSTj5TzZPACnb5rM1ifyaTzZO99v68bGNKbq27tWOn6Nh-YxJdDsyUnIcDjXcv47SNTtcJjbGwjzflGkk0lI9GEPOoqwLi8xa4Kck0KtM7kZnB6fZPqxxlW-1DY3Nb3W4sxfeEGBarLo8_rySuxYs4iWCWwOvHbr_8ksa4IyoH1NhLTv6yC29wRE32cEJGMSFx_RatwCFIcNnp_Qgh2toQ8pvUYRte06KhK834sAbpHALSK4G-jy54-Lo14ZE1qUklAxLS1xxjBBa-uqSmLuupRKooUWsG1VDtiTU11RY2oVw7rGVnENLAMrQ2rVsZRuoqXReGS3UCFURznjtDCOMoe5clxwXVGtOxo4H95GazDW64fmypLrOAPbqEhjb6uayHSemnx-88cdtDKXhS9oaTqZ2a_AxqbqW5j8v3haNMg |
linkProvider | ISSN International Centre |
openUrl | ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.atitle=Daedalus%3A+Safer+Document+Parsing&rft.jtitle=Proceedings+of+ACM+on+programming+languages&rft.au=Diatchki%2C+Iavor+S.&rft.au=Dodds%2C+Mike&rft.au=Goldstein%2C+Harrison&rft.au=Harris%2C+Bill&rft.date=2024-06-20&rft.pub=ACM&rft.eissn=2475-1421&rft.volume=8&rft.issue=PLDI&rft.spage=816&rft.epage=840&rft_id=info:doi/10.1145%2F3656410&rft.externalDocID=3656410 |
thumbnail_l | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/lc.gif&issn=2475-1421&client=summon |
thumbnail_m | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/mc.gif&issn=2475-1421&client=summon |
thumbnail_s | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/sc.gif&issn=2475-1421&client=summon |