VLDB 2026 Research / reviewers in the wild / expert
Gary Wassermann
dblp:w/GWassermann
· DBLP profile ↗
8ranked-venue papers
5as first author
0since 2021 · last 2008
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 6 · 4 first-authorSystems, architecture and hardware · 1Theory of computation · 1 · 1 first-author
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 · 70% Software testing · 30% | |
| Network and information security
5 papers |
Web and mobile security · 53% Systems and software security · 33% Malware analysis · 14% | |
| Databases, data mining, and information retrieval
1 paper |
Query processing and optimization · 100% |
Topics — the 9 heaviest of 12, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Program analysis
static analysis |
0.2 | 3 | 2008 | Static detection of cross-site scripting vulnerabilities · ICSE 2008 Static checking of dynamically generated queries in database applications · ACM Trans. Softw. Eng. Methodol. 2007 Sound and precise analysis of web applications for injection vulnerabilities · PLDI 2007 |
Program analysis › static analysis
taint analysis |
0.2 | 2 | 2008 | Static detection of cross-site scripting vulnerabilities · ICSE 2008 Sound and precise analysis of web applications for injection vulnerabilities · PLDI 2007 |
Software testing › test generation
dynamic test generation |
0.1 | 1 | 2008 | Dynamic test input generation for web applications · ISSTA 2008 |
Software testing
test generation |
0.1 | 1 | 2008 | Dynamic test input generation for web applications · ISSTA 2008 |
Web and mobile security › web security › web vulnerability detection
SQL injection detection |
0.1 | 1 | 2007 | Sound and precise analysis of web applications for injection vulnerabilities · PLDI 2007 |
Web and mobile security
web security |
0.1 | 1 | 2007 | Sound and precise analysis of web applications for injection vulnerabilities · PLDI 2007 |
Web and mobile security
SQL injection prevention |
0.1 | 1 | 2006 | The essence of command injection attacks in web applications · POPL 2006 |
Web and mobile security
web application security |
0.0 | 1 | 2008 | Dynamic test input generation for web applications · ISSTA 2008 |
Automata and formal languages › formal grammars
context-free grammar |
0.0 | 1 | 2007 | Sound and precise analysis of web applications for injection vulnerabilities · PLDI 2007 |
Methods — techniques the papers use, named apart from their topics
string analysis · 0.2context-free grammar modeling · 0.2taint analysis · 0.2static analysis · 0.2dynamic analysis · 0.2static program analysis · 0.1soundness proof · 0.1weakest precondition calculation · 0.1virtual machine introspection · 0.1symbolic execution · 0.1context-free grammar · 0.1compiler parsing · 0.1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2008 | Static detection of cross-site scripting vulnerabilitiesabstractWeb applications support many of our daily activities, but they often have security problems, and their accessibility makes them easy to exploit. In cross-site scripting (XSS), an attacker exploits the trust a web client (browser) has for a trusted server and executes injected script on the browser with the server's privileges. In 2006, XSS constituted the largest class of newly reported vulnerabilities making it the most prevalent class of attacks today. Web applications have XSS vulnerabilities because the validation they perform on untrusted input does not suffice to prevent that input from invoking a browser's JavaScript interpreter, and this validation is particularly difficult to get right if it must admit some HTML mark-up. Most existing approaches to finding XSS vulnerabilities are taint-based and assume input validation functions to be adequate, so they either miss real vulnerabilities or report many false positives. Gary Wassermann, Zhendong Su 0001 |
ICSE | 1 |
| 2008 | Dynamic test input generation for web applicationsabstractWeb applications routinely handle sensitive data, and many people rely on them to support various daily activities, so errors can have severe and broad-reaching consequences. Unlike most desktop applications, many web applications are written in scripting languages, such as PHP. The dynamic features commonly supported by these languages significantly inhibit static analysis and existing static analysis of these languages can fail to produce meaningful results on realworld web applications. Gary Wassermann, Dachuan Yu, Ajay Chander, Dinakar Dhurjati, Hiroshi Inamura, Zhendong Su 0001 |
ISSTA | 1 |
| 2008 | Bezoar: Automated virtual machine-based full-system recovery from control-flow hijacking attacksabstractSystem availability is difficult for systems to maintain in the face of Internet worms. Large systems have vulnerabilities, and if a system attempts to continue operation after an attack, it may not behave properly. Traditional mechanisms for detecting attacks disrupt service and current recovery approaches are application-based and cannot guarantee recovery in the face of exploits that corrupt the kernel, involve multiple processes or target multithreaded network services. This paper presents Bezoar, an automated full-system virtual machine-based approach to recover from zero-day control-flow hijacking attacks. Bezoar tracks down the source of network bytes in the system and after an attack, replays the checkpointed run while ignoring inputs from the malicious source. We evaluated our proof-of-concept prototype on six notorious exploits for Linux and Windows. In all cases, it recovered the full system state and resumed execution. Bezoar incurs low overhead to the virtual machine: less than 1% for the recovery and log components and approximately 1.4X for the memory monitor component that tracks down network bytes, for five SPEC INT 2000 benchmarks. Daniela Oliveira 0001, Jedidiah R. Crandall, Gary Wassermann, Shaozhi Ye, Shyhtsun Felix Wu, Zhendong Su 0001, Fred Chong |
NOMS | 3 |
| 2007 | Sound and precise analysis of web applications for injection vulnerabilitiesabstractWeb applications are popular targets of security attacks. One common type of such attacks is SQL injection, where an attacker exploits faulty application code to execute maliciously crafted database queries. Bothstatic and dynamic approaches have been proposed to detect or prevent SQL injections; while dynamic approaches provide protection for deployed software, static approaches can detect potential vulnerabilities before software deployment. Previous static approaches are mostly based on tainted information flow tracking and have at least some of the following limitations: (1) they do not model the precise semantics of input sanitization routines; (2) they require manually written specifications, either for each query or for bug patterns; or (3) they are not fully automated and may require user intervention at various points in the analysis. In this paper, we address these limitations by proposing a precise, sound, and fully automated analysis technique for SQL injection. Our technique avoids the need for specifications by consideringas attacks those queries for which user input changes the intended syntactic structure of the generated query. It checks conformance to this policy byconservatively characterizing the values a string variable may assume with a context free grammar, tracking the nonterminals that represent user-modifiable data, and modeling string operations precisely as language transducers. We have implemented the proposed technique for PHP, the most widely-used web scripting language. Our tool successfully discovered previously unknown and sometimes subtle vulnerabilities in real-world programs, has a low false positive rate, and scales to large programs (with approx. 100K loc). Gary Wassermann, Zhendong Su 0001 |
PLDI | 1 |
| 2007 | Static checking of dynamically generated queries in database applicationsabstractMany data-intensive applications dynamically construct queries in response to client requests and execute them. Java servlets, for example, can create strings that represent SQL queries and then send the queries, using JDBC, to a database server for execution. The servlet programmer enjoys static checking via Java's strong type system. However, the Java type system does little to check for possible errors in the dynamically generated SQL query strings. Thus, a type error in a generated selection query (e.g., comparing a string attribute with an integer) can result in an SQL runtime exception. Currently, such defects must be rooted out through careful testing, or (worse) might be found by customers at runtime. In this article, we present a sound , static program analysis technique to verify that dynamically generated query strings do not contain type errors. We describe our analysis technique and provide soundness results for our static analysis algorithm. We also describe the details of a prototype tool based on the algorithm and present several illustrative defects found in senior software-engineering student-team projects, online tutorial examples, and a real-world purchase order system written by one of the authors. Gary Wassermann, Carl Gould 0001, Zhendong Su 0001, Premkumar T. Devanbu |
ACM Trans. Softw. Eng. Methodol. | 1 |
| 2006 | Temporal search: detecting hidden malware timebombs with virtual machinesabstractWorms, viruses, and other malware can be ticking bombs counting down to a specific time, when they might, for example, delete files or download new instructions from a public web server. We propose a novel virtual-machine-based analysis technique to automatically discover the timetable of a piece of malware, or when events will be triggered, so that other types of analysis can discern what those events are. This information can be invaluable for responding to rapid malware, and automating its discovery can provide more accurate information with less delay than careful human analysis.Developing an automated system that produces the timetable of a piece of malware is a challenging research problem. In this paper, we describe our implementation of a key component of such a system: the discovery of timers without making assumptions about the integrity of the infected system's kernel. Our technique runs a virtual machine at slightly different rates of perceived time (time as seen by the virtual machine), and identifies time counters by correlating memory write frequency to timer interrupt frequency.We also analyze real malware to assess the feasibility of using full-system, machine-level symbolic execution on these timers to discover predicates. Because of the intricacies of the Gregorian calendar (leap years, different number of days in each month, etc.) these predicates will not be direct expressions on the timer but instead an annotated trace; so we formalize the calculation of a timetable as a weakest precondition calculation. Our analysis of six real worms sheds light on two challenges for future work: 1) time-dependent malware behavior often does not follow a linear timetable; and 2) that an attacker with knowledge of the analysis technique can evade analysis. Our current results are promising in that with simple symbolic execution we are able to discover predicates on the day of the month for four real worms. Then through more traditional manual analysis we conclude that a more control-flow-sensitive symbolic execution implementation would discover all predicates for the malware we analyzed. Jedidiah R. Crandall, Gary Wassermann, Daniela Oliveira 0001, Zhendong Su 0001, Shyhtsun Felix Wu, Fred Chong |
ASPLOS | 2 |
| 2006 | Validity Checking for Finite Automata over Linear Arithmetic Constraints
Gary Wassermann, Zhendong Su 0001 |
FSTTCS | 1 |
| 2006 | The essence of command injection attacks in web applicationsabstractWeb applications typically interact with a back-end database to retrieve persistent data and then present the data to the user as dynamically generated output, such as HTML web pages. However, this interaction is commonly done through a low-level API by dynamically constructing query strings within a general-purpose programming language, such as Java. This low-level interaction is ad hoc because it does not take into account the structure of the output language. Accordingly, user inputs are treated as isolated lexical entities which, if not properly sanitized, can cause the web application to generate unintended output. This is called a command injection attack, which poses a serious threat to web application security. This paper presents the first formal definition of command injection attacks in the context of web applications, and gives a sound and complete algorithm for preventing them based on context-free grammars and compiler parsing techniques. Our key observation is that, for an attack to succeed, the input that gets propagated into the database query or the output document must change the intended syntactic structure of the query or document. Our definition and algorithm are general and apply to many forms of command injection attacks. We validate our approach with SqlCheckS, an implementation for the setting of SQL command injection attacks. We evaluated SqlCheckS on real-world web applications with systematically compiled real-world attack data as input. SqlCheckS produced no false positives or false negatives, incurred low runtime overhead, and applied straightforwardly to web applications written in different languages. Zhendong Su 0001, Gary Wassermann |
POPL | 2 |