Pin the maturity disclaimer on every entry point
dejima carries this and its wording covers all three repositories by name: these projects, any of these repositories. A reader landing here would not have seen it. Duplicated rather than linked, which is the opposite of what attribution and the security policy do here, and deliberately. A disclaimer behind a link is a disclaimer the reader does not see, and its whole value is being on the page where the security argument is being made. Everything else that gets linked is reference material someone goes looking for; this is the one thing that has to arrive uninvited. test/disclaimer.bats pins it. The line is the one most likely to be dropped without anyone deciding to drop it - by a rewrite of some section that happened to contain it - and every other test here would still pass on a repository that had lost it.
This commit is contained in:
+12
@@ -13,6 +13,18 @@ Neither tier holds against an attacker who is already root on the box.
|
||||
The README's [How it fails](README.md#how-it-fails) section covers this in
|
||||
detail.
|
||||
|
||||
## This is not proven software
|
||||
|
||||
These projects are in early development. Nothing in them has been through
|
||||
outside review, an external audit, or adversarial testing by anyone other than
|
||||
the people who wrote them. Where a design argument is stated it is one person's
|
||||
reasoning; where a test asserts something it asserts what that person thought
|
||||
to check.
|
||||
|
||||
Treat every security property described in any of these repositories as a claim
|
||||
awaiting scrutiny rather than one that has survived it, and do not deploy them
|
||||
where being wrong would matter.
|
||||
|
||||
## Reporting a vulnerability
|
||||
|
||||
Email **dejima@branderson.io**. Please do not open a public issue for a
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
#!/usr/bin/env bats
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
# Copyright (C) 2026 Brad Anderson
|
||||
#
|
||||
# The maturity disclaimer, pinned in every place a reader can land.
|
||||
#
|
||||
# A repository that argues at length for its own security properties is exactly
|
||||
# the one that has to say those properties are unreviewed. It is also the line
|
||||
# most likely to be quietly dropped as a project starts to feel established -
|
||||
# not by decision, but by a rewrite of a section that happened to contain it.
|
||||
#
|
||||
# Nothing else here would notice. Every other test in this suite would still
|
||||
# pass on a repository that had lost it.
|
||||
|
||||
setup() {
|
||||
REPO="$(cd "$BATS_TEST_DIRNAME/.." && pwd)"
|
||||
}
|
||||
|
||||
@test "every entry point says this is unreviewed early development" {
|
||||
for f in README.md SECURITY.md; do
|
||||
grep -q 'reviewed by anyone else\|outside review' "$REPO/$f" || {
|
||||
echo "$f does not say the work is unreviewed" >&2
|
||||
false
|
||||
}
|
||||
done
|
||||
grep -q 'Not ready to be depended on' "$REPO/README.md"
|
||||
grep -q 'not proven software' "$REPO/SECURITY.md"
|
||||
}
|
||||
Reference in New Issue
Block a user