jshell

Shell

This executable can spawn an interactive system shell.
  1. This function can be performed by any unprivileged user.
    jshell
    Runtime.getRuntime().exec("/path/to/command");
    This function is performed by the privileged user if executed via sudo because the acquired privileges are not dropped.
    RemarksIf there are environment variables involved, they must be passed via sudo VAR=value ... or exported then sudo -E ....
    jshell
    Runtime.getRuntime().exec("/path/to/command");
    OutputThe commands are executed but their output is hidden from the attacker.

File write

This executable can write data to local files.
  1. CommentWrites only the valid Java code to file.
    This function can be performed by any unprivileged user.
    jshell
    String x = "DATA";
    /save /path/to/output-file
    This function is performed by the privileged user if executed via sudo because the acquired privileges are not dropped.
    RemarksIf there are environment variables involved, they must be passed via sudo VAR=value ... or exported then sudo -E ....
    jshell
    String x = "DATA";
    /save /path/to/output-file
    RemarksThe content is corrupted or otherwise altered by the process, thus it might not be suitable for handling arbitrary binary data.

File read

This executable can read data from local files.
  1. CommentThe content is leaked as error messages.
    This function can be performed by any unprivileged user.
    jshell
    jshell> /open /path/to/input-file
    This function is performed by the privileged user if executed via sudo because the acquired privileges are not dropped.
    RemarksIf there are environment variables involved, they must be passed via sudo VAR=value ... or exported then sudo -E ....
    jshell
    jshell> /open /path/to/input-file
    RemarksThe content is corrupted or otherwise altered by the process, thus it might not be suitable for handling arbitrary binary data.