File tree Expand file tree Collapse file tree
agent_api/src/main/java/dev/aikido/agent_api/vulnerabilities/sql_injection
agent/src/main/java/dev/aikido/agent Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -41,6 +41,7 @@ private Wrappers() {}
4141 new JavalinWrapper (),
4242 new JavalinDataWrapper (),
4343 new JavalinContextClearWrapper (),
44- new SQLiteWrapper ()
44+ new SQLiteWrapper (),
45+ new HyperSQLWrapper ()
4546 );
4647}
Original file line number Diff line number Diff line change 1+ package dev .aikido .agent .wrappers .jdbc ;
2+
3+ import dev .aikido .agent .wrappers .Wrapper ;
4+ import net .bytebuddy .description .method .MethodDescription ;
5+ import net .bytebuddy .description .type .TypeDescription ;
6+ import net .bytebuddy .matcher .ElementMatcher ;
7+
8+ import java .sql .Connection ;
9+ import java .sql .Statement ;
10+
11+ import static net .bytebuddy .matcher .ElementMatchers .isSubTypeOf ;
12+ import static net .bytebuddy .matcher .ElementMatchers .nameContains ;
13+
14+ public class HyperSQLWrapper implements Wrapper {
15+ public String getName () {
16+ return JDBCConnectionAdvice .class .getName ();
17+ }
18+ public ElementMatcher <? super MethodDescription > getMatcher () {
19+ return JDBCConnectionAdvice .getMatcher ("org.hsqldb.jdbc" );
20+ }
21+
22+ @ Override
23+ public ElementMatcher <? super TypeDescription > getTypeMatcher () {
24+ return nameContains ("org.hsqldb.jdbc" )
25+ .and (isSubTypeOf (Connection .class ).or (isSubTypeOf (Statement .class )));
26+ }
27+ }
Original file line number Diff line number Diff line change @@ -18,6 +18,11 @@ public Dialect(String dialect) {
1818 } else if (Objects .equals (dialect , "sqlite" )) {
1919 rustDialectInt = 12 ;
2020 humanName = "SQLite" ;
21+ } else if (Objects .equals (dialect , "hsql database engine" )) {
22+ // HyperSQL dialect doesn't exist yet on our tokenizer, so we use generic dialect,
23+ // which is SQL:2016, HyperSQL is closest to this variant.
24+ rustDialectInt = 0 ;
25+ humanName = "HyperSQL" ;
2126 } else {
2227 rustDialectInt = 0 ; // Default option
2328 humanName = "Generic" ;
You can’t perform that action at this time.
0 commit comments