diff --git a/docs/audit-2026-10-12.md b/docs/audit-2026-10-12.md index 254f842..e341768 100644 --- a/docs/audit-2026-10-12.md +++ b/docs/audit-2026-10-12.md @@ -714,8 +714,10 @@ has already run is never edited — the next file is added; the published passed list gained capitals, a quoted local part and a name with a space after its `@` (passed by design, signed for the own domain). L8 is half closed: refused-or-passed still tells an application which domains are - hosted here - the owner decides whether to refuse every foreign address - in a display name (asked 2026-10-14). + hosted here. *Owner, 2026-10-14: leave it* - the probe is a trusted + application's guess, one name at a time, as before L8; refusing every + foreign address in a display name is not wanted (security.md, accepted + risks). *Done 2026-10-14:* fifteen lines (`internal/milter/testdata/from-lines-passed.txt`), each signed for the application's domain alone, the signature valid. No disagreement. Groups are refused by the check, so none is in the file; diff --git a/docs/security.md b/docs/security.md index d275944..aa9da71 100644 --- a/docs/security.md +++ b/docs/security.md @@ -225,8 +225,8 @@ operator can act on it. when the domain is a sender of this server, and passed when it is not, still tells an application which domains are hosted here; the probe needs an application of this server, and refusing every foreign address in a - display name would change the 2.4.0 rule - the owner decides (accepted - risks). What this does not promise is what a display + display name would change the 2.4.0 rule - accepted by the owner + (accepted risks). What this does not promise is what a display name looks like to a person: a name of another sender written without an `@` the scan can find (a full-width dot, a space inside the name) passes, signed with the application's own key - a forged display name is as old @@ -447,11 +447,13 @@ deferred item from the roadmap. A `From:` whose display name or comment names an address at a domain this server signs for is refused; one naming any other domain passes. The reply no longer names the domain (audit 2026-10-12, L8), but refused or passed - answers the question for whoever sends the line. Accepted for now: it needs - an application of this server, and closing it means refusing every - foreign address in a display name, which changes the owner's 2.4.0 rule - (a stranger's address in the name passes) - his decision, asked on - 2026-10-14. + answers the question for whoever sends the line. Accepted by the owner, + 2026-10-14: it needs an application of this server - a trusted tenant + guessing names one at a time, as it already had to before L8, when the + reply only said in words what the line had named - and closing it means + refusing every foreign address in a display name, which would change his + 2.4.0 rule (a stranger's address in the name passes). Trigger to revisit: + tenants who are not trusted, or a display-name rule decided anew. - ~~**A row of the inbound log belongs to a domain by name.**~~ Struck in `2.5.0` (audit 2026-10-12, L12): both logs now hold a domain by id, see § Roles.