Click here for the Japanese version of this file.
Security fixes are applied to the latest release line only.
| Version | Supported |
|---|---|
| 3.0.x | ✅ |
| 2.x | ❌ |
Prerelease packages (-preview* / -alpha*) are for evaluation and are not supported.
Please do not open a public issue for a security problem.
Use Private vulnerability reporting. The report stays private until a fix is published, and the discussion happens in the same place.
Please include:
- Which assembly and version (for example,
OpenTouryo.Public.Security3.0.0) - Which target framework (
net48ornet10.0) — the two are separate implementations in several places, so a problem may exist in only one of them - Steps to reproduce, or the code path you believe is affected
- What an attacker gains
We are a small team. We will acknowledge the report and tell you what we intend to do, but we cannot promise a fixed turnaround time.
This repository contains both the framework and the samples that show how to use it.
| Path | Scope |
|---|---|
root/programs/CS/Frameworks/Infrastructure/ |
In scope. This is what ships as NuGet packages |
root/programs/CS/Frameworks/Tools/ |
In scope |
root/programs/CS/Samples/, Samples4NetCore/, root/programs/VB/ |
Samples. Reports are welcome, but they are teaching material and are not shipped |
root/files/resource/X509/ |
Out of scope. Self-signed certificates and private keys for tests only |
Static analysis (CodeQL) runs on this repository, and its findings have been triaged. Before reporting a scanner result, please check #536 — it records what was fixed, what was dismissed, and why.
The following are known and deliberate:
CipherMode_ECBis marked[Obsolete]. It is one of five cipher modes the caller can choose, and it is not the default — when no mode is given, .NET's default (CBC) is used. It is kept for backward compatibilityBinarySerialize(BinaryFormatter) exists fornet48only. It is excluded from thenet10.0build (<Compile Remove>inPublic_netcore100.csproj)- Sample
Web.configfiles userequireSSL="false", because the samples are meant to be run over HTTP. The production setting is provided next to it, commented out, with a note to enable it
Reports that show a concrete exploit for any of the above are still welcome.
| Secret scanning + Push protection | Enabled |
| Code scanning (CodeQL) | Enabled. csharp, javascript-typescript, actions |
| Dependabot alerts / security updates | Enabled |
| Private vulnerability reporting | Enabled |
Branch protection (master) |
Review required + CI must pass |
The settings themselves live on GitHub and are not visible from the files in this repository,
so they are written down in GitHubUsage.md.