This document outlines the security practices, reporting procedures, and recommendations specific to Celero’s C++ codebase.
Celero maintains security support for the two most recent minor releases of the master branch. Releases outside this window may not receive timely security fixes.
| Branch | Status |
|---|---|
master |
Supported |
develop |
Development only |
| Prior tags | Limited support |
If you discover a security vulnerability in Celero, please:
-
Email: send details to the maintainer.
-
Subject: prefix with
SECURITY REPORT:. -
Include:
- Affected Celero version or commit SHA.
- Description of the issue.
- Minimal reproducible example or proof-of-concept.
- Suggested mitigations or patches (if known).
Expect acknowledgement within 48 hours and a fix timeline based on severity.
- Acknowledge within 48 hours.
- Assess impact and severity.
- Develop a fix in a dedicated branch (naming:
security/<short-description>). - Review & Test: include regression and fuzz tests.
- Merge fix into
masterand backport to supported releases. - Release: draft an advisory and update the release notes.
- Use Sanitizers: enable ASan, UBSan, and MSan in CI builds to catch memory errors.
- Static Analysis: run
clang-tidywith security-focused checks (e.g.cppcoreguidelines-pro-type-union-access). - Fuzz Testing: integrate libFuzzer or AFL targets for public APIs.
- Dependency Audits: regularly audit third-party libraries (e.g. Google Test, fmt).
- Safe Patterns: prefer
std::array/std::vectorover raw arrays; use smart pointers (unique_ptr,shared_ptr). - Bounds Checking: avoid out-of-bounds access; use
at()when indexing if safety is critical.
- Code Reviews: include at least one security-aware reviewer for changes to public APIs or memory management code.
- CI Integration: plan to add security scans (e.g. CodeQL) via GitHub Actions.
- Secrets Management: do not commit API keys or credentials; use environment variables or CI secrets.
This policy draws on best practices from OWASP C++ Security Cheat Sheet and the GitHub security guidelines.