Skip to content

Commit db12100

Browse files
committed
docs: Add SECURITY.md
1 parent 82d821d commit db12100

2 files changed

Lines changed: 56 additions & 0 deletions

File tree

CONTRIBUTING.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,9 @@ runtime states — see [docs/architecture.md](docs/architecture.md). For
1414
end-user material, see [README.md](README.md) and
1515
[docs/usage.md](docs/usage.md).
1616

17+
To report a security vulnerability in this project, use the private process in
18+
[SECURITY.md](SECURITY.md) rather than the issue tracker.
19+
1720
## Table of Contents
1821

1922
- [Architecture in brief](#architecture-in-brief)

SECURITY.md

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
# Security policy
2+
3+
## Reporting a vulnerability
4+
5+
Report privately through GitHub's security advisories:
6+
[open a draft advisory](https://github.com/bcoles/kasld/security/advisories/new).
7+
The report stays private until a fix is published. Do not open a public issue
8+
for a vulnerability in this project's own code.
9+
10+
A report that falls into one of the out-of-scope cases below will be answered
11+
with a pointer to where it belongs rather than an advisory.
12+
13+
## In scope
14+
15+
KASLD runs each component as a separate program and parses its output in the
16+
orchestrator, which is usually the more privileged process in a run. That
17+
asymmetry is where the interesting surface is:
18+
19+
- **Orchestrator parsing.** `src/orchestrator.c` consumes component stdout, ELF
20+
section payloads and `dmesg` — input an unprivileged process can influence —
21+
inside the privileged process. Memory-safety, over-read or unbounded-loop
22+
bugs there are a genuine exposure surface; `tests/fuzz` covers these parsers,
23+
so a crashing input is directly actionable.
24+
- **The `extra/` helpers.** Several are documented as being run under `sudo`,
25+
so anything in one of them that mishandles untrusted input does so as root.
26+
- **Unintended execution or privilege change.** `KASLD_COMPONENT_DIR` and
27+
`KASLD_EXEC_WRAPPER` name programs kasld will execute. Any path by which
28+
either is set unexpectedly, or by which a run executes or writes something it
29+
should not, is in scope.
30+
31+
## Not in scope
32+
33+
- **KASLD recovering a kernel base.** Defeating KASLR is what this toolkit is
34+
for. A component working as documented is not a vulnerability, and neither is
35+
the toolkit succeeding against a hardened configuration.
36+
- **Kernel bugs found using KASLD.** A new kernel leak, or a kernel flaw a
37+
component exercises, belongs to the kernel rather than to this repository.
38+
Report it to <security@kernel.org> — see
39+
[Documentation/process/security-bugs.rst](https://docs.kernel.org/process/security-bugs.html)
40+
— or to the affected distribution. Embargoed CPU issues go to
41+
<hardware-security@kernel.org> instead. No fix or advisory can be issued from
42+
here for any of these.
43+
- **Techniques catalogued or implemented here.** Cataloguing KASLR bypass
44+
techniques, and shipping components that exercise them, is what this project
45+
does. A technique described in
46+
[docs/bypass-techniques.md](docs/bypass-techniques.md) or implemented as a
47+
component is not a vulnerability in this project.
48+
49+
## Supported versions
50+
51+
Fixes land on the default branch and ship in the next release. Only the most
52+
recent release is maintained — there are no maintenance branches for older
53+
tags.

0 commit comments

Comments
 (0)