nyx/tests/dynamic_fixtures/java/quarkus_route/Vuln.java
2026-06-05 10:16:30 -05:00

31 lines
1.1 KiB
Java

// Quarkus reactive route, vulnerable. The harness keeps the real
// Jakarta REST annotations on the classpath and replays the route
// through those annotations. Quarkus REST routes are authored with the
// `jakarta.ws.rs` annotations below, so no live Quarkus runtime is needed.
import jakarta.ws.rs.GET;
import jakarta.ws.rs.Path;
import java.io.BufferedReader;
import java.io.InputStreamReader;
@Path("/run")
public class Vuln {
@GET
public String run(String payload) throws Exception {
System.out.print("__NYX_SINK_HIT__\n");
if (payload == null) payload = "";
String[] cmd = {"/bin/sh", "-c", "echo hello " + payload};
Process p = Runtime.getRuntime().exec(cmd);
BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
StringBuilder out = new StringBuilder();
String line;
while ((line = reader.readLine()) != null) {
out.append(line);
out.append('\n');
System.out.println(line);
}
p.waitFor();
return out.toString();
}
}