Skip to main content

codeql-scanning

Analyze code for common vulnerability patterns using CodeQL-style queries. Identify injection flaws, unsafe deserialization, prototype pollution, path traversal, and other security issues in TypeScript/JavaScript code.

Quellinformationen

Repository
hyperledger-cacti/cacti
Letzte Quellaktivität
27. April 2026 um 13:39
Erkannte Sprache von SKILL.md
Englisch
Sterne
416
Forks
366

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
codeql-scanning
description
Analyze code for common vulnerability patterns using CodeQL-style queries. Identify injection flaws, unsafe deserialization, prototype pollution, path traversal, and other security issues in TypeScript/JavaScript code.
# CodeQL Scanning Skill Identify security vulnerability patterns in TypeScript/JavaScript code using static analysis techniques inspired by CodeQL queries. ## When to Use - When reviewing code for security vulnerabilities - Before merging PRs that handle user input or external data - When auditing authentication, authorization, or crypto code - When analyzing data flow from sources to sinks ## Vulnerability Patterns ### Injection Flaws (CWE-89, CWE-78, CWE-79) **SQL Injection**: User input concatenated into SQL queries. ```typescript // BAD: string concatenation const query = `SELECT * FROM users WHERE id = '${userId}'`; // GOOD: parameterized query const query = `SELECT * FROM users WHERE id = $1`; ``` **Command Injection**: User input passed to shell commands. ```typescript // BAD: unsanitized input in exec exec(`git clone ${repoUrl}`); // GOOD: use execFile with argument array execFile("git", ["clone", repoUrl]); ``` **XSS**: User input rendered without escaping in HTML responses. ### Prototype Pollution (CWE-1321) - `Object.assign` or spread with untrusted objects - Deep merge utilities without prototype checks - `__proto__` or `constructor.prototype` in user input ### Unsafe Deserialization (CWE-502) - `JSON.parse` of untrusted input without schema validation - `eval` or `Function()` with dynamic input - YAML/XML parsing without safe mode ### Path Traversal (CWE-22) - File paths constructed with user input without sanitization - Missing checks for `../` sequences - Symlink following without validation ### Insecure Crypto (CWE-327, CWE-330) - MD5 or SHA1 for password hashing (use bcrypt/scrypt/argon2) - `Math.random()` for security-sensitive values - Hardcoded encryption keys or IVs ### SSRF (CWE-918) - HTTP requests to user-supplied URLs without allowlist - DNS rebinding exposure - Internal network access via URL manipulation ### Cacti-Specific Patterns - **OpenAPI endpoint auth**: Endpoints in `openapi.json` missing security scheme definitions. - **Gateway protocol**: SATP Hermes messages accepted without signature verification or session validation. - **Ledger connector**: Private keys logged or stored insecurely. - **Test tooling in prod**: `cactus-test-tooling` imported in main source. ## Data Flow Analysis For each finding, trace the data flow: 1. **Source**: Where does untrusted data enter? (HTTP request, file read, environment variable, database query result) 2. **Propagation**: How does the data flow through the code? (variable assignment, function parameters, object properties) 3. **Sink**: Where is the data used in a security-sensitive operation? (SQL query, shell command, file path, HTTP response) 4. **Sanitizers**: Are there any validation or encoding steps between source and sink? ## Output Format ```markdown ## CodeQL-Style Scan: [Package/Scope] ### Findings #### [CWE-XXX] [Vulnerability Name] - **Severity**: Critical/High/Medium/Low - **Source**: [file:line] — [description of data entry point] - **Sink**: [file:line] — [description of dangerous operation] - **Flow**: source → [intermediate steps] → sink - **Sanitizer**: [present/missing] - **Fix**: [specific remediation steps] ### Summary - Critical: [count] - High: [count] - Medium: [count] - Low: [count] ```
Auf GitHub ansehen