Litcius/Paper detail

Gillian, Part II: Real-World Verification for JavaScript and C

Petar Maksimović, Sacha-Élie Ayoun, José Fragoso Santos, Philippa Gardner

2021Lecture notes in computer science19 citationsDOIOpen Access PDF

Abstract

Abstract We introduce verification based on separation logic to Gillian, a multi-language platform for the development of symbolic analysis tools which is parametric on the memory model of the target language. Our work develops a methodology for constructing compositional memory models for Gillian, leading to a unified presentation of the JavaScript and C memory models. We verify the JavaScript and C implementations of the AWS Encryption SDK message header deserialisation module, specifically designing common abstractions used for both verification tasks, and find two bugs in the JavaScript and three bugs in the C implementation.

Topics & Concepts

Computer scienceJavaScriptProgramming languageHeaderImplementationSymbolic executionSoftwareComputer networkLogic, programming, and type systemsSecurity and Verification in ComputingFormal Methods in Verification