This commit is contained in:
Eli Peter 2026-06-05 10:16:30 -05:00 committed by GitHub
parent 55247b7fcd
commit 991c84a1eb
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
1464 changed files with 225448 additions and 1985 deletions

View file

@ -0,0 +1,23 @@
// Phase 14 plain static method, benign.
//
// Invokes a fixed shell command and discards the user input the `;`
// in a vuln payload cannot escape because the payload is never passed
// to a shell-interpreted argv slot.
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Benign {
public static void processInput(String input) throws Exception {
System.out.print("__NYX_SINK_HIT__\n");
// No-op echo of a fixed string `input` is dropped.
String[] cmd = {"/bin/sh", "-c", "echo hello"};
Process p = Runtime.getRuntime().exec(cmd);
BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
p.waitFor();
}
}

View file

@ -0,0 +1,21 @@
// Phase 14 plain static method, vulnerable.
//
// JDK-only. Passes user input through `/bin/sh -c` so a `;` in the
// payload escapes into a new command (CMDI oracle marker fires).
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Vuln {
public static void processInput(String input) throws Exception {
System.out.print("__NYX_SINK_HIT__\n");
String[] cmd = {"/bin/sh", "-c", "echo hello " + input};
Process p = Runtime.getRuntime().exec(cmd);
BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
p.waitFor();
}
}

View file

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Phase 14 fixture pom.xml — pins JDK 17 for materialize_java parity.
Not consumed by prepare_java (which shells out to `javac` directly);
present so the Phase 09 Track D.2 dep-emission path has a reference. -->
<project xmlns="http://maven.apache.org/POM/4.0.0">
<modelVersion>4.0.0</modelVersion>
<groupId>nyx</groupId>
<artifactId>static-method-fixture</artifactId>
<version>0.0.1</version>
<properties>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
</properties>
</project>