constant-time-testing
12 findings (8 critical, 2 medium, 2 low), mainly hardcoded secrets, policy violation, transitive trust abuse. Most recent scan 2026-02-08.
The constant-time-testing skill appears to be an educational resource about timing side-channel vulnerabilities in cryptographic code. The skill contains no executable scripts and consists only of instructional markdown content explaining timing attacks, common vulnerability patterns, and testing methodologies. However, there are two security concerns: (1) MEDIUM severity - The skill references five Python files that are not included in the package, creating potential transitive trust risks if these files are expected from external or user-provided sources; (2) LOW severity - Missing optional metadata fields reduce transparency. The instructional content itself does not contain prompt injection attempts, malicious directives, or deceptive descriptions. If the referenced files are purely illustrative examples rather than actual dependencies, the primary risk is reduced, but this should be clarified in the documentation.
Scanner's overall assessment (LLM analyzer)
Second scanner: NVIDIA SkillSpector
SkillSpector found no issues but could not fully inspect the package, usually because SKILL.md refers to a file that is not present, so it fails closed to CAUTION instead of SAFE. Read it as "not fully checked", not as a finding. How the two scanners compare across the whole corpus: Two scanners, one corpus.
What this skill does
Constant-time testing detects timing side channels in cryptographic code. Use when auditing crypto implementations for timing vulnerabilities.
- Package
- 1 file, 21 KB
- SKILL.md
- 2497 words, 12+ sections
- Code
- None. Instructions only.
SKILL.md covers: Constant-Time Testing · Background · Key Concepts · Why This Matters · Common Constant-Time Violation Patterns · Example: Modular Exponentiation Timing Attacks · When to Use · Quick Reference · Constant-Time Tooling Categories · 1. Formal Tools · 2. Symbolic Tools · 3. Dynamic Tools
Findings
CRITICAL CREDENTIAL HARVESTING detected by YARA Hardcoded Secretsstatic
Detects potential exposure of sensitive information like API keys, passwords, tokens, and certificates: leak secret
SKILL.md:53
**Integer division and shift operations** leak secrets on certain CPU architectures and compiler configurations.CRITICAL CREDENTIAL HARVESTING detected by YARA Hardcoded Secretsstatic
Detects potential exposure of sensitive information like API keys, passwords, tokens, and certificates: leak │ ← │ Track secret
SKILL.md:192
1. **Start with dudect** - Quick statistical check for timing differencesCRITICAL CREDENTIAL HARVESTING detected by YARA Hardcoded Secretsstatic
Detects potential exposure of sensitive information like API keys, passwords, tokens, and certificates: Leak Secret
SKILL.md:499
- [Trail of Bits: Constant-Time Programming](https://www.youtube.com/watch?v=vW6wqTzfz5g) - Overview of constant-time programming principles and toolsCRITICAL CREDENTIAL HARVESTING detected by YARA Hardcoded Secretsstatic
Detects potential exposure of sensitive information like API keys, passwords, tokens, and certificates: leak secret
SKILL.md:499
- [Trail of Bits: Constant-Time Programming](https://www.youtube.com/watch?v=vW6wqTzfz5g) - Overview of constant-time programming principles and toolsCRITICAL CREDENTIAL HARVESTING detected by YARA Hardcoded Secretsstatic
Detects potential exposure of sensitive information like API keys, passwords, tokens, and certificates: leak secrets
SKILL.md:53
**Integer division and shift operations** leak secrets on certain CPU architectures and compiler configurations.CRITICAL CREDENTIAL HARVESTING detected by YARA Hardcoded Secretsstatic
Detects potential exposure of sensitive information like API keys, passwords, tokens, and certificates: leak │ ← │ Track secret
SKILL.md:192
1. **Start with dudect** - Quick statistical check for timing differencesCRITICAL CREDENTIAL HARVESTING detected by YARA Hardcoded Secretsstatic
Detects potential exposure of sensitive information like API keys, passwords, tokens, and certificates: Leak Secrets
SKILL.md:499
- [Trail of Bits: Constant-Time Programming](https://www.youtube.com/watch?v=vW6wqTzfz5g) - Overview of constant-time programming principles and toolsCRITICAL CREDENTIAL HARVESTING detected by YARA Hardcoded Secretsstatic
Detects potential exposure of sensitive information like API keys, passwords, tokens, and certificates: leak secret
SKILL.md:499
- [Trail of Bits: Constant-Time Programming](https://www.youtube.com/watch?v=vW6wqTzfz5g) - Overview of constant-time programming principles and toolsMEDIUM TRANSITIVE TRUST ABUSE detected by YARA Transitive Trust Abusestatic
Detects skills that delegate trust to untrusted external content: Execute code
SKILL.md:162
Execute code with various inputs, measure elapsed time, and detect inconsistencies. Tests actual implementation including compiler optimizations and architecture.MEDIUM Missing Referenced Files Create Transitive Trust Risk Prompt Injectionllm
The SKILL.md instructions reference five Python files (tool.py, implementation.py, OpenSSL.py, scratch.py, cryptographic.py) that are not included in the skill package. If these files are expected to be provided by users or fetched from external sources, the skill could execute untrusted code or follow malicious instructions embedded in those files. This creates a transitive trust vulnerability where the skill delegates trust to external content without validation.
Files referenced in instructions: tool.py, implementation.py, OpenSSL.py, scratch.py, cryptographic.py - All marked as 'not found'LOW Skill does not specify a license Policy Violationstatic
Skill manifest does not include a 'license' field. Specifying a license helps users understand usage terms.
SKILL.md
LOW Missing Optional Metadata Fields Social Engineeringllm
The skill manifest is missing optional metadata fields: license, compatibility, and allowed-tools. While these fields are not required per the agent skills specification, their absence reduces transparency about the skill's intended usage constraints and compatibility. The 'allowed-tools' field would help users understand which agent capabilities the skill expects to use.
SKILL.md
license: Not specified, compatibility: Not specified, allowed-tools: Not specifiedWhat is in the package
| File | Kind | Size |
|---|---|---|
SKILL.md | doc | 21 KB |
External hosts referenced
github.com cr.yp.to crocs-muni.github.io crypto.stanford.edu eprint.iacr.org link.springer.com paulkocher.com clang.llvm.org post-apocalyptic-crypto.org www.usenix.org www.youtube.com
Hostnames that appear in the skill's files. Referencing a host is not a finding; compare against the findings above and the skill's stated purpose.
Package contents recorded 2026-10-22 at commit a50696e20581. The scan above ran against the version current at scan time; the two can differ if the skill has since been updated.
What we checked
- Static analyzer. Pattern rules over SKILL.md and bundled files: known-bad commands, exfiltration URLs, secrets, obfuscation.
- Llm analyzer. A language model reads the skill and reports intent-level issues the rules cannot express.
- Meta analyzer. A second model pass that validates, deduplicates and re-scores the other analyzers' findings.
What we did not check
- Runtime behaviour. The skill was not executed; findings come from reading its files.
- Anything fetched at install or run time, including remote scripts, package dependencies, and URLs the skill tells the agent to open.
- Content the analyzers cannot read: images, binaries, and some non-English text.
- Known scanner bypass classes. See the methodology and limitations page.
Sources
- Repository: https://github.com/trailofbits/skills
- Raw scan result: plugins-testing-handbook-skills-skills-constant-time-testing-scan.json
- Badge for your README:
 - Request a re-scan