Patent ID: 11947677
Assignee: ORACLE INTERNATIONAL CORPORATION
Field: Computer technology (Electrical engineering)
Classification: CPC G | IPC G

Claim 7:
8. A system comprising:
a hardware computer processor;
a repository configured to store source code and an abstract syntax tree generated from the source code;
a taint propagation instrumenter, executing on the hardware computer processor and configured to:
determine that a first non-constant value of a first non-constant variable corresponding to a first variable node of the abstract syntax tree flows into a first operator node in the abstract syntax tree,
add, to the abstract syntax tree between the first variable node and the first operator node, a first check taint node comprising functionality to:
make a first taint status determination that the first non-constant value is tainted,
return the first non-constant value to the first operator node, wherein the first operator node generates a first result value by executing a first operator using the first non-constant value, and
convey the first taint status determination to a first set taint node, and

add, to the abstract syntax tree, the first set taint node between the first operator node and a parent node of the first operator node,
wherein the first set taint node stores based on the first taint status determination, the first result value in a first tainted object that identifies the first result value as tainted;

an abstract syntax tree interpreter, executing on the hardware computer processor and configured to execute the abstract syntax tree, wherein executing the abstract syntax tree comprises processing the first check taint node and the first set taint node; and
a taint analyzer, executing on the hardware computer processor and configured to:
perform, while executing the abstract syntax tree and using the abstract syntax tree, a taint analysis of the source code to identify a vulnerability in the source code.