Skip to main content
Glama
authentication.yaml5.24 kB
rules: - id: asvs-2-1-1-weak-password-length patterns: - pattern-either: - pattern: len($PASSWORD) < $NUM - pattern: $PASSWORD.length < $NUM - pattern: | if len($PASSWORD) < $NUM: ... - metavariable-comparison: metavariable: $NUM comparison: $NUM < 12 message: | ASVS 2.1.1 (Level 1): Password must be at least 12 characters. Current validation allows passwords shorter than 12 characters. This makes passwords vulnerable to brute force attacks. severity: ERROR languages: [python, javascript, typescript] metadata: vulnerability: weak_password asvs_id: "2.1.1" asvs_level: 1 category: authentication cwe: "CWE-521" owasp: "A07:2021 - Identification and Authentication Failures" remediation: "Enforce minimum password length of 12 characters" - id: asvs-9-2-1-weak-password-hashing-md5 patterns: - pattern-either: - pattern: hashlib.md5($PASSWORD) - pattern: hashlib.sha1($PASSWORD) - pattern: hashlib.sha256($PASSWORD) message: | ASVS 9.2.1: Weak password hashing algorithm detected. MD5, SHA1, and SHA256 are not suitable for password hashing. Use Argon2id, bcrypt, scrypt, or PBKDF2 instead. severity: ERROR languages: [python] metadata: vulnerability: weak_password_hash asvs_id: "9.2.1" asvs_level: 1 category: cryptography cwe: "CWE-916" owasp: "A02:2021 - Cryptographic Failures" remediation: | Use secure password hashing: from passlib.hash import argon2 password_hash = argon2.hash(password) - id: asvs-2-3-1-hardcoded-password patterns: - pattern-either: - pattern: password = "..." - pattern: PASSWORD = "..." - pattern: pwd = "..." - pattern: passwd = "..." - pattern-not: password = "" - pattern-not: PASSWORD = "" message: | ASVS 2.3.1: Hardcoded password detected. Passwords should never be hardcoded in source code. Use environment variables or secure credential storage. severity: ERROR languages: [python, javascript, typescript, java, go] metadata: vulnerability: hardcoded_password asvs_id: "2.3.1" asvs_level: 1 category: authentication cwe: "CWE-798" owasp: "A07:2021 - Identification and Authentication Failures" remediation: "Load passwords from environment variables or secure vaults" - id: asvs-2-2-1-missing-rate-limiting patterns: - pattern-either: - pattern: | @app.route("/.../login", ...) def $FUNC(...): ... - pattern: | @app.post("/.../login") def $FUNC(...): ... - pattern-not-inside: | @limiter.limit(...) def $FUNC(...): ... - pattern-not-inside: | @rate_limit(...) def $FUNC(...): ... message: | ASVS 2.2.1: Login endpoint missing rate limiting. Implement rate limiting to prevent brute force attacks. Add exponential backoff or CAPTCHA after failed attempts. severity: WARNING languages: [python] metadata: vulnerability: no_rate_limiting asvs_id: "2.2.1" asvs_level: 1 category: authentication cwe: "CWE-307" owasp: "A07:2021 - Identification and Authentication Failures" remediation: | Use Flask-Limiter: @limiter.limit("5 per 15 minutes") @app.route("/login", methods=["POST"]) def login(): ... - id: asvs-2-7-1-sms-2fa patterns: - pattern-either: - pattern: send_sms($PHONE, ...) - pattern: twilio.messages.create(...) - pattern: sns.publish(PhoneNumber=..., ...) message: | ASVS 2.7.1: SMS-based 2FA detected. SMS and PSTN are weak authentication methods (SIM swapping, SS7 attacks). Prioritize TOTP authenticator apps or push notifications. severity: WARNING languages: [python, javascript, typescript] metadata: vulnerability: weak_2fa asvs_id: "2.7.1" asvs_level: 1 category: authentication cwe: "CWE-287" owasp: "A07:2021 - Identification and Authentication Failures" remediation: "Implement TOTP (pyotp) or push notifications instead of SMS" - id: asvs-2-5-2-security-questions patterns: - pattern-either: - pattern: security_question - pattern: securityQuestion - pattern: secret_question - pattern: password_hint - pattern: passwordHint message: | ASVS 2.5.2: Security questions or password hints detected. These are inherently weak and easily guessable. Use proper password reset with time-limited tokens instead. severity: WARNING languages: [python, javascript, typescript, java] metadata: vulnerability: weak_password asvs_id: "2.5.2" asvs_level: 1 category: authentication cwe: "CWE-640" remediation: "Use email-based password reset with secure, time-limited tokens"

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/harn1shmodi/vsguard-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server