Skip to content

Commit 670d9f3

Browse files
authored
Fix security issue. (#1892)
Signed-off-by: ZePan110 <[email protected]>
1 parent 555c410 commit 670d9f3

File tree

1 file changed

+22
-22
lines changed

1 file changed

+22
-22
lines changed

.github/workflows/_helm-e2e.yml

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -131,32 +131,32 @@ jobs:
131131
ref: ${{ steps.get-checkout-ref.outputs.CHECKOUT_REF }}
132132
fetch-depth: 0
133133

134-
- name: Validate Inputs
135-
run: |
136-
cd ${{ github.workspace }}
137-
folders=($(find . -maxdepth 1 -type d ! -name ".*" -printf "%f\n" | tr '[:upper:]' '[:lower:]'))
138-
echo "folders: ${folders[@]}"
139-
echo "example: ${{ inputs.example }}"
140-
example_lower=$(echo "${{ inputs.example }}" | tr '[:upper:]' '[:lower:]')
141-
if [[ ! " ${folders[@]} " =~ " ${example_lower} " ]]; then
142-
echo "Error: Input '${example_lower}' is not in the list of folders."
143-
exit 1
144-
fi
145-
146134
- name: Set variables
147135
env:
148136
example: ${{ inputs.example }}
149137
run: |
150-
CHART_NAME="${example,,}" # CodeGen
151-
echo "CHART_NAME=$CHART_NAME" >> $GITHUB_ENV
152-
echo "RELEASE_NAME=${CHART_NAME}$(date +%Y%m%d%H%M%S)" >> $GITHUB_ENV
153-
echo "NAMESPACE=${CHART_NAME}-$(head -c 4 /dev/urandom | xxd -p)" >> $GITHUB_ENV
154-
echo "ROLLOUT_TIMEOUT_SECONDS=600s" >> $GITHUB_ENV
155-
echo "TEST_TIMEOUT_SECONDS=600s" >> $GITHUB_ENV
156-
echo "KUBECTL_TIMEOUT_SECONDS=60s" >> $GITHUB_ENV
157-
echo "should_cleanup=false" >> $GITHUB_ENV
158-
echo "skip_validate=false" >> $GITHUB_ENV
159-
echo "CHART_FOLDER=${example}/kubernetes/helm" >> $GITHUB_ENV
138+
if [[ ! "$example" =~ ^[a-zA-Z]{1,20}$ ]] || [[ "$example" =~ \.\. ]] || [[ "$example" == -* || "$example" == *- ]]; then
139+
echo "Error: Invalid input - only lowercase alphanumeric and internal hyphens allowed"
140+
exit 1
141+
fi
142+
# SAFE_PREFIX="kb-"
143+
CHART_NAME="${SAFE_PREFIX}$(echo "$example" | tr '[:upper:]' '[:lower:]')"
144+
RAND_SUFFIX=$(openssl rand -hex 2 | tr -dc 'a-f0-9')
145+
146+
cat <<EOF >> $GITHUB_ENV
147+
CHART_NAME=${CHART_NAME}
148+
RELEASE_NAME=${CHART_NAME}-$(date +%s)
149+
NAMESPACE=ns-${CHART_NAME}-${RAND_SUFFIX}
150+
ROLLOUT_TIMEOUT_SECONDS=600s
151+
TEST_TIMEOUT_SECONDS=600s
152+
KUBECTL_TIMEOUT_SECONDS=60s
153+
should_cleanup=false
154+
skip_validate=false
155+
CHART_FOLDER=${example}/kubernetes/helm
156+
EOF
157+
158+
echo "Generated safe variables:" >> $GITHUB_STEP_SUMMARY
159+
echo "- CHART_NAME: ${CHART_NAME}" >> $GITHUB_STEP_SUMMARY
160160
161161
- name: Helm install
162162
id: install

0 commit comments

Comments
 (0)