Skip to main content
Glama
injection.yaml6.26 kB
rules: - id: asvs-5-3-4-sql-injection-format patterns: - pattern-either: - pattern: cursor.execute(f"... {$VAR} ...") - pattern: cursor.execute("..." + $VAR + "...") - pattern: cursor.execute("... %s ..." % $VAR) - pattern: cursor.execute("...".format($VAR)) message: | ASVS 5.3.4: SQL injection vulnerability detected. User input is concatenated directly into SQL query. Use parameterized queries with placeholders instead. severity: ERROR languages: [python] metadata: vulnerability: sql_injection asvs_id: "5.3.4" asvs_level: 1 category: input_validation cwe: "CWE-89" owasp: "A03:2021 - Injection" remediation: | Use parameterized queries: cursor.execute("SELECT * FROM users WHERE id = ?", (user_id,)) - id: asvs-5-3-4-sql-injection-concatenation patterns: - pattern-either: - pattern: $CURSOR.execute($SQL + $INPUT) - pattern: $CURSOR.execute($SQL % $INPUT) message: | ASVS 5.3.4: SQL injection risk from string concatenation. Never concatenate user input into SQL queries. Use parameterized queries or an ORM. severity: ERROR languages: [python] metadata: vulnerability: sql_injection asvs_id: "5.3.4" asvs_level: 1 category: input_validation cwe: "CWE-89" remediation: "Use parameterized queries with ? or %s placeholders" - id: asvs-5-3-3-xss-flask-safe patterns: - pattern-either: - pattern: Markup($USER_INPUT) - pattern: | $VAR = $USER_INPUT ... Markup($VAR) message: | ASVS 5.3.3: Potential XSS vulnerability. Marking user input as safe bypasses auto-escaping. Ensure input is properly sanitized before using Markup(). severity: ERROR languages: [python] metadata: vulnerability: xss asvs_id: "5.3.3" asvs_level: 1 category: input_validation cwe: "CWE-79" owasp: "A03:2021 - Injection" remediation: "Use auto-escaping templates or sanitize HTML with bleach library" - id: asvs-5-3-3-xss-react-dangerously patterns: - pattern: dangerouslySetInnerHTML={{__html:$HTML}} message: | ASVS 5.3.3: XSS risk from dangerouslySetInnerHTML. This bypasses React's XSS protection. Sanitize HTML with DOMPurify before rendering. severity: ERROR languages: [javascript, typescript] metadata: vulnerability: xss asvs_id: "5.3.3" asvs_level: 1 category: input_validation cwe: "CWE-79" remediation: | Sanitize first: const clean = DOMPurify.sanitize(html); <div dangerouslySetInnerHTML={{__html: clean}} /> - id: asvs-5-5-2-xxe-vulnerable patterns: - pattern-either: - pattern: xml.etree.ElementTree.parse($FILE) - pattern: xml.etree.ElementTree.fromstring($STR) - pattern: xml.dom.minidom.parse($FILE) - pattern: xml.dom.minidom.parseString($STR) - pattern-not-inside: | import defusedxml ... message: | ASVS 5.5.2: XML External Entity (XXE) vulnerability. Standard XML parsers are vulnerable to XXE attacks. Use defusedxml library for secure XML parsing. severity: ERROR languages: [python] metadata: vulnerability: xxe asvs_id: "5.5.2" asvs_level: 1 category: input_validation cwe: "CWE-611" owasp: "A05:2021 - Security Misconfiguration" remediation: | Use defusedxml: import defusedxml.ElementTree as ET tree = ET.parse(xml_file) - id: asvs-5-3-4-nosql-injection patterns: - pattern-either: - pattern: $DB.find({$KEY:$USER_INPUT}) - pattern: $DB.find_one({$KEY:$USER_INPUT}) - metavariable-pattern: metavariable: $USER_INPUT patterns: - pattern-not: "..." message: | ASVS 5.3.4: Potential NoSQL injection. User input directly in query may allow injection. Validate and sanitize input, use parameterized queries. severity: WARNING languages: [python, javascript, typescript] metadata: vulnerability: nosql_injection asvs_id: "5.3.4" asvs_level: 1 category: input_validation cwe: "CWE-943" remediation: "Validate input types and use schema validation" - id: asvs-5-3-4-command-injection patterns: - pattern-either: - pattern: os.system($CMD + $INPUT) - pattern: subprocess.call($CMD + $INPUT, ...) - pattern: subprocess.run($CMD + $INPUT, ...) - pattern: os.popen($CMD + $INPUT) message: | ASVS 5.3.4: Command injection vulnerability. User input concatenated into shell command. Use parameterized arguments or avoid shell=True. severity: ERROR languages: [python] metadata: vulnerability: command_injection asvs_id: "5.3.4" asvs_level: 1 category: input_validation cwe: "CWE-78" owasp: "A03:2021 - Injection" remediation: | Use list arguments: subprocess.run(["command", arg1, arg2], shell=False) - id: asvs-5-1-3-missing-input-validation patterns: - pattern-either: - pattern: | @app.route(...) def $FUNC(...): $INPUT = request.args.get(...) ... - pattern: | @app.route(...) def $FUNC(...): $INPUT = request.form.get(...) ... - pattern-not-inside: | ... if not $INPUT: ... - pattern-not-inside: | ... validate($INPUT) ... message: | ASVS 5.1.3: Missing input validation. User input should be validated before use. Use allowlists and validate format, type, and range. severity: WARNING languages: [python] metadata: vulnerability: missing_input_validation asvs_id: "5.1.3" asvs_level: 1 category: input_validation cwe: "CWE-20" remediation: "Use Pydantic models or manual validation with allowlists"

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