First off — thank you. VulnGRC exists because the GRC community deserves hands-on learning tools, not just slide decks.
The highest-impact contribution. A good challenge:
- Is grounded in a realistic GRC scenario
- Has a specific artifact to examine (not just "read about X")
- Has a clear, measurable answer
- Has a solution guide that explains the why, not just the what
- References at least one real framework control
Template: Copy challenges/beginner/CH-01-policy-gap-analysis.md and modify.
GRC CTFs are rare. If you can create one:
- The flag must be discoverable through GRC analysis, not guessing
- The flag must be hidden inside a document in a realistic way
- The scenario must reflect a real-world governance failure
- Submit both the challenge and the flag to maintainers via private message (don't put the flag in the PR)
More broken documents = more learning opportunities.
- New policy with planted gaps (follow existing pattern)
- New Excel artifact (vendor questionnaire, BCP, DR plan)
- New scenario (M&A due diligence, regulatory examination, breach simulation)
Currently missing:
- DORA (Digital Operational Resilience Act)
- NIS2 Directive
- CCPA / CPRA
- HIPAA Security Rule
- SOX IT Controls
- SWIFT CSCF
GRC is global. Translating challenges (not artifacts — keep those in English for realism) helps non-English speaking learners.
Languages most requested:
- Spanish
- French
- Portuguese
- Arabic
- Japanese
If you find a gap that was unintentional (a mistake vs a planted issue), open an issue. Label it unintentional-bug.
- Fork the repository
- Create a branch:
feature/challenge-nameorfix/bug-description - Follow existing naming conventions
- Test your work — if it's a script, run it. If it's a challenge, have someone else attempt it.
- Open a Pull Request with a description of what you added and why
VulnGRC is a learning tool for defenders. Contributions that:
- Could facilitate real attacks on real systems
- Include actual credentials, real PII, or real company data
- Are discriminatory or hostile
...will be rejected immediately.
Open a GitHub Discussion. The community will help.
"If you've learned something from VulnGRC, the best way to say thank you is to add something that helps the next person learn."