File tree Expand file tree Collapse file tree 8 files changed +64
-16
lines changed
src/semmle/code/java/frameworks
query-tests/security/CWE-918
javax-ws-rs-api-2.1.1/javax/ws/rs/client
javax-ws-rs-api-3.0.0/jakarta/ws/rs Expand file tree Collapse file tree 8 files changed +64
-16
lines changed Original file line number Diff line number Diff line change @@ -789,6 +789,10 @@ private class UriBuilderModel extends SummaryModelCsv {
789
789
790
790
private class JaxRsUrlOpenSink extends SinkModelCsv {
791
791
override predicate row ( string row ) {
792
- row = [ "javax.ws.rs.client;Client;true;target;;;Argument[0];open-url" ]
792
+ row =
793
+ [
794
+ "javax.ws.rs.client;Client;true;target;;;Argument[0];open-url" ,
795
+ "jakarta.ws.rs.client;Client;true;target;;;Argument[0];open-url"
796
+ ]
793
797
}
794
798
}
Original file line number Diff line number Diff line change
1
+ import jakarta .ws .rs .client .*;
2
+ import java .io .IOException ;
3
+
4
+ import javax .servlet .ServletException ;
5
+ import javax .servlet .http .HttpServlet ;
6
+ import javax .servlet .http .HttpServletRequest ;
7
+ import javax .servlet .http .HttpServletResponse ;
8
+
9
+ public class JakartaWsSSRF extends HttpServlet {
10
+
11
+ protected void doGet (HttpServletRequest request , HttpServletResponse response )
12
+ throws ServletException , IOException {
13
+ Client client = ClientBuilder .newClient ();
14
+ String url = request .getParameter ("url" );
15
+ client .target (url ); // $ SSRF
16
+ }
17
+
18
+ }
Original file line number Diff line number Diff line change 1
- //semmle-extractor-options: --javac-args -source 11 -target 11 -cp ${testdir}/../../../stubs/springframework-5.2.3:${testdir}/../../../stubs/javax-ws-rs-api-2.1.1:${testdir}/../../../stubs/apache-http-4.4.13/:${testdir}/../../../stubs/servlet-api-2.4/
1
+ //semmle-extractor-options: --javac-args -source 11 -target 11 -cp ${testdir}/../../../stubs/springframework-5.2.3:${testdir}/../../../stubs/javax-ws-rs-api-2.1.1:${testdir}/../../../stubs/javax-ws-rs-api-3.0.0:${testdir}/../../../stubs/ apache-http-4.4.13/:${testdir}/../../../stubs/servlet-api-2.4/
Original file line number Diff line number Diff line change 15
15
*/
16
16
17
17
package javax .ws .rs .client ;
18
- // import java.net.URI;
18
+ import java .net .URI ;
19
19
import javax .ws .rs .core .Configurable ;
20
- // import javax.ws.rs.core.Link;
21
- // import javax.ws.rs.core.UriBuilder;
20
+ import javax .ws .rs .core .Link ;
21
+ import javax .ws .rs .core .UriBuilder ;
22
22
// import javax.net.ssl.HostnameVerifier;
23
23
// import javax.net.ssl.SSLContext;
24
24
25
25
public interface Client extends Configurable <Client > {
26
26
public void close ();
27
27
28
- // public WebTarget target(String uri);
28
+ public WebTarget target (String uri );
29
29
30
- // public WebTarget target(URI uri);
30
+ public WebTarget target (URI uri );
31
31
32
- // public WebTarget target(UriBuilder uriBuilder);
32
+ public WebTarget target (UriBuilder uriBuilder );
33
33
34
- // public WebTarget target(Link link);
34
+ public WebTarget target (Link link );
35
35
36
36
// public Invocation.Builder invocation(Link link);
37
37
Original file line number Diff line number Diff line change 15
15
*/
16
16
17
17
package jakarta .ws .rs .client ;
18
- // import java.net.URI;
18
+ import java .net .URI ;
19
19
// import javax.net.ssl.HostnameVerifier;
20
20
// import javax.net.ssl.SSLContext;
21
21
import jakarta .ws .rs .core .Configurable ;
22
- // import jakarta.ws.rs.core.Link;
23
- // import jakarta.ws.rs.core.UriBuilder;
22
+ import jakarta .ws .rs .core .Link ;
23
+ import jakarta .ws .rs .core .UriBuilder ;
24
24
25
25
public interface Client extends Configurable <Client > {
26
26
public void close ();
27
27
28
- // public WebTarget target(String uri);
28
+ public WebTarget target (String uri );
29
29
30
- // public WebTarget target(URI uri);
30
+ public WebTarget target (URI uri );
31
31
32
- // public WebTarget target(UriBuilder uriBuilder);
32
+ public WebTarget target (UriBuilder uriBuilder );
33
33
34
- // public WebTarget target(Link link);
34
+ public WebTarget target (Link link );
35
35
36
36
// public Invocation.Builder invocation(Link link);
37
37
Original file line number Diff line number Diff line change
1
+ package jakarta .ws .rs .client ;
2
+
3
+ public abstract class ClientBuilder implements jakarta .ws .rs .core .Configurable {
4
+
5
+ protected ClientBuilder () {
6
+ }
7
+
8
+ public static jakarta .ws .rs .client .ClientBuilder newBuilder () {
9
+ return null ;
10
+ }
11
+
12
+ public static jakarta .ws .rs .client .Client newClient () {
13
+ return null ;
14
+ }
15
+
16
+ public static jakarta .ws .rs .client .Client newClient (jakarta .ws .rs .core .Configuration configuration ) {
17
+ return null ;
18
+ }
19
+ }
Original file line number Diff line number Diff line change
1
+ package jakarta .ws .rs .client ;
2
+
3
+ public abstract interface WebTarget extends jakarta .ws .rs .core .Configurable {
4
+ }
Original file line number Diff line number Diff line change
1
+ package jakarta .ws .rs .core ;
2
+
3
+ public abstract interface Configuration {}
You can’t perform that action at this time.
0 commit comments