|
| 1 | +# Security Policy |
| 2 | + |
| 3 | +This security policy applies to all software products maintained by the |
| 4 | +[Open Preservation Foundation](https://openpreservation.org) (OPF), including |
| 5 | +veraPDF, JHOVE, Open Fixity, and associated libraries and tools. |
| 6 | + |
| 7 | +## Reporting a Vulnerability |
| 8 | + |
| 9 | +**Please do not report security vulnerabilities as public GitHub issues.** |
| 10 | +Public disclosure before a fix is available puts users at risk. |
| 11 | + |
| 12 | +Report vulnerabilities using one of these private channels: |
| 13 | + |
| 14 | +- **Email:** security@openpreservation.org |
| 15 | +- **GitHub:** Use the [Report a vulnerability](https://docs.github.com/en/code-security/security-advisories/guidance-on-reporting-and-writing/privately-reporting-a-security-vulnerability) button on the Security tab of the relevant repository |
| 16 | + |
| 17 | +Include as much of the following as you can: |
| 18 | + |
| 19 | +- A description of the vulnerability and its potential impact |
| 20 | +- The affected product(s) and version(s) |
| 21 | +- Steps to reproduce or proof-of-concept code |
| 22 | +- Any suggested mitigations you are aware of |
| 23 | + |
| 24 | +## Our Commitment |
| 25 | + |
| 26 | +When you report a vulnerability to us we will: |
| 27 | + |
| 28 | +- **Acknowledge** your report within 5 business days |
| 29 | +- **Assess** the severity and scope and keep you informed of our findings |
| 30 | +- **Coordinate** the fix and disclosure timeline with you |
| 31 | +- **Credit** you in the security advisory, unless you prefer to remain anonymous |
| 32 | +- **Notify** you before we publish any advisory |
| 33 | + |
| 34 | +We will not take legal action against researchers who report vulnerabilities in |
| 35 | +good faith and act in accordance with this policy. |
| 36 | + |
| 37 | +## Disclosure Timeline |
| 38 | + |
| 39 | +We follow a coordinated vulnerability disclosure (CVD) process: |
| 40 | + |
| 41 | +1. **Day 0** — You report the vulnerability privately |
| 42 | +2. **Within 5 business days** — We acknowledge receipt |
| 43 | +3. **Within 14 days** — We provide an initial assessment, including severity and |
| 44 | + whether we can reproduce the issue |
| 45 | +4. **Ongoing** — We work on a fix and agree a disclosure date with you |
| 46 | + |
| 47 | +The disclosure timeline depends on severity: |
| 48 | + |
| 49 | +| Severity | Target fix and disclosure | |
| 50 | +|----------|--------------------------| |
| 51 | +| Critical / actively exploited | As fast as possible — we may disclose early with mitigations if a fix is not yet ready | |
| 52 | +| High | Within 30 days | |
| 53 | +| Medium | Within 60 days | |
| 54 | +| Low | Within 90 days | |
| 55 | + |
| 56 | +We will always discuss timeline with you before publishing. If circumstances |
| 57 | +require us to deviate from these targets we will explain why and agree an |
| 58 | +alternative with you. |
| 59 | + |
| 60 | +## Out of Scope |
| 61 | + |
| 62 | +The following are outside the scope of this policy: |
| 63 | + |
| 64 | +- Denial of service attacks |
| 65 | +- Social engineering or phishing of OPF staff |
| 66 | +- Physical security issues |
| 67 | +- Vulnerabilities in third-party dependencies — please report these upstream; we will still triage and advise if you are unsure |
| 68 | + |
| 69 | +## Public Disclosure |
| 70 | + |
| 71 | +Once a fix is available we will: |
| 72 | + |
| 73 | +1. Publish a **GitHub Security Advisory** in the affected repository |
| 74 | +2. Post a summary on the **[OPF website](https://openpreservation.org)** |
| 75 | +3. Issue a **new release** of the affected product with the fix included |
| 76 | + |
| 77 | +We will not publish details of a vulnerability before a fix is available, |
| 78 | +except in cases where active exploitation means users must be warned |
| 79 | +immediately. |
| 80 | + |
| 81 | +## Regulatory Obligations |
| 82 | + |
| 83 | +As part of our compliance with the EU Cyber Resilience Act (CRA), OPF reports |
| 84 | +actively exploited vulnerabilities to ENISA within 24 hours of becoming aware |
| 85 | +of them, and submits full notifications within 14 days. This regulatory |
| 86 | +reporting is separate from and does not replace our commitment to coordinating |
| 87 | +disclosure with you. |
| 88 | + |
| 89 | +--- |
| 90 | + |
| 91 | +_Policy version: 1.0 — April 2026_ |
| 92 | +_Review due: April 2027_ |
0 commit comments