diff --git a/dispatch/github/actions/fullsend/action.yml b/dispatch/github/actions/fullsend/action.yml index 2b4dc59df0..84502579fe 100644 --- a/dispatch/github/actions/fullsend/action.yml +++ b/dispatch/github/actions/fullsend/action.yml @@ -99,7 +99,17 @@ runs: echo "::error::fullsend entrypoint did not print an artifact directory on stdout" exit 1 fi - echo "artifact_dir=${ARTIFACT_DIR}" >> "${GITHUB_OUTPUT}" + # Validate path is absolute and within expected boundaries. + if [[ "${ARTIFACT_DIR}" != /* ]]; then + echo "::error::fullsend entrypoint returned a non-absolute path: ${ARTIFACT_DIR}" + exit 1 + fi + # Use heredoc delimiter to prevent GITHUB_OUTPUT injection via newlines. + { + echo "artifact_dir<> "${GITHUB_OUTPUT}" - name: Upload fullsend artifacts uses: actions/upload-artifact@v4