Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Sushant Dinesh

dblp:266/8877 · DBLP profile ↗
← Back
5ranked-venue papers
4as first author
3since 2021 · last 2025
0009-0003-6685-7226ORCID · reported

Domains — the database's venue-derived domains; a paper can count in several

Security and privacy · 3 · 3 first-author · 2 since 2021Software engineering, systems software and programming languages · 2 · 1 first-author · 1 since 2021Systems, architecture and hardware · 1 · 1 first-author · 1 since 2021

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Software engineering, system software, and programming languages
4 papers
Program analysis · 39% Programming languages and type systems · 24% Program verification · 21%
Network and information security
3 papers
Systems and software security · 57% Hardware security and side channels · 25% Cryptographic primitives and cryptanalysis · 19%
Computer architecture, parallel and distributed computing, and storage systems
2 papers
Electronic design automation · 88% Processor architecture and microarchitecture · 12%

Topics — the 15 heaviest of 17, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Program analysis
binary analysis
0.922020
RetroWrite: Statically Instrumenting COTS Binaries for Fuzzing and Sanitization · SP 2020
Scalable validation of binary lifters · PLDI 2020
Electronic design automation › hardware verification and test
formal verification
0.912025
H-Houdini: Scalable Invariant Learning · ASPLOS (1) 2025
Electronic design automation › hardware verification and test
hardware verification
0.912025
H-Houdini: Scalable Invariant Learning · ASPLOS (1) 2025
Cryptographic primitives and cryptanalysis › cryptographic implementation
constant-time implementation
0.612022
SynthCT: Towards Portable Constant-Time Code · NDSS 2022
Systems and software security › vulnerability discovery
fuzzing
0.412020
RetroWrite: Statically Instrumenting COTS Binaries for Fuzzing and Sanitization · SP 2020
Systems and software security
memory safety
0.412020
RetroWrite: Statically Instrumenting COTS Binaries for Fuzzing and Sanitization · SP 2020
Systems and software security › exploitation mitigation
sanitization
0.412020
RetroWrite: Statically Instrumenting COTS Binaries for Fuzzing and Sanitization · SP 2020
Systems and software security
vulnerability discovery
0.412020
RetroWrite: Statically Instrumenting COTS Binaries for Fuzzing and Sanitization · SP 2020
Program analysis › binary analysis
binary lifting
0.412020
Scalable validation of binary lifters · PLDI 2020
Programming languages and type systems › language semantics
formal semantics
0.412020
Scalable validation of binary lifters · PLDI 2020
Programming languages and type systems › language semantics › formal semantics
instruction set semantics
0.412020
Scalable validation of binary lifters · PLDI 2020
Compilers and program optimization › verified compilation
translation validation
0.412020
Scalable validation of binary lifters · PLDI 2020
Processor architecture and microarchitecture › instruction set architecture
RISC-V
0.212024
ConjunCT: Learning Inductive Invariants to Prove Unbounded Instruction Safety Against Microarchitectural Timing Attacks · SP 2024
Compilers and program optimization
code generation
0.212022
SynthCT: Towards Portable Constant-Time Code · NDSS 2022
Program analysis › dynamic analysis
instrumentation
0.112020
RetroWrite: Statically Instrumenting COTS Binaries for Fuzzing and Sanitization · SP 2020

Methods — techniques the papers use, named apart from their topics

program synthesis · 3.4symbolic analysis · 2.3inductive invariant learning · 2.3invariant inference · 0.9formal methods · 0.9static binary rewriting · 0.9coverage-guided fuzzing · 0.9semantic equivalence checking · 0.4graph isomorphism · 0.4
YearPublicationVenuePosition
2025 H-Houdini: Scalable Invariant Learning
abstract
Formal verification is a critical task in hardware design today. Yet, while there has been significant progress in improving technique automation and efficiency, scaling to large hardware designs remains a significant challenge.
Sushant Dinesh, Yongye Zhu, Christopher W. Fletcher
ASPLOS (1)1
2024 ConjunCT: Learning Inductive Invariants to Prove Unbounded Instruction Safety Against Microarchitectural Timing Attacks
abstract
The past decade has seen a deluge of microarchitectural side channels stemming from a variety of hardware structures (the cache, branch predictor, execution ports, the TLB, speculation, etc). These attacks stem from software that passes sensitive data to so-called unsafe or transmitter instructions, i.e., those whose execution time depends on their operands’ values. Correspondingly, there has been a large number of defenses (spanning hardware and software) that attempt to enforce the policy: sensitive data ↛ unsafe instruction operand. Implementing this policy assumes that one can identify unsafe instructions for a given microarchitecture. But this is quite difficult—requiring the designer to analyze potentially unbounded compositions of dynamic instructions to tease out subtle interactions they may have with one another.This paper addresses the above challenge by proposing ConjunCT. Given RTL: ConjunCT proves, for all possible executions, whether each ISA instruction is either i) safe for an unbounded number of cycles or ii) unsafe. This is done using a combination of symbolic analysis (to generate examples) and inductive invariant learning (bootstrapped by said examples), and enabled by a novel conditional information flow predicate that we show is useful for analyzing information flows in processor pipelines.We demonstrate our analysis on several RISC-V microarchitectures of varying complexity, and use it to extract the safe/unsafe sets for each. Through a judicious use of program synthesis, we are able to automate the analysis (almost entirely) from end to end, e.g., requiring only 8 designer annotations to fully analyze the RISC-V RocketChip core. Lastly, we show through several case studies how ConjunCT can be used by microarchitects to understand the security implications of an advanced optimization, and how the invariants generated by ConjunCT can be used to localize where in the microarchitecture unsafety occurs.
Sushant Dinesh, Madhusudan Parthasarathy, Christopher W. Fletcher
SP1
2022 SynthCT: Towards Portable Constant-Time Code
Sushant Dinesh, Grant Garrett-Grossman, Christopher W. Fletcher
NDSS1
2020 Scalable validation of binary lifters
abstract
Validating the correctness of binary lifters is pivotal to gain trust in binary analysis, especially when used in scenarios where correctness is important. Existing approaches focus on validating the correctness of lifting instructions or basic blocks in isolation and do not scale to full programs. In this work, we show that formal translation validation of single instructions for a complex ISA like x86-64 is not only practical, but can be used as a building block for scalable full-program validation. Our work is the first to do translation validation of single instructions on an architecture as extensive as x86-64, uses the most precise formal semantics available, and has the widest coverage in terms of the number of instructions tested for correctness. Next, we develop a novel technique that uses validated instructions to enable program-level validation, without resorting to performance-heavy semantic equivalence checking. Specifically, we compose the validated IR sequences using a tool we develop called Compositional Lifter to create a reference standard. The semantic equivalence check between the reference and the lifter output is then reduced to a graph-isomorphism check through the use of semantic preserving transformations. The translation validation of instructions in isolation revealed 29 new bugs in McSema – a mature open-source lifter from x86-64 to LLVM IR. Towards the validation of full programs, our approach was able to prove the translational correctness of 2254/2348 functions taken from LLVM’s single-source benchmark test-suite.
Sandeep Dasgupta, Sushant Dinesh, Deepan Venkatesh, Vikram S. Adve, Christopher W. Fletcher
PLDI2
2020 RetroWrite: Statically Instrumenting COTS Binaries for Fuzzing and Sanitization
abstract
Analyzing the security of closed source binaries is currently impractical for end-users, or even developers who rely on third-party libraries. Such analysis relies on automatic vulnerability discovery techniques, most notably fuzzing with sanitizers enabled. The current state of the art for applying fuzzing or sanitization to binaries is dynamic binary translation, which has prohibitive performance overhead. The alternate technique, static binary rewriting, cannot fully recover symbolization information and hence has difficulty modifying binaries to track code coverage for fuzzing or to add security checks for sanitizers.The ideal solution for binary security analysis would be a static rewriter that can intelligently add the required instrumentation as if it were inserted at compile time. Such instrumentation requires an analysis to statically disambiguate between references and scalars, a problem known to be undecidable in the general case. We show that recovering this information is possible in practice for the most common class of software and libraries: 64-bit, position independent code. Based on this observation, we develop RetroWrite, a binary-rewriting instrumentation to support American Fuzzy Lop (AFL) and Address Sanitizer (ASan), and show that it can achieve compiler-level performance while retaining precision. Binaries rewritten for coverage-guided fuzzing using RetroWrite are identical in performance to compiler-instrumented binaries and outperform the default QEMU-based instrumentation by 4.5x while triggering more bugs. Our implementation of binary-only Address Sanitizer is 3x faster than Valgrind's memcheck, the state-of-the-art binary-only memory checker, and detects 80% more bugs in our evaluation.
Sushant Dinesh, Nathan Burow, Dongyan Xu, Mathias Payer
SP1