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.

Informações da origem

Repositório
hyperledger-cacti/cacti
Última atividade na origem
27 de abril de 2026 às 13:39
Idioma detectado do SKILL.md
inglês
Estrelas
416
Forks
366

Opções de instalação

Por padrão, está selecionado o prompt que primeiro revisa a origem. Você pode mudar para um comando direto ou baixar uma cópia local.

Revise os arquivos de origem

Leia o SKILL.md e os arquivos complementares exibidos pelo SkillsMP antes de decidir se vai instalar.

Exibindo SKILL.md

SKILL.md
Instruções da origem · Visualização somente leitura
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] ```
Ver no GitHub