Skip to content

[HOTFIX] Avoid shell evaluation of interpreter launch arguments - #5429

Draft
jongyoul wants to merge 1 commit into
apache:masterfrom
jongyoul:codex/security-interpreter-eval
Draft

[HOTFIX] Avoid shell evaluation of interpreter launch arguments#5429
jongyoul wants to merge 1 commit into
apache:masterfrom
jongyoul:codex/security-interpreter-eval

Conversation

@jongyoul

Copy link
Copy Markdown
Member

What is this PR for?

This PR makes interpreter launch argument handling predictable across configuration and impersonation modes.

The dependency downloader command is now executed directly as an argument array instead of being evaluated as a shell command. Classpath wildcards, spaces, JVM options, and other configured values therefore remain literal process arguments.

When user impersonation is enabled, %conf and session-scoped configuration reject new environment-variable-style overrides. Existing operator-provided interpreter settings remain unchanged, and rejected updates are not partially applied.

What type of PR is it?

Hot Fix

Todos

  • Execute downloader arguments without shell evaluation
  • Preserve classpath and JVM argument behavior
  • Validate user-provided environment overrides in impersonation mode
  • Add unit and shell-level regression tests

What is the Jira issue?

N/A

How should this be tested?

ZEPPELIN_LOCAL_IP=127.0.0.1 ./mvnw -pl zeppelin-server \
  -Dtest=ConfInterpreterTest,SessionConfInterpreterTest,InterpreterShellScriptTest,StandardInterpreterLauncherTest test

./mvnw -pl zeppelin-server -DskipTests -Prat apache-rat:check

The tests cover literal argument handling for classpaths, wildcards, JVM options, rejected environment overrides with impersonation enabled, allowed updates without impersonation, and preservation of existing operator configuration.

Screenshots (if appropriate)

N/A

Questions:

  • Does the license files need to update? No
  • Is there breaking changes for older versions? No
  • Does this needs documentation? No

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant