Skip to content

Add CVE-2025-55182 React2Shell bambda (#153) #136

Add CVE-2025-55182 React2Shell bambda (#153)

Add CVE-2025-55182 React2Shell bambda (#153) #136

name: Run Bambda Checker on Merge
on:
push:
branches:
- main
jobs:
update_readmes:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
ref: main
ssh-key: ${{secrets.ACTION_PRIVKEY}}
fetch-depth: 2
- uses: actions/setup-java@v4
with:
java-version: '21'
distribution: 'oracle'
- name: Check for Bambda file changes
id: check_bambda_changes
run: |
ALL_BAMBDA_CHANGES=$(git diff --name-only HEAD~1 HEAD | grep '\.bambda$' || true)
if [ -n "$ALL_BAMBDA_CHANGES" ]; then
echo "bambdas_changed=true" >> $GITHUB_OUTPUT
NEW_BAMBDAS=$(git diff --name-only --diff-filter=A HEAD~1 HEAD | grep '\.bambda$' || true)
if [ -n "$NEW_BAMBDAS" ]; then
echo "new_bambdas=true" >> $GITHUB_OUTPUT
echo "bambda_files<<EOF" >> $GITHUB_OUTPUT
echo "$NEW_BAMBDAS" >> $GITHUB_OUTPUT
echo "EOF" >> $GITHUB_OUTPUT
else
echo "new_bambdas=false" >> $GITHUB_OUTPUT
fi
else
echo "bambdas_changed=false" >> $GITHUB_OUTPUT
echo "new_bambdas=false" >> $GITHUB_OUTPUT
fi
- name: Validate Bambdas & update READMEs
if: steps.check_bambda_changes.outputs.bambdas_changed == 'true'
run: |
[ $(sha256sum BambdaChecker-1.5.jar | awk '{ print $1 }') = '085787c80b9f70f431c6f5a329cf59385b67e69d74116b11e5c4ccbc021ec3d6' ]
java -jar BambdaChecker-1.5.jar
git config --local user.email "41898282+github-actions[bot]@users.noreply.github.com"
git config --local user.name "github-actions[bot]"
git add .
git commit -m "Update README.md files" || true
git push || true
- name: Send Discord webhooks for new Bambdas
if: steps.check_bambda_changes.outputs.new_bambdas == 'true'
run: |
set -euo pipefail
BAMBDA_LIST="${{ steps.check_bambda_changes.outputs.bambda_files }}"
while IFS= read -r file; do
if [ -n "$file" ]; then
BAMBDA_NAME=$(grep '^name:' "$file" | head -1 | sed 's/^name: *//')
DESCRIPTION=$(sed -n '/\/\*\*/,/\*\*\//p' "$file" | grep -v '@author' | grep -v '/\*\*' | grep -v '\*\*/' | grep -v '^\s*\*\s*$' | head -1 | sed 's/^\s*\*\s*//')
AUTHOR=$(sed -n '/\/\*\*/,/\*\*\//p' "$file" | grep '@author' | sed 's/^\s*\*\s*@author\s*//')
FILE_URL="https://github.com/${{ github.repository }}/blob/main/$file"
MSG_TITLE=$(jq -n --arg title ":tada: ${BAMBDA_NAME}" '$title')
MSG_DESC=""
if [ -n "$DESCRIPTION" ]; then
MSG_DESC="${DESCRIPTION}\n\n"
fi
if [ -n "$AUTHOR" ]; then
MSG_DESC="${MSG_DESC}**Author:** ${AUTHOR}"
fi
MSG_DESC=$(jq -n --arg desc "$MSG_DESC" '$desc')
HTTP_CODE=$(curl -s -w "%{http_code}" -o /dev/null \
-H "Content-Type: application/json" \
-X POST -d @- "${{ secrets.DISCORD_WEBHOOK_URL }}" <<EOF
{
"embeds": [
{
"type": "rich",
"title": $MSG_TITLE,
"description": $MSG_DESC,
"color": 2123412,
"url": "$FILE_URL"
}
]
}
EOF
)
if [ "$HTTP_CODE" -ne 204 ]; then
echo "Webhook request failed for $file with response code: $HTTP_CODE"
else
echo "Webhook request succeeded for $file"
fi
fi
done <<< "$BAMBDA_LIST"