Skip to content

Commit 24ee5ea

Browse files
committed
docs: Add security
We've had reports treating bootc's default deference to containers-policy.json as a vulnerability, fix this by having a clear policy. Assisted-by: AI Signed-off-by: Colin Walters <walters@verbum.org>
1 parent cf828dc commit 24ee5ea

3 files changed

Lines changed: 50 additions & 0 deletions

File tree

SECURITY.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
# Security Policy
22

3+
## Understanding what is and is not a vulnerability
4+
5+
Please read our [security and threat model](https://bootc.dev/bootc/security.html) documentation first.
6+
37
## Reporting a Vulnerability
48

59
If you find a potential security vulnerability in bootc, please report it by following these steps:

docs/src/SUMMARY.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,10 @@
5656
- [Container storage](filesystem-storage.md)
5757
- [Bootloader](bootloaders.md)
5858

59+
# Security
60+
61+
- [Security and threat model](security.md)
62+
5963
# Experimental features
6064

6165
- [bootc image](experimental-bootc-image.md)

docs/src/security.md

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
# Security and threat model
2+
3+
This page describes bootc's trust boundaries and how to configure
4+
stronger guarantees than the defaults. If you believe you've found a
5+
valid vulnerability, see [SECURITY.md](https://github.com/bootc-dev/bootc/blob/main/SECURITY.md)
6+
for how to report it.
7+
8+
## Privileges
9+
10+
bootc is a binary that is intended to be run with full privileges.
11+
It does not expose a service (socket, HTTP endpoint) by default;
12+
that's the role of higher level tooling.
13+
14+
All inputs (CLI arguments, etc) are hence considered fully trusted
15+
by default.
16+
17+
## Container image verification
18+
19+
bootc honors the default `/etc/containers/policy.json` when fetching
20+
images. The upstream default at the time of this writing
21+
does not require signatures for generic images.
22+
23+
It is not a vulnerability in bootc that signatures are not required
24+
by default.
25+
26+
It is however a very good idea for bootc users to enable signatures
27+
for their images.
28+
29+
## On-disk integrity vs. pull-time verification
30+
31+
The default backend is ostree (with a composefs mount), but
32+
fsverity is not enabled by default.
33+
34+
The composefs backend enables fsverity by default if available,
35+
but does not verify the composefs image (because there's nothing
36+
to verify it against by default).
37+
38+
The composefs backend with sealed UKIs does verify the composefs
39+
mount. With composefs + sealed UKIs, it is a vulnerability if
40+
e.g. an attacker can mutate a file in the image store, have
41+
that persist across a re-mount without it resulting in an `EIO`
42+
error (default for Linux kernel fsverity).

0 commit comments

Comments
 (0)