VLDB 2026 Research / reviewers in the wild / expert
Vaibhav Sharma 0001
dblp:01/3680-1
· DBLP profile ↗
12ranked-venue papers
6as first author
6since 2021 · last 2023
0000-0001-9877-8926ORCID · verified
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 11 · 5 first-author · 6 since 2021Security and privacy · 1 · 1 first-authorTheory of computation · 1 · 1 since 2021
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2023 | Structural Test Input Generation for 3-Address Code Coverage Using Path-Merged Symbolic ExecutionabstractTest input generation is one of the key applications of symbolic execution (SE). However, being a path-sensitive technique, SE often faces path explosion even when creating a branch-adequate test suite. Path-merging symbolic execution (PM-SE) alleviates the path explosion problem by summarizing regions of code into disjunctive constraints, thus traversing at once a set of paths with the same prefixes. Previous work has shown that PM-SE can reduce run-time up to 38%, though these improvements can be impaired if the summarized code results in complex constraints or introduces additional symbols that increase the number of branching points in the later execution.Considering these trade-offs, examining the ability of PM-SE to generate branch-adequate test inputs is an open research problem. This paper investigates it by developing a technique that extracts structural coverage-related queries from disjoint constraints. Using this approach, we extend PM-SE to generate branch-adequate test inputs.Experiments compare the effectiveness and efficiency of test input generation by SE and PM-SE techniques. Results show that those techniques are complementary. For some programs, PM-SE yields faster coverage, with fewer generated tests, while for others, SE performs better. In addition, each technique covers branches that the other fails to discover. Soha Hussein, Stephen McCamant, Elena Sherman, Vaibhav Sharma 0001, Michael W. Whalen |
AST | 4 |
| 2023 | Automated Analyses of IOT Event Monitoring SystemsabstractAbstract AWS IoT Events is an AWS service that makes it easy to respond to events from IoT sensors and applications.Detector modelsin AWS IoT Events enable customers to monitor their equipment or device fleets for failures or changes in operation and trigger actions when such events occur. If these models are incorrect, they may become out-of-sync with the actual state of the equipment causing customers to be unable to respond to events occurring on it. Working backwards from common mistakes made when creating detector models, we have created a set of automated analyzers that allow customers to prove their models are free from six common mistakes. Our analyzers have been running in the AWS IoT Events production service since December 2021. Our analyzers check six correctness properties in the production service in real time. 93% of customers of AWS IoT Events have run our analyzers without needing to have any knowledge of them. Our analyzers have reported property violations in 22% of submitted detector models in the production service. Andrew Apicelli, Sam Bayless, Ankush Das, Andrew Gacek, Dhiva Jaganathan, Saswat Padhi, Vaibhav Sharma 0001, Michael W. Whalen, Raveesh Yadav |
CAV (1) | 7 |
| 2023 | State Merging with Quantifiers in Symbolic ExecutionabstractWe address the problem of constraint encoding explosion which hinders the applicability of state merging in symbolic execution. Specifically, our goal is to reduce the number of disjunctions and if-then-else expressions introduced during state merging. The main idea is to dynamically partition the symbolic states into merging groups according to a similar uniform structure detected in their path constraints, which allows to efficiently encode the merged path constraint and memory using quantifiers. To address the added complexity of solving quantified constraints, we propose a specialized solving procedure that reduces the solving time in many cases. Our evaluation shows that our approach can lead to significant performance gains. David Trabish, Noam Rinetzky, Sharon Shoham, Vaibhav Sharma 0001 |
ESEC/SIGSOFT FSE | 4 |
| 2023 | Java Ranger: Supporting String and Array Operations in Java Ranger (Competition Contribution)abstractAbstract Java Ranger is a path-merging tool for Java Programs. It identifies branching regions of code and summarizes them by generating a disjunctive logical constraint that describes the behavior of the code region. Previously, Java Ranger showed that a reduction of 70% of execution paths is possible when used to merge branching regions of code that support numeric constraints. In this paper, we describe the support of two additional features since participation in SV-COMP 2020: symbolic array and symbolic string operations. Finally, we present a preliminary evaluation of the effect of the structure of the disjunctive constraint on the solver’s performance. Results suggest that certain constraint structures can speed up the performance of Java Ranger. Soha Hussein, Qiuchen Yan, Stephen McCamant, Vaibhav Sharma 0001, Michael W. Whalen |
TACAS (2) | 4 |
| 2021 | Counterexample Guided Inductive Repair of Reactive ContractsabstractUsing third-party executable components to build control systems poses challenges for verification. This is because the informal behavior descriptions that typically accompany the components often fall short of the needed rigor. Consequently, there is a need to formalize a component contract that is strong enough to help establish system properties and also weak enough to account for all potential component behaviors in the system’s context. In this paper, we present a novel approach that allows an analyst to hypothesize a component contract, explore if the component meets the contract, and, if not, have automated support to help repair the contract. Preliminary results show that, in more than 32% of the cases, the repaired contract is logically equivalent to a developer-written one; in a further 63% of cases, it is a distinct, valid, and non-trivial property of the component. Soha Hussein, Vaibhav Sharma 0001, Stephen McCamant, Sanjai Rayadurgam, Mats P. E. Heimdahl |
ASE | 2 |
| 2021 | Finding Substitutable Binary Code By Synthesizing AdaptersabstractIndependently developed codebases typically contain many segments of code that perform same or closely related operations (semantic clones). Finding functionally equivalent segments enables applications like replacing a segment by a more efficient or more secure alternative. Such related segments often have different interfaces, so some glue code (an adapter) is needed to replace one with the other. In previous work, we presented an algorithm that searches for replaceable code segments by attempting to synthesize an adapter between them from some finite family of adapters; it terminates if it finds no possible adapter. In this work, we compare binary symbolic execution-based adapter search with concrete adapter enumeration based on Intel’s Pin framework, and explore the relation between size of adapter search space and total search time. We present examples of applying adapter synthesis for improving security of binary functions and switching between binary implementations of RC4. We present two large-scale evaluations: (1) we run adapter synthesis on more than 13,000 function pairs from the Linux C library, and (2) we reverse engineer fragments of ARM binary code by running more than a million adapter synthesis tasks. Our results confirm that several instances of adaptably equivalent binary functions exist in real-world code, and suggest that adapter synthesis can be applied for automatically replacing binary code with its adaptably equivalent variants. Vaibhav Sharma 0001, Kesha Hietala, Stephen McCamant |
IEEE Trans. Software Eng. | 1 |
| 2020 | Java Ranger: statically summarizing regions for efficient symbolic execution of JavaabstractMerging execution paths is a powerful technique for reducing path explosion in symbolic execution. One approach, introduced and dubbed “veritesting” by Avgerinos et al., works by translating abounded control flow region into a single constraint. This approach is a convenient way to achieve path merging as a modification to a pre-existing single-path symbolic execution engine. Previous work evaluated this approach for symbolic execution of binary code, but different design considerations apply when building tools for other languages. In this paper, we extend the previous approach for symbolic execution of Java. Vaibhav Sharma 0001, Soha Hussein, Michael W. Whalen, Stephen McCamant, Willem Visser |
ESEC/SIGSOFT FSE | 1 |
| 2020 | Java Ranger at SV-COMP 2020 (Competition Contribution)abstractAbstract Path-merging is a known technique for accelerating symbolic execution. One technique, named “veritesting” by Avgerinos et al. uses summaries of bounded control-flow regions and has been shown to accelerate symbolic execution of binary code. But, when applied to symbolic execution of Java code, veritesting needs to be extended to summarize dynamically dispatched methods and exceptional control-flow. Such an extension of veritesting has been implemented in Java Ranger by implementing as an extension of Symbolic PathFinder, a symbolic executor for Java bytecode. In this paper, we briefly describe the architecture of Java Ranger and describe its setup for SV-COMP 2020. Vaibhav Sharma 0001, Soha Hussein, Michael W. Whalen, Stephen McCamant, Willem Visser |
TACAS (2) | 1 |
| 2019 | Automatically Repairing Binary Programs Using Adapter SynthesisabstractBugs in commercial software and third-party components are an undesirable and expensive phenomenon. Such software is usually released to users only in binary form. The lack of source code renders users of such software dependent on their software vendors for repairs of bugs. Such dependence is even more harmful if the bugs introduce new vulnerabilities in the software. Automatically repairing security and functionality bugs in binary code increases software robustness without any developer effort. In this research, we propose development of a binary program repair tool that uses existing bug-free fragments of code to repair buggy code. Vaibhav Sharma 0001 |
ASE | 1 |
| 2018 | Finding Substitutable Binary Code for Reverse Engineering by Synthesizing Adapters
Vaibhav Sharma 0001, Kesha Hietala, Stephen McCamant |
ICST | 1 |
| 2017 | Toward Rigorous Object-Code Coverage CriteriaabstractObject-branch coverage (OBC) is often used as a measure of the thoroughness of tests suites, augmenting or substituting source-code based structural criteria such as branch coverage and modified condition/decision coverage (MC/DC). In addition, with the increasing use of third-party components for which source-code access may be unavailable, robust object-code coverage criteria are essential to assess how well the components are exercised during testing. While OBC has the advantage of being programming language independent and is amenable to non-intrusive coverage measurement techniques, variations in compilers and the optimizations they perform can substantially change the structure of the generated code and the instructions used to represent branches. To address the need for a robust object coverage criterion, this paper proposes a rigorous definition of OBC such that it captures well the semantics of source code branches for a given instruction set architecture. We report an empirical assessment of these criteria for the Intel x86 instruction set on several examples from embedded control systems software. Preliminary results indicate that object-code coverage can be made robust to compilation variations and is comparable in its bug-finding efficacy to source level MC/DC. Taejoon Byun, Vaibhav Sharma 0001, Sanjai Rayadurgam, Stephen McCamant, Mats P. E. Heimdahl |
ISSRE | 2 |
| 2017 | User authentication and identification from user interface interactions on touch-enabled devicesabstractWe investigate if a mobile application running on a touch-enabled device can continuously and unobtrusively authenticate and identify its users based only on their interactions with the user interface of the application. A unique advantage that this modality provides over other implicit modalities on mobile devices is that every user who uses the mobile application is automatically enrolled into the classification system via the touch-based interface, thereby guaranteeing that an attacker cannot avoid the classification system. Using different types of input controls available on the Android platform, we collected interactions from 42 users in five sessions. We created base classifiers from each type of input control and combined them into an ensemble classifier to authenticate and identify users. We found that a Support Vector Machine-based ensemble classifier achieves a mean equal error rate of 7% for user authentication and a median accuracy of 93% for user identification. We found that Support Vector Machine-based ensemble classifiers outperform other techniques in both cases. While the ensemble classifier performance for authentication and identification is not found to be sufficient for it to replace current primary authentication mechanisms used in mobile applications, its truly continuous nature provides motivation for it to be used in conjunction with primary authentication mechanisms. UI interaction-based authentication and identification is independent of swipe gesture-based and keystroke-based authentication, allowing it to be combined with those modalities, while remaining resilient to attacks against those modalities. Vaibhav Sharma 0001, Richard J. Enbody |
WISEC | 1 |