Skip to content

Instantly share code, notes, and snippets.

@webdeb
Created March 31, 2026 11:56
Show Gist options
  • Select an option

  • Save webdeb/b734c36653c4254bac83a1ba7b0c5e58 to your computer and use it in GitHub Desktop.

Select an option

Save webdeb/b734c36653c4254bac83a1ba7b0c5e58 to your computer and use it in GitHub Desktop.
Check Axios vulnerability
#!/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