If you discover a security vulnerability in student-ops, do not open a public issue.
Report privately by:
- GitHub private vulnerability reporting: Security tab → Report a vulnerability
- Or email the maintainers (see GOVERNANCE.md for contact)
Expect an acknowledgment within 72 hours.
Student-ops handles highly sensitive student data:
- Financial information (income, aid need, loans)
- Academic records (GPA, test scores)
- Essays and personal narratives
- Medical / family circumstances (if shared)
- Zero telemetry — nothing is sent to external servers by default.
- Local-only — all data lives in the user's repo.
- No user data in git —
.gitignoreexcludesconfig/profile.yml,essays/,aid-letters/,output/,reports/by default (student must opt in to commit). - API keys — stored in
.env, never committed. - Portal credentials — never stored; re-authenticated per session via the user's browser.
- Check
.gitignorebefore first commit - Never paste
profile.ymlinto public issues or discussions - Redact aid letter screenshots in bug reports
Vulnerabilities in scope:
- Data leakage from user-layer files into system-layer commits
- Script execution with unsafe inputs (command injection, path traversal)
- Credential exposure in logs or error messages
- Dependencies with known CVEs
Out of scope:
- AI hallucinations (track in issues as bugs, not security)
- User misconfigurations that expose their own data (e.g., committing profile.yml intentionally)