Created
March 31, 2026 11:56
-
-
Save webdeb/b734c36653c4254bac83a1ba7b0c5e58 to your computer and use it in GitHub Desktop.
Check Axios vulnerability
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/bin/bash | |
| if [ -z "$1" ]; then | |
| echo "❌ Fehler: Kein Suchpfad angegeben." | |
| echo "💡 Verwendung: $0 <Pfad-zum-Ordner>" | |
| exit 1 | |
| fi | |
| SEARCH_DIR="$1" | |
| BAD_AXIOS_1="1.14.1" | |
| BAD_AXIOS_2="0.30.4" | |
| if [ ! -d "$SEARCH_DIR" ]; then | |
| echo "❌ Fehler: Das Verzeichnis '$SEARCH_DIR' existiert nicht." | |
| exit 1 | |
| fi | |
| echo "🦠 Starte tiefen Scan in '$SEARCH_DIR'..." | |
| echo "------------------------------------------------------" | |
| INFECTED_COUNT=0 | |
| # Temporäre Datei erstellen, um alle gefundenen Versionen zu sammeln | |
| TMP_VERSIONS=$(mktemp) | |
| while read -r file; do | |
| # 1. Prüfung: Malware direkt gefunden? | |
| if [[ "$file" == *"node_modules/plain-crypto/package.json" || "$file" == *"node_modules/plain-crypto-js/package.json" ]]; then | |
| PROJECT_DIR=$(echo "$file" | sed -E 's|/node_modules/plain-crypto(-js)?/package.json||') | |
| echo "🔥 KRITISCHER ALARM: Malware 'plain-crypto(-js)' gefunden in:" | |
| echo " 📂 $PROJECT_DIR" | |
| echo "" | |
| ((INFECTED_COUNT++)) | |
| continue | |
| fi | |
| # 2. Prüfung: Axios Version checken | |
| if [[ "$file" == *"node_modules/axios/package.json" ]]; then | |
| VERSION=$(grep -m 1 '"version"' "$file" | cut -d'"' -f4) | |
| # Version in die temporäre Datei schreiben | |
| echo "$VERSION" >> "$TMP_VERSIONS" | |
| if [[ "$VERSION" == "$BAD_AXIOS_1" || "$VERSION" == "$BAD_AXIOS_2" ]]; then | |
| PROJECT_DIR=$(echo "$file" | sed "s|/node_modules/axios/package.json||") | |
| echo "🚨 ALARM: Verseuchte Axios Version $VERSION gefunden in:" | |
| echo " 📂 $PROJECT_DIR" | |
| echo "" | |
| ((INFECTED_COUNT++)) | |
| fi | |
| fi | |
| done < <(find "$SEARCH_DIR" -type f \( -path "*/node_modules/axios/package.json" -o -path "*/node_modules/plain-crypto/package.json" -o -path "*/node_modules/plain-crypto-js/package.json" \) 2>/dev/null) | |
| echo "------------------------------------------------------" | |
| echo "installierte axios versionen:" | |
| echo "" | |
| # Auswertung der temporären Datei | |
| if [ -s "$TMP_VERSIONS" ]; then | |
| # sortiert die Versionen, zählt Duplikate (uniq -c) und formatiert die Ausgabe mit awk | |
| sort "$TMP_VERSIONS" | uniq -c | awk '{print $2 " -> x" $1}' | |
| else | |
| echo "Keine axios Installationen gefunden." | |
| fi | |
| # Temporäre Datei aufräumen | |
| rm -f "$TMP_VERSIONS" | |
| echo "" | |
| # Finale Bewertung | |
| if [ $INFECTED_COUNT -eq 0 ]; then | |
| echo "✅ Alles sauber!" | |
| else | |
| echo "⚠️ ACHTUNG: Es wurden $INFECTED_COUNT kritische Funde gemacht!" | |
| fi |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment