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.

소스 정보

저장소
hyperledger-cacti/cacti
최근 소스 활동
2026년 4월 27일 13:39
감지된 SKILL.md 언어
영어
스타
416
포크
366

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
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] ```
GitHub에서 보기